Skip to content

Commit

Permalink
Add in satip-0.1.1 for older versions of reelvdr
Browse files Browse the repository at this point in the history
  • Loading branch information
root committed Feb 5, 2016
1 parent 0e1be99 commit 2d3f4ad
Show file tree
Hide file tree
Showing 30 changed files with 5,011 additions and 0 deletions.
340 changes: 340 additions & 0 deletions src/vdr-plugins/src/satip-0.1.1/COPYING

Large diffs are not rendered by default.

21 changes: 21 additions & 0 deletions src/vdr-plugins/src/satip-0.1.1/HISTORY
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
===================================
VDR Plugin 'satip' Revision History
===================================

2014-03-08: Version 0.0.1

- Initial revision.
- Added German translation (Thanks to Frank Neumann).

2014-03-15: Version 0.1.0

- Switched to the standard S/T/C source identifiers.
- Added a new operation mode setup parameter.
- Added new SVDRP commands.

2014-03-16: Version 0.1.1

- Changed code to utilize a proper XML library.
- Refactored the session code.
- Fixed EIT scan functionality.
- Updated for vdr-2.1.6.
180 changes: 180 additions & 0 deletions src/vdr-plugins/src/satip-0.1.1/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,180 @@
#
# Makefile for SAT>IP plugin
#

# Debugging on/off

#SATIP_DEBUG = 1

# Use TinyXML instead of PugiXML

SATIP_USE_TINYXML = 1

# Strip debug symbols? Set eg. to /bin/true if not

STRIP = strip

# The official name of this plugin.
# This name will be used in the '-P...' option of VDR to load the plugin.
# By default the main source file also carries this name.

PLUGIN = satip

### The version number of this plugin (taken from the main source file):

VERSION = $(shell grep 'const char VERSION\[\] *=' $(PLUGIN).c | awk '{ print $$5 }' | sed -e 's/[";]//g')
GITTAG = $(shell git describe --always 2>/dev/null)

VDRDIR = ../../..
### The directory environment:

# Use package data if installed...otherwise assume we're under the VDR source directory:
PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr))
LIBDIR = $(call PKGCFG,libdir)
LOCDIR = $(call PKGCFG,locdir)
PLGCFG = $(call PKGCFG,plgcfg)
CFGDIR = $(call PKGCFG,configdir)
#
TMPDIR ?= /tmp

### The compiler options:

export CFLAGS = $(call PKGCFG,cflags)
export CXXFLAGS = $(call PKGCFG,cxxflags) -I../../../vdr-1.7/include/

### The version number of VDR's plugin API:

APIVERSION = $(call PKGCFG,apiversion)

### Make sure that necessary options are included:

-include $(VDRDIR)/Make.global

### Allow user defined options to overwrite defaults:

-include $(VDRDIR)/Make.config
CXXFLAGS += -I../../../vdr-1.7/include/

### Allow user defined options to overwrite defaults:

-include $(PLGCFG)

### The name of the distribution archive:

ARCHIVE = $(PLUGIN)-$(VERSION)
PACKAGE = vdr-$(ARCHIVE)

### The name of the shared object file:

SOFILE = libvdr-$(PLUGIN).so

### Libraries

LIBS = $(shell /usr/arm-linux-gnueabi/bin/curl-config --libs)

### Includes and Defines (add further entries here):

INCLUDES +=

DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'

ifdef SATIP_USE_TINYXML
DEFINES += -DUSE_TINYXML
#LIBS += -ltinyxml
else
LIBS += -lpugixml
endif

ifdef SATIP_DEBUG
DEFINES += -DDEBUG
endif

ifneq ($(strip $(GITTAG)),)
DEFINES += -DGITVERSION='"-GIT-$(GITTAG)"'
endif

.PHONY: all all-redirect
all-redirect: all

### The object files (add further files here):

