Go to file
Rolf Ahrenberg 4b1892d754 Change EINTR handling in poller. 2016-06-05 14:19:46 +03:00
po Removed support for older version than vdr-2.3.1. 2015-09-18 18:58:07 +03:00
.gitignore Refactored polling. 2014-11-15 02:12:35 +02:00
COPYING Initial revision. 2014-03-08 13:07:47 +02:00
HISTORY Removed support for older version than vdr-2.3.1. 2015-09-18 18:58:07 +03:00
Makefile Got rid of SATIP_DEBUG. 2015-03-07 17:50:48 +02:00
README Make it possible to specify the rtp and rtcp ports 2016-01-07 21:09:39 +01:00
common.c Added configurable CI slots. 2015-01-11 16:34:32 +02:00
common.h Use 2MB ringbuffer per device. 2016-05-12 23:46:27 +03:00
config.c Make it possible to specify the rtp and rtcp ports 2016-01-07 21:09:39 +01:00
config.h Make it possible to specify the rtp and rtcp ports 2016-01-07 21:09:39 +01:00
device.c Reset device name when the device is idling. 2016-03-19 20:33:00 +02:00
device.h Silenced some cppcheck warnings. 2015-08-16 01:38:03 +03:00
deviceif.h Silenced some cppcheck warnings. 2015-08-16 01:38:03 +03:00
discover.c Added support for X-SATIP-RTSP-Port header. 2016-02-27 17:28:13 +02:00
discover.h Added support for X-SATIP-RTSP-Port header. 2016-02-27 17:28:13 +02:00
discoverif.h Silenced some cppcheck warnings. 2015-08-16 01:38:03 +03:00
log.h Fixed wrong indenting. 2015-03-04 19:43:01 +02:00
msearch.c Re-enable to reuse address for msearch protocol. 2016-04-11 23:02:12 +03:00
msearch.h Silenced some cppcheck warnings. 2015-08-16 01:38:03 +03:00
param.c Reorder also terrestrial and cable query parameters as introduced in the satip specification 1.2.2, although the ordering shouldn't matter according to it. 2015-12-05 20:23:32 +02:00
param.h Switched to standard 'S' and 'T' sources. 2014-03-12 00:19:37 +02:00
poller.c Change EINTR handling in poller. 2016-06-05 14:19:46 +03:00
poller.h Refactored polling. 2014-11-15 02:12:35 +02:00
pollerif.h Silenced some cppcheck warnings. 2015-08-16 01:38:03 +03:00
rtcp.c Silenced some cppcheck warnings. 2015-08-16 01:38:03 +03:00
rtcp.h Silenced some cppcheck warnings. 2015-08-16 01:38:03 +03:00
rtp.c Refactored some errno handling. 2015-01-24 16:20:13 +02:00
rtp.h Silenced some cppcheck warnings. 2015-08-16 01:38:03 +03:00
rtsp.c Implemented cSatipMemoryBuffer(). 2015-03-22 20:06:47 +02:00
rtsp.h Silenced some cppcheck warnings. 2015-08-16 01:38:03 +03:00
satip.c Added support for X-SATIP-RTSP-Port header. 2016-02-27 17:28:13 +02:00
sectionfilter.c Renamed threads and ringbuffers. 2014-12-14 21:39:13 +02:00
sectionfilter.h Refactored the section filtering. 2014-04-04 00:56:00 +03:00
server.c Added support for X-SATIP-RTSP-Port header. 2016-02-27 17:28:13 +02:00
server.h Added support for X-SATIP-RTSP-Port header. 2016-02-27 17:28:13 +02:00
setup.c Silenced some cppcheck warnings. 2015-08-16 01:38:03 +03:00
setup.h Added initial support for detaching and attaching SAT>IP servers. 2015-04-12 21:25:41 +03:00
socket.c Set SO_REUSEPORT only if it's defined. 2016-05-07 21:43:49 +03:00
socket.h Re-enable to reuse address for msearch protocol. 2016-04-11 23:02:12 +03:00
statistics.c Preliminary documentation for used logging modes. 2014-12-14 17:45:55 +02:00
statistics.h Initial revision. 2014-03-08 13:07:47 +02:00
tuner.c Added support for X-SATIP-RTSP-Port header. 2016-02-27 17:28:13 +02:00
tuner.h Added support for X-SATIP-RTSP-Port header. 2016-02-27 17:28:13 +02:00
tunerif.h Silenced some cppcheck warnings. 2015-08-16 01:38:03 +03:00

README

This is an SAT>IP plugin for the Video Disk Recorder (VDR).

Written by:                  Rolf Ahrenberg
                             < R o l f . A h r e n b e r g @ s c i . f i >

Project's homepage:          http://www.saunalahti.fi/~rahrenbe/vdr/satip/

Latest version available at: http://www.saunalahti.fi/~rahrenbe/vdr/satip/

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.
See the file COPYING for more information.

Requirements:

- Libcurl >= 7.36.0 - the multiprotocol file transfer library with RTSP support
  http://curl.haxx.se/libcurl/

- PugiXML - Light-weight, simple and fast XML parser for C++
  http://pugixml.org/
  or
  TinyXML - a simple, small, C++ XML parser
  http://www.grinninglizard.com/tinyxml/

