This is a "plugin" for the Video Disk Recorder (VDR) to access DVB-streams
produced by the NetCeiver-hardware.

Project's homepage:
http://www.baycom.de/hardware/netceiver/

Latest version available via GIT at:
https://github.com/vdr-projects/vdr-plugin-mcli

The vdr-plugin is
Copyright (C) 2007-2010 by BayCom GmbH <info@baycom.de>

Extensions by contributors
Copyright (C) 2020-2023 by Peter Bieringer <pb@bieringer.de>
Copyright (C) 2013-2015 by hsteinhaus
Copyright (C) 2014      by mhorwath
Copyright (C) 2013      by Hoppaz


It is dynamically linked against "libnetceiver", available via GIT at:
https://github.com/vdr-projects/libnetceiver

"netcv2dvbip" was carved out into a dedicated project available via GIT at:
https://github.com/vdr-projects/netcv2dvbip

------------------------------------------------------------------

The vdr-plugin is covered by the
GNU GENERAL PUBLIC LICENSE (GPL), version 2:

This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 as published by
the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 51
Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

**** Reviewed version ****

- Support at least vdr >= 2.4.4

== Potential requirements ==

On newer Linux systems allow vdr to open raw sockets:

setcap cap_net_raw=pe /usr/sbin/vdr


for systemd:

cat <<END >/etc/systemd/system/vdr.service.d/vdr-mcli.conf
[Service]
AmbientCapabilities=CAP_NET_RAW
END


== Plugin options ==

--ifname <interface>
	network interface of the multicast client
		the interface where the Netceiver boxes are also connected

--port <port>
	used network port (default: 23000)

--dvb-s <num>
--dvb-c <num>
--dvb-t <num>
--atsc <num>
--dvb-s2 <num>
	limit number of devices (default: 8)

--mld-reporter-disable
	disable mld reporter

--sock-path <path>
	path of socket directory, default: API_SOCK_NAMESPACE

--cam-disable (NEW since 0.9.5)
	reject tuning to channels which requiring CAM

--tuner-max <num> (NEW since 0.9.5)
	limit maximum number of tuners to <num>
		avoid that LCARS skin shows 8 tuners in a 3 tuner system

--debugmask <mask> (NEW since 0.9.5, see logging.h)
	<mask> can be hexadecimal (0x..) or decimal
	conditionally enable debug messages
		PIDS          0x01
		TUNE_EXTRA    0x02
		TUNE          0x04
		RESOURCES     0x08
		PIDS_ADD_DEL  0x10
		TUNE_PC       0x40    // ProvideChannel
		FILTER        0x80

--logskipmask <mask> (NEW since 0.9.6, see logging.h)
	<mask> can be hexadecimal (0x..) or decimal
	conditionally disable log messages
		recv_ts_func/Data PIDs	0x01    // skip log of issues with Data pids (0 or 16-18) like Mcli::recv_ts_func: Discontinuity on receiver 0x559f735c7e00 for pid 18: 5->7 at pos 0/7
		SetChannelDevice/Reject	0x02    // skip log of Mcli::SetChannelDevice: Reject tuning on DVB (interesting if cam-disable is active)

--netcvupdate-use-lftp
	add "lftp" specific option to "netcvupdate" calls

--netcvupdate-enable-debug
	add debug option to "netcvupdate" calls


== RPM Build Support included ==

# download vdr-devel, rpm build environment and required dependencies:
dnf install vdr-devel rpm-build gcc-c++ libxml2-devel zlib-devel

# specify version:
VERSION=1.0.0

# download version with proper tar.gz name:
wget https://github.com/vdr-projects/vdr-plugin-mcli/archive/v$VERSION/vdr-plugin-mcli-$VERSION.tar.gz

# run rpm rebuild with tar.gz:
rpmbuild -tb vdr-plugin-mcli-$VERSION.tar.gz

# install (example, here 1.0.0 on Fedora 38)
dnf localinstall $HOME/rpmbuild/RPMS/x86_64/vdr-mcli-1.0.0-5.fc38.x86_64.rpm

== Packages ==

* RPM (Fedora): until included in upstream available via COPR: https://copr.fedorainfracloud.org/coprs/pbiering/vdr_extensions/packages/