OBJS = $(PLUGIN).o common.o config.o device.o discover.o param.o \
sectionfilter.o server.o setup.o socket.o statistics.o tuner.o

### The main target:

all: $(SOFILE) i18n

### Implicit rules:

%.o: %.c
$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) -o $@ $<
%.i: %.c
$(CXX) $(CXXFLAGS) -E $(DEFINES) $(INCLUDES) -o $@ $<

### Dependencies:

MAKEDEP = $(CXX) -MM -MG
DEPFILE = .dependencies
$(DEPFILE): Makefile
@$(MAKEDEP) $(CXXFLAGS) $(DEFINES) $(INCLUDES) $(OBJS:%.o=%.c) > $@

-include $(DEPFILE)

### Internationalization (I18N):

PODIR = po
I18Npo = $(wildcard $(PODIR)/*.po)
I18Nmo = $(addsuffix .mo, $(foreach file, $(I18Npo), $(basename $(file))))
I18Nmsgs = $(addprefix $(DESTDIR)$(LOCDIR)/, $(addsuffix /LC_MESSAGES/vdr-$(PLUGIN).mo, $(notdir $(foreach file, $(I18Npo), $(basename $(file))))))
I18Npot = $(PODIR)/$(PLUGIN).pot

%.mo: %.po
msgfmt -c -o $@ $<

$(I18Npot): $(wildcard *.c)
xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-$(PLUGIN) --package-version=$(VERSION) --msgid-bugs-address='<see README>' -o $@ `ls $^`

%.po: $(I18Npot)
msgmerge -U --no-wrap --no-location --backup=none -q -N $@ $<
@touch $@

$(I18Nmsgs): $(DESTDIR)$(LOCDIR)/%/LC_MESSAGES/vdr-$(PLUGIN).mo: $(PODIR)/%.mo
install -D -m644 $< $@

.PHONY: i18n
i18n: $(I18Nmo) $(I18Npot)

install-i18n: $(I18Nmsgs)

### Targets:

$(SOFILE): $(OBJS)
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) $(LIBS) -o $@
ifndef SATIP_DEBUG
@$(STRIP) $@
endif

install-lib: $(SOFILE)
install -D $^ $(DESTDIR)$(LIBDIR)/$^.$(APIVERSION)

install-conf:
@mkdir -p $(DESTDIR)$(CFGDIR)/plugins/$(PLUGIN)

install: install-lib install-i18n install-conf

dist: $(I18Npo) clean
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@mkdir $(TMPDIR)/$(ARCHIVE)
@cp -a * $(TMPDIR)/$(ARCHIVE)
@tar czf $(PACKAGE).tgz -C $(TMPDIR) $(ARCHIVE)
@-rm -rf $(TMPDIR)/$(ARCHIVE)
@echo Distribution package created as $(PACKAGE).tgz

clean:
@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~

.PHONY: cppcheck
cppcheck:
@cppcheck --language=c++ --enable=all -v -f $(OBJS:%.o=%.c)
118 changes: 118 additions & 0 deletions src/vdr-plugins/src/satip-0.1.1/README
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
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 - 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/

- VDR-2.1.4+ for scrambled channels

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 one. This parameter defines how many simultaneous transponders can
be received, if there are available SAT>IP tuners.

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. 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

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.
- Enable EPG scanning = yes If you want exclude all SAT>IP devices
from VDR's EIT background scanning, set
this option to "no".
- 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.
- [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.

- SAT>IP specification 1.2 doesn't support DVB-C/DVB-C2 receivers yet,
but DVB-C (KABEL>IP) is supported for Digital Devices Octopus Net
devices.

- 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. The integrated CAM slot in
Octopus Net devices isn't supported.

- The 100% compliance against SAT>IP specification 1.2 requires a
patched VDR providing channel configuration for pilot, T2 system id,
and SISO/MISO values.

Acknowledgements:

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

0 comments on commit 2d3f4ad

Please sign in to comment.