- Glibc >= 2.12 - the GNU C library (recvmmsg)
  http://www.gnu.org/software/libc/

Description:

This plugin integrates SAT>IP network devices seamlessly into VDR.
You can use any SAT>IP channel like any other normal DVB channel for
live viewing, recording, etc. The plugin also features full section
filtering capabilities which allow for example EIT information to be
extracted from the incoming stream.

Installation:

tar -xzf /put/your/path/here/vdr-satip-X.Y.Z.tgz
make -C satip-X.Y.Z install

Configuration:

The plugin accepts a "--devices" (-d) command-line parameter defaulting
to two. This parameter defines how many simultaneous transponders can
be received, if there are available SAT>IP tuners.

The plugin accepts also a "--server" (-s) command-line parameter, that
can be used to manually configure static SAT>IP servers if autodetection
via UPnP somehow can't be used. The parameter string is a semicolon
separated list of "<ipaddress>|<model>|<description>" entries. The model
consists of a DVB system (DVBS2,DVBT2,DVBT,DVBC) and number of available
frontends separated by a hyphen:

vdr -P 'satip -s <ipaddress>|<model>|<description>;...'
vdr -P 'satip -s 192.168.0.1|DVBS2-2,DVBT2-2|Octo1'
vdr -P 'satip -s 192.168.0.1|DVBS2-4|Octo1;192.168.0.2|DVBT2-4|Octo2'

The plugin accepts a "--portrange" (-p) command-line parameter, that can
be used to manually specify the RTP & RTCP port range and therefore
enables using the plugin through a NAT (e.g. Docker bridged network).
A minimum of 2 ports per device is required.

SAT>IP satellite positions (aka. signal sources) shall be defined via
sources.conf. If the source description begins with a number, it's used
as SAT>IP signal source selection parameter. A special number zero can
be used to disable the source. Otherwise, the default parameter is one:

S19.2E  Astra 1KR/1L/1M/2C
=> Signal source = 1

S19.2E  2
=> Signal source = 2

S19.2E  3 Astra 1KR/1L/1M/2C
=> Signal source = 3

S19.2E 0 Astra 1KR/1L/1M/2C
=> Source is disabled

A channel can be assigned into a specific SAT>IP frontend by giving the
identifier number in RID field of a channels.conf entry:
FE = RID % 100
Valid range: 1 ... 99

Setup menu:

- Operating mode = off       If you want exclude all SAT>IP devices
                   low       from VDR's device handling, set this
                   normal    option to "off". Otherwise, if you want
                   high      to keep SAT>IP at a low priority when
                             selecting available devices, set this
                             option to "low". Similarly, the "high"
                             value prefers the SAT>IP over the local
                             DVB cards when selecting available devices.
- Use CI extension = no      If you want to use the CI extension found
                             in some SAT>IP hardware (e.g. Digital
                             Devices OctopusNet), set this option to
                             "yes".
- CICAM #<slot> = <system>   If you want to assign a CA system into
                             a specific CI slot, set this option to
                             a named one. Use "---" for autoselection.
- Enable EPG scanning = yes  If you want exclude all SAT>IP devices
                             from VDR's EIT background scanning, set
                             this option to "no".
- Disabled sources = none    If your SAT>IP servers don't have certain
                             satellite positions available you can
                             disable them via this option.
- Disabled filters = none    Certain section filters might cause some
                             unwanted behaviour to VDR such as time
                             being falsely synchronized etc. This option
                             allows creation of blacklists of ill-behaving
                             filters. If this option is set to a non-zero
                             value, the menu page will contain that many
                             "Disable filter" options which allow you
                             to disable the individual section filters.
                             Valid range: "none" = 0 ... 7
- [Red:Scan]                 Forces network scanning of SAT>IP hardware.
- [Yellow:Devices]           Opens SAT>IP device status menu.
- [Blue:Info]                Opens SAT>IP information/statistics menu.
- [Ok]                       Opens information menu of selected SAT>IP
                             device.

Information menu:

- [Red:General]              Opens the general information page.
- [Green:Pids]               Opens the pid statistics page.
- [Yellow:Filters]           Opens the section filter statistics page.
- [Blue:Bits/bytes]          Toggles between bits and bytes mode.

Notes:

- The stream id "-1" states about unsuccessful tuning. This might be a
  result of invalid channel parameters or lack of free SAT>IP tuners.

- If the plugin doesn't detect your SAT>IP network device, make sure
  your setup doesn't have firewalled the UDP port 1900.

- Stream decryption requires a separate CAM plugin that works without
  direct access to any DVB card devices. Also the integrated CAM slots
  in Octopus Net devices are supported.

- Tracing can be set on/off dynamically via command-line switch or
  SVDRP command.

- OctopusNet firmware 1.0.40 or greater recommended.

- Inverto OEM firmware 1.17.0.120 or greater recommended.
  The firmware 1.16.0.120 can be downloaded and installed
  from their webpage: http://www.inverto.tv/support/
  An update to a newer firmware should be offered afterwards.

Acknowledgements:

- Big thanks to Digital Devices GmbH for providing the Octopus Net
  hardware for development!