aboutsummaryrefslogtreecommitdiff
path: root/multimedia/vdr-plugin-iptv
diff options
context:
space:
mode:
authorJuergen Lock <nox@FreeBSD.org>2011-03-26 19:18:39 +0000
committerJuergen Lock <nox@FreeBSD.org>2011-03-26 19:18:39 +0000
commit871aa3a299feb81d5cc275d611421a4572a216ac (patch)
tree56633ac71e94d86eecd6b6a38760e3801e9bb56b /multimedia/vdr-plugin-iptv
parent64f3861442f393e33ffeae8143047216adf36ccf (diff)
downloadports-871aa3a299feb81d5cc275d611421a4572a216ac.tar.gz
ports-871aa3a299feb81d5cc275d611421a4572a216ac.zip
This is an IPTV plugin for the Video Disk Recorder (VDR).
This plugin integrates multicast IPTV transport streams seamlessly into VDR. You can use any IPTV 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. Currently the IPTV plugin has direct support for both multicast UDP/RTP and unicast HTTP MPEG1/2 transport streams. Also a file input method is supported, but a file delay must be selected individually to prevent VDR's transfer buffer over/underflow. Therefore the file input should be considered as a testing feature only. IPTV plugin also features a support for external streaming applications. With proper helper applications and configuration IPTV plugin is able to display not only MPEG1/2 transport streams but also other formats like MP3 radio streams, mms video streams and so on. WWW: http://www.saunalahti.fi/~rahrenbe/vdr/iptv/
Notes
Notes: svn path=/head/; revision=271802
Diffstat (limited to 'multimedia/vdr-plugin-iptv')
-rw-r--r--multimedia/vdr-plugin-iptv/Makefile74
-rw-r--r--multimedia/vdr-plugin-iptv/distinfo2
-rw-r--r--multimedia/vdr-plugin-iptv/files/channels.conf.iptv17
-rw-r--r--multimedia/vdr-plugin-iptv/files/patch-Makefile31
-rw-r--r--multimedia/vdr-plugin-iptv/files/patch-common.h29
-rw-r--r--multimedia/vdr-plugin-iptv/files/patch-iptv-vlc2iptv28
-rw-r--r--multimedia/vdr-plugin-iptv/files/patch-protocolext.c28
-rw-r--r--multimedia/vdr-plugin-iptv/files/patch-sectionfilter.h10
-rw-r--r--multimedia/vdr-plugin-iptv/files/patch-socket.h10
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/3Sat.conf1
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio1.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio1xtra.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio2.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio3.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio4.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio4lw.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio5liveint.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio5livesport.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio6music.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio7.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/Bundesligen-TV.conf1
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/Daytona-Beach.conf1
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/NASA-1200-Kbit.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/NASA-500-Kbit.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/NASA.conf3
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/Sky-News.conf2
-rw-r--r--multimedia/vdr-plugin-iptv/files/vlcinput/THE_VOICE.conf1
-rw-r--r--multimedia/vdr-plugin-iptv/pkg-descr20
-rw-r--r--multimedia/vdr-plugin-iptv/pkg-plist48
-rw-r--r--multimedia/vdr-plugin-iptv/pkg-plist.foo22
30 files changed, 364 insertions, 0 deletions
diff --git a/multimedia/vdr-plugin-iptv/Makefile b/multimedia/vdr-plugin-iptv/Makefile
new file mode 100644
index 000000000000..7b05b686b037
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/Makefile
@@ -0,0 +1,74 @@
+# New ports collection makefile for: vdr-plugin-remote
+# Date created: Sun Aug 29 18:11:42 CEST 2010
+# Whom: Juergen Lock <nox@freebsd.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= vdr-plugin-iptv
+PORTVERSION= 0.4.2
+PORTREVISION= 6
+CATEGORIES= multimedia
+MASTER_SITES= http://www.saunalahti.fi/~rahrenbe/vdr/iptv/files/
+DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
+EXTRACT_SUFX= .tgz
+
+MAINTAINER= nox@FreeBSD.org
+COMMENT= Video Disk Recorder - IP television plugin
+
+PATCH_STRIP= -p1
+HAVE_CONFIGURE= yes
+PORTDOCS= COPYING README
+PORTEXAMPLES= channels.conf.iptv
+MAKE_JOBS_SAFE= yes
+WRKSRC= ${WRKDIR}/${PLUGIN}-${DISTVERSION}
+
+.include "${.CURDIR}/../vdr/Makefile.plugins"
+
+post-patch: post-patch-plugin
+ @${REINPLACE_CMD} 's|^\(CHANNELS_CONF[[:space:]]*\)[?]*\(=[[:space:]]*\).*|\1\2${PREFIX}/etc/vdr/channels.conf|;'\\
+ 's|^\(CHANNEL_SETTINGS_DIR[[:space:]]*\)[?]*\(=[[:space:]]*\)/etc|\1\2${PREFIX}/etc|;'\
+ ${WRKSRC}/iptv/vlc2iptv
+
+post-install: post-install-pluginlocales
+ @${MKDIR} ${PREFIX}/etc/vdr/plugins/${PLUGIN}
+ @${MKDIR} ${PREFIX}/etc/vdr/plugins/${PLUGIN}/vlcinput
+ @${INSTALL_DATA} ${FILESDIR}/vlcinput/*.conf ${PREFIX}/etc/vdr/plugins/${PLUGIN}/vlcinput
+ @${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/image.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}/image.sh.sample
+ @if [ ! -f ${PREFIX}/etc/vdr/plugins/${PLUGIN}/image.sh ]; then \
+ ${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/image.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}; \
+ fi
+ @${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/internetradio.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}/internetradio.sh.sample
+ @if [ ! -f ${PREFIX}/etc/vdr/plugins/${PLUGIN}/internetradio.sh ]; then \
+ ${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/internetradio.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}; \
+ fi
+ @${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/iptvstream-notrap.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}/iptvstream-notrap.sh.sample
+ @if [ ! -f ${PREFIX}/etc/vdr/plugins/${PLUGIN}/iptvstream-notrap.sh ]; then \
+ ${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/iptvstream-notrap.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}; \
+ fi
+ @${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/iptvstream.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}/iptvstream.sh.sample
+ @if [ ! -f ${PREFIX}/etc/vdr/plugins/${PLUGIN}/iptvstream.sh ]; then \
+ ${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/iptvstream.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}; \
+ fi
+ @${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/linein.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}/linein.sh.sample
+ @if [ ! -f ${PREFIX}/etc/vdr/plugins/${PLUGIN}/linein.sh ]; then \
+ ${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/linein.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}; \
+ fi
+ @${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/vlc2iptv ${PREFIX}/etc/vdr/plugins/${PLUGIN}/vlc2iptv.sample
+ @if [ ! -f ${PREFIX}/etc/vdr/plugins/${PLUGIN}/vlc2iptv ]; then \
+ ${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/vlc2iptv ${PREFIX}/etc/vdr/plugins/${PLUGIN}; \
+ fi
+ @${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/webcam.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}/webcam.sh.sample
+ @if [ ! -f ${PREFIX}/etc/vdr/plugins/${PLUGIN}/webcam.sh ]; then \
+ ${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}/webcam.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}; \
+ fi
+.if !defined(NOPORTEXAMPLES)
+ ${MKDIR} ${EXAMPLESDIR}
+ ${INSTALL_DATA} ${FILESDIR}/channels.conf.iptv ${EXAMPLESDIR}
+.endif
+.if !defined(NOPORTDOCS)
+ ${MKDIR} ${DOCSDIR}
+ (cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR})
+.endif
+
+.include <bsd.port.mk>
diff --git a/multimedia/vdr-plugin-iptv/distinfo b/multimedia/vdr-plugin-iptv/distinfo
new file mode 100644
index 000000000000..efd1c9c89b51
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/distinfo
@@ -0,0 +1,2 @@
+SHA256 (vdr/vdr-iptv-0.4.2.tgz) = 3f86533d12414a7fa725eeedc75b64383e0de52b741cf418d9b60af5a76a9739
+SIZE (vdr/vdr-iptv-0.4.2.tgz) = 47565
diff --git a/multimedia/vdr-plugin-iptv/files/channels.conf.iptv b/multimedia/vdr-plugin-iptv/files/channels.conf.iptv
new file mode 100644
index 000000000000..3c4fe6f5d22f
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/channels.conf.iptv
@@ -0,0 +1,17 @@
+:@950 iptv-plugin
+BBC-radio1;IPTV:2010:S=0|P=0|F=EXT|U=vlc2iptv|A=2010:I:0:0:6=eng@3:0:0:1:0:0:0
+BBC-radio1xtra;IPTV:2020:S=0|P=0|F=EXT|U=vlc2iptv|A=2020:I:0:0:6=eng@3:0:0:1:0:0:0
+BBC-radio2;IPTV:2030:S=0|P=0|F=EXT|U=vlc2iptv|A=2030:I:0:0:6=eng@3:0:0:1:0:0:0
+BBC-radio3;IPTV:2040:S=0|P=0|F=EXT|U=vlc2iptv|A=2040:I:0:0:6=eng@3:0:0:1:0:0:0
+BBC-radio4;IPTV:2050:S=0|P=0|F=EXT|U=vlc2iptv|A=2050:I:0:5=2:6=eng@3:0:0:1:0:0:0
+BBC-radio4lw;IPTV:2060:S=0|P=0|F=EXT|U=vlc2iptv|A=2060:I:0:0:6=eng@3:0:0:1:0:0:0
+BBC-radio5liveint;IPTV:2070:S=0|P=0|F=EXT|U=vlc2iptv|A=2070:I:0:0:6=eng@3:0:0:1:0:0:0
+BBC-radio5livesport;IPTV:2080:S=0|P=0|F=EXT|U=vlc2iptv|A=2080:I:0:5=2:6=eng@3:0:0:1:0:0:0
+BBC-radio6music;IPTV:2090:S=0|P=0|F=EXT|U=vlc2iptv|A=2090:I:0:0:6=eng@3:0:0:1:0:0:0
+BBC-radio7;IPTV:2100:S=0|P=0|F=EXT|U=vlc2iptv|A=2100:I:0:5=2:6=eng@3:0:0:1:0:0:0
+THE_VOICE;IPTV:3010:S=0|P=0|F=EXT|U=vlc2iptv|A=3010:I:0:0:6=eng@3:0:0:1:0:0:0
+3Sat;IPTV:3020:S=0|P=0|F=EXT|U=vlc2iptv|A=3020:I:0:2=2:3=@4:0:0:7:0:0:0
+Sky-News;IPTV:3030:S=0|P=0|F=EXT|U=vlc2iptv|A=3030:I:0:5=2:6=eng@3:0:0:1:0:0:0
+NASA;IPTV:4010:S=0|P=0|F=EXT|U=vlc2iptv|A=4010:I:0:5=2:6=eng@3:0:0:1:0:0:0
+NASA-500-Kbit;IPTV:4020:S=0|P=0|F=EXT|U=vlc2iptv|A=4020:I:0:5=2:6=eng@3:0:0:1:0:0:0
+NASA-1200-Kbit;IPTV:4030:S=0|P=0|F=EXT|U=vlc2iptv|A=4030:I:0:5=2:6=eng@3:0:0:1:0:0:0
diff --git a/multimedia/vdr-plugin-iptv/files/patch-Makefile b/multimedia/vdr-plugin-iptv/files/patch-Makefile
new file mode 100644
index 000000000000..14bc0deb01f0
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/patch-Makefile
@@ -0,0 +1,31 @@
+--- a/Makefile
++++ b/Makefile
+@@ -50,7 +50,8 @@ PACKAGE = vdr-$(ARCHIVE)
+
+ ### Includes and Defines (add further entries here):
+
+-INCLUDES += -I$(VDRDIR)/include
++#INCLUDES += -I$(VDRDIR)/include
++INCLUDES += -I$(VDRDIR)
+
+ DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
+
+@@ -117,7 +118,11 @@ libvdr-$(PLUGIN).so: $(OBJS)
+ ifndef IPTV_DEBUG
+ @$(STRIP) $@
+ endif
++ifdef FREEBSD
++ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
++else
+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
++endif
+
+ dist: clean
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
+@@ -129,3 +134,6 @@ dist: clean
+
+ clean:
+ @-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~ $(PODIR)/*.mo $(PODIR)/*.pot
++
++install:
++ ${INSTALL_PROGRAM} $(LIBDIR)/libvdr-$(PLUGIN).so.$(APIVERSION) $(PREFIX)/lib/vdr/libvdr-$(PLUGIN).so.$(APIVERSION)
diff --git a/multimedia/vdr-plugin-iptv/files/patch-common.h b/multimedia/vdr-plugin-iptv/files/patch-common.h
new file mode 100644
index 000000000000..4e2a3ccb5c7c
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/patch-common.h
@@ -0,0 +1,29 @@
+--- a/common.h
++++ b/common.h
+@@ -36,6 +36,7 @@
+
+ #define SECTION_FILTER_TABLE_SIZE 7
+
++#ifndef __FreeBSD__
+ #define ERROR_IF_FUNC(exp, errstr, func, ret) \
+ do { \
+ if (exp) { \
+@@ -45,6 +46,18 @@
+ ret; \
+ } \
+ } while (0)
++#else
++#define ERROR_IF_FUNC(exp, errstr, func, ret) \
++ do { \
++ if (exp) { \
++ char tmp[64]; \
++ strerror_r(errno, tmp, sizeof(tmp)); \
++ error(errstr": %s", tmp); \
++ func; \
++ ret; \
++ } \
++ } while (0)
++#endif
+
+
+ #define ERROR_IF_RET(exp, errstr, ret) ERROR_IF_FUNC(exp, errstr, ,ret);
diff --git a/multimedia/vdr-plugin-iptv/files/patch-iptv-vlc2iptv b/multimedia/vdr-plugin-iptv/files/patch-iptv-vlc2iptv
new file mode 100644
index 000000000000..0db083d35828
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/patch-iptv-vlc2iptv
@@ -0,0 +1,28 @@
+--- a/iptv/vlc2iptv
++++ b/iptv/vlc2iptv
+@@ -29,6 +29,8 @@ CHANNELS_CONF=/usr/local/etc/vdr/channel
+ CHANNEL_SETTINGS_DIR=/usr/local/etc/vdr/plugins/iptv/vlcinput/
+ VIDEO_BITRATE=2400
+ AUDIO_BITRATE=320
++AUDIO_CODEC=mpga
++VIDEO_CODEC=mp2v
+
+ #
+ # </Global Settings>
+@@ -88,13 +90,6 @@ else
+ RESIZE_OPTIONS=""
+ fi
+
+-vlc "${URL}" \
+- --sout "#transcode{vcodec=mp2v$RESIZE_OPTIONS,acodec=mpga,vb=${VIDEO_BITRATE},ab=${AUDIO_BITRATE}}:standard{access=udp,mux=ts{pid-video=${VPID},pid-audio=${APID},pid-spu=${SPID}},dst=127.0.0.1:${PORT}}" \
+- --intf dummy &
+-
+-PID=${!}
+-
+-trap 'kill -INT ${PID} 2> /dev/null' INT EXIT QUIT TERM
+-
+-# Waiting for the given PID to terminate
+-wait ${PID}
++exec vlc "${URL}" \
++ --sout "#transcode{vcodec=$VIDEO_CODEC$RESIZE_OPTIONS,acodec=$AUDIO_CODEC,vb=${VIDEO_BITRATE},ab=${AUDIO_BITRATE}}:standard{access=udp,mux=ts{pid-video=${VPID},pid-audio=${APID},pid-spu=${SPID}},dst=127.0.0.1:${PORT}}" \
++ --intf dummy
diff --git a/multimedia/vdr-plugin-iptv/files/patch-protocolext.c b/multimedia/vdr-plugin-iptv/files/patch-protocolext.c
new file mode 100644
index 000000000000..65a30dae98ac
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/patch-protocolext.c
@@ -0,0 +1,28 @@
+--- a/protocolext.c
++++ b/protocolext.c
+@@ -82,6 +82,7 @@ void cIptvProtocolExt::TerminateScript(v
+ error("Script '%s' won't terminate - killing it!", *scriptFile);
+ kill(pid, SIGKILL);
+ }
++#ifdef linux
+ // Clear wait status to make sure child exit status is accessible
+ memset(&waitStatus, '\0', sizeof(waitStatus));
+ // Wait for child termination
+@@ -94,6 +95,17 @@ void cIptvProtocolExt::TerminateScript(v
+ debug("Child (%d) exited as expected\n", pid);
+ waitOver = true;
+ }
++#else
++ int status = 0;
++ retval = waitpid(pid, &status, (WNOHANG));
++ ERROR_IF_RET(retval < 0, "waitid()", waitOver = true);
++ // These are the acceptable conditions under which child exit is
++ // regarded as successful
++ if (!retval && (WIFEXITED(status) || WIFSIGNALED(status))) {
++ debug("Child (%d) exited as expected\n", pid);
++ waitOver = true;
++ }
++#endif
+ // Unsuccessful wait, avoid busy looping
+ if (!waitOver)
+ cCondWait::SleepMs(timeoutms);
diff --git a/multimedia/vdr-plugin-iptv/files/patch-sectionfilter.h b/multimedia/vdr-plugin-iptv/files/patch-sectionfilter.h
new file mode 100644
index 000000000000..cd9ed3a9011c
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/patch-sectionfilter.h
@@ -0,0 +1,10 @@
+--- a/sectionfilter.h
++++ b/sectionfilter.h
+@@ -9,6 +9,7 @@
+ #define __IPTV_SECTIONFILTER_H
+
+ #include <vdr/device.h>
++#include <sys/socket.h>
+
+ #include "common.h"
+ #include "statistics.h"
diff --git a/multimedia/vdr-plugin-iptv/files/patch-socket.h b/multimedia/vdr-plugin-iptv/files/patch-socket.h
new file mode 100644
index 000000000000..c11eca14a521
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/patch-socket.h
@@ -0,0 +1,10 @@
+--- a/socket.h
++++ b/socket.h
+@@ -9,6 +9,7 @@
+ #define __IPTV_SOCKET_H
+
+ #include <arpa/inet.h>
++#include <netinet/in.h>
+
+ class cIptvSocket {
+ protected:
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/3Sat.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/3Sat.conf
new file mode 100644
index 000000000000..1c26db3a5d25
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/3Sat.conf
@@ -0,0 +1 @@
+URL="http://wstreaming.zdf.de/encoder/3sat_h.asx"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio1.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio1.conf
new file mode 100644
index 000000000000..3dc4291e3bef
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio1.conf
@@ -0,0 +1,3 @@
+# see:
+# http://faq.external.bbc.co.uk/questions/radio/online_radiohowto
+URL="http://www.bbc.co.uk/radio/listen/live/r1.asx"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio1xtra.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio1xtra.conf
new file mode 100644
index 000000000000..50438deeef78
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio1xtra.conf
@@ -0,0 +1,3 @@
+# see:
+# http://faq.external.bbc.co.uk/questions/radio/online_radiohowto
+URL="http://www.bbc.co.uk/radio/listen/live/r1x.asx"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio2.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio2.conf
new file mode 100644
index 000000000000..7a5e314564e1
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio2.conf
@@ -0,0 +1,3 @@
+# see:
+# http://faq.external.bbc.co.uk/questions/radio/online_radiohowto
+URL="http://www.bbc.co.uk/radio/listen/live/r2.asx"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio3.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio3.conf
new file mode 100644
index 000000000000..e6d09c2e0f24
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio3.conf
@@ -0,0 +1,3 @@
+# see:
+# http://faq.external.bbc.co.uk/questions/radio/online_radiohowto
+URL="http://www.bbc.co.uk/radio/listen/live/r3.asx"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio4.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio4.conf
new file mode 100644
index 000000000000..eb918da91160
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio4.conf
@@ -0,0 +1,3 @@
+# see:
+# http://faq.external.bbc.co.uk/questions/radio/online_radiohowto
+URL="http://www.bbc.co.uk/radio/listen/live/r4.asx"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio4lw.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio4lw.conf
new file mode 100644
index 000000000000..d223215d43e7
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio4lw.conf
@@ -0,0 +1,3 @@
+# see:
+# http://faq.external.bbc.co.uk/questions/radio/online_radiohowto
+URL="http://www.bbc.co.uk/radio/listen/live/r4lw.asx"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio5liveint.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio5liveint.conf
new file mode 100644
index 000000000000..62c8fcc4cc20
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio5liveint.conf
@@ -0,0 +1,3 @@
+# see:
+# http://faq.external.bbc.co.uk/questions/radio/online_radiohowto
+URL="http://www.bbc.co.uk/fivelive/live/live_int.asx"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio5livesport.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio5livesport.conf
new file mode 100644
index 000000000000..1024a0006956
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio5livesport.conf
@@ -0,0 +1,3 @@
+# see:
+# http://faq.external.bbc.co.uk/questions/radio/online_radiohowto
+URL="http://www.bbc.co.uk/radio/listen/live/r5lsp.asx"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio6music.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio6music.conf
new file mode 100644
index 000000000000..582196ac084e
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio6music.conf
@@ -0,0 +1,3 @@
+# see:
+# http://faq.external.bbc.co.uk/questions/radio/online_radiohowto
+URL="http://www.bbc.co.uk/radio/listen/live/r6.asx"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio7.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio7.conf
new file mode 100644
index 000000000000..9d7961eb68cc
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/BBC-radio7.conf
@@ -0,0 +1,3 @@
+# see:
+# http://faq.external.bbc.co.uk/questions/radio/online_radiohowto
+URL="http://www.bbc.co.uk/radio/listen/live/r7.asx"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/Bundesligen-TV.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/Bundesligen-TV.conf
new file mode 100644
index 000000000000..a72ebfa097bf
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/Bundesligen-TV.conf
@@ -0,0 +1 @@
+URL="http://www.bundesligen-tv.com/act_stream.aspx?sender_id=31"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/Daytona-Beach.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/Daytona-Beach.conf
new file mode 100644
index 000000000000..e242e1cf8245
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/Daytona-Beach.conf
@@ -0,0 +1 @@
+URL="rtsp://real.prohosting.com/encoder/daytona.rm"
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/NASA-1200-Kbit.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/NASA-1200-Kbit.conf
new file mode 100644
index 000000000000..0d712d8c59f8
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/NASA-1200-Kbit.conf
@@ -0,0 +1,3 @@
+URL="http://playlist.yahoo.com/makeplaylist.dll?id=1368163"
+VIDEO_CODEC=mp2v,fps=30
+AUDIO_BITRATE=128
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/NASA-500-Kbit.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/NASA-500-Kbit.conf
new file mode 100644
index 000000000000..860fcf49eb08
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/NASA-500-Kbit.conf
@@ -0,0 +1,3 @@
+URL="http://playlist.yahoo.com/makeplaylist.dll?id=1368570"
+VIDEO_CODEC=mp2v,fps=30
+AUDIO_BITRATE=128
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/NASA.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/NASA.conf
new file mode 100644
index 000000000000..dea4eb95ad7e
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/NASA.conf
@@ -0,0 +1,3 @@
+URL="http://www.nasa.gov/55644main_NASATV_Windows.asx"
+VIDEO_CODEC=mp2v,fps=25
+AUDIO_BITRATE=128
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/Sky-News.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/Sky-News.conf
new file mode 100644
index 000000000000..045037b93788
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/Sky-News.conf
@@ -0,0 +1,2 @@
+URL="mms://live1.wm.skynews.servecast.net/skynews_wmlz_live300k"
+VIDEO_CODEC=mp2v,fps=30
diff --git a/multimedia/vdr-plugin-iptv/files/vlcinput/THE_VOICE.conf b/multimedia/vdr-plugin-iptv/files/vlcinput/THE_VOICE.conf
new file mode 100644
index 000000000000..82324adf6915
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/files/vlcinput/THE_VOICE.conf
@@ -0,0 +1 @@
+URL="mms://62.41.56.32/PUBLIC_votv_fi"
diff --git a/multimedia/vdr-plugin-iptv/pkg-descr b/multimedia/vdr-plugin-iptv/pkg-descr
new file mode 100644
index 000000000000..5e0433ac1675
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/pkg-descr
@@ -0,0 +1,20 @@
+This is an IPTV plugin for the Video Disk Recorder (VDR).
+
+This plugin integrates multicast IPTV transport streams seamlessly into
+VDR. You can use any IPTV 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.
+
+Currently the IPTV plugin has direct support for both multicast UDP/RTP
+and unicast HTTP MPEG1/2 transport streams. Also a file input method is
+supported, but a file delay must be selected individually to prevent
+VDR's transfer buffer over/underflow. Therefore the file input should be
+considered as a testing feature only.
+
+IPTV plugin also features a support for external streaming applications.
+With proper helper applications and configuration IPTV plugin is able to
+display not only MPEG1/2 transport streams but also other formats like
+MP3 radio streams, mms video streams and so on.
+
+WWW: http://www.saunalahti.fi/~rahrenbe/vdr/iptv/
diff --git a/multimedia/vdr-plugin-iptv/pkg-plist b/multimedia/vdr-plugin-iptv/pkg-plist
new file mode 100644
index 000000000000..087da002d667
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/pkg-plist
@@ -0,0 +1,48 @@
+lib/vdr/libvdr-iptv.so.1.7.17
+@unexec if cmp -s %D/etc/vdr/plugins/iptv/image.sh.sample %D/etc/vdr/plugins/iptv/image.sh; then rm -f %D/etc/vdr/plugins/iptv/image.sh; fi
+etc/vdr/plugins/iptv/image.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/iptv/image.sh ] ; then cp -p %D/%F %B/image.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/iptv/internetradio.sh.sample %D/etc/vdr/plugins/iptv/internetradio.sh; then rm -f %D/etc/vdr/plugins/iptv/internetradio.sh; fi
+etc/vdr/plugins/iptv/internetradio.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/iptv/internetradio.sh ] ; then cp -p %D/%F %B/internetradio.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/iptv/iptvstream-notrap.sh.sample %D/etc/vdr/plugins/iptv/iptvstream-notrap.sh; then rm -f %D/etc/vdr/plugins/iptv/iptvstream-notrap.sh; fi
+etc/vdr/plugins/iptv/iptvstream-notrap.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/iptv/iptvstream-notrap.sh ] ; then cp -p %D/%F %B/iptvstream-notrap.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/iptv/iptvstream.sh.sample %D/etc/vdr/plugins/iptv/iptvstream.sh; then rm -f %D/etc/vdr/plugins/iptv/iptvstream.sh; fi
+etc/vdr/plugins/iptv/iptvstream.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/iptv/iptvstream.sh ] ; then cp -p %D/%F %B/iptvstream.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/iptv/linein.sh.sample %D/etc/vdr/plugins/iptv/linein.sh; then rm -f %D/etc/vdr/plugins/iptv/linein.sh; fi
+etc/vdr/plugins/iptv/linein.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/iptv/linein.sh ] ; then cp -p %D/%F %B/linein.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/iptv/vlc2iptv.sample %D/etc/vdr/plugins/iptv/vlc2iptv; then rm -f %D/etc/vdr/plugins/iptv/vlc2iptv; fi
+etc/vdr/plugins/iptv/vlc2iptv.sample
+@exec if [ ! -f %D/etc/vdr/plugins/iptv/vlc2iptv ] ; then cp -p %D/%F %B/vlc2iptv; fi
+@unexec if cmp -s %D/etc/vdr/plugins/iptv/webcam.sh.sample %D/etc/vdr/plugins/iptv/webcam.sh; then rm -f %D/etc/vdr/plugins/iptv/webcam.sh; fi
+etc/vdr/plugins/iptv/webcam.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/iptv/webcam.sh ] ; then cp -p %D/%F %B/webcam.sh; fi
+etc/vdr/plugins/iptv/vlcinput/3Sat.conf
+etc/vdr/plugins/iptv/vlcinput/BBC-radio1.conf
+etc/vdr/plugins/iptv/vlcinput/BBC-radio1xtra.conf
+etc/vdr/plugins/iptv/vlcinput/BBC-radio2.conf
+etc/vdr/plugins/iptv/vlcinput/BBC-radio3.conf
+etc/vdr/plugins/iptv/vlcinput/BBC-radio4.conf
+etc/vdr/plugins/iptv/vlcinput/BBC-radio4lw.conf
+etc/vdr/plugins/iptv/vlcinput/BBC-radio5liveint.conf
+etc/vdr/plugins/iptv/vlcinput/BBC-radio5livesport.conf
+etc/vdr/plugins/iptv/vlcinput/BBC-radio6music.conf
+etc/vdr/plugins/iptv/vlcinput/BBC-radio7.conf
+etc/vdr/plugins/iptv/vlcinput/Bundesligen-TV.conf
+etc/vdr/plugins/iptv/vlcinput/Daytona-Beach.conf
+etc/vdr/plugins/iptv/vlcinput/NASA-1200-Kbit.conf
+etc/vdr/plugins/iptv/vlcinput/NASA-500-Kbit.conf
+etc/vdr/plugins/iptv/vlcinput/NASA.conf
+etc/vdr/plugins/iptv/vlcinput/Sky-News.conf
+etc/vdr/plugins/iptv/vlcinput/THE_VOICE.conf
+@dirrmtry etc/vdr/plugins/iptv/vlcinput
+@dirrmtry etc/vdr/plugins/iptv
+%%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-iptv.mo
+%%NLS%%share/locale/fi_FI/LC_MESSAGES/vdr-iptv.mo
+%%NLS%%share/locale/fr_FR/LC_MESSAGES/vdr-iptv.mo
+%%NLS%%share/locale/it_IT/LC_MESSAGES/vdr-iptv.mo
+%%NLS%%share/locale/nl_NL/LC_MESSAGES/vdr-iptv.mo
+%%NLS%%share/locale/ru_RU/LC_MESSAGES/vdr-iptv.mo
diff --git a/multimedia/vdr-plugin-iptv/pkg-plist.foo b/multimedia/vdr-plugin-iptv/pkg-plist.foo
new file mode 100644
index 000000000000..be0f705e0b68
--- /dev/null
+++ b/multimedia/vdr-plugin-iptv/pkg-plist.foo
@@ -0,0 +1,22 @@
+lib/vdr/libvdr-iptv.so.1.7.15
+@unexec if cmp -s %D/etc/vdr/plugins/streamdev/image.sh.sample %D/etc/vdr/plugins/streamdev/image.sh; then rm -f %D/etc/vdr/plugins/streamdev/image.sh; fi
+etc/vdr/plugins/streamdev/image.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/streamdev/image.sh ] ; then cp -p %D/%F %B/image.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/streamdev/internetradio.sh.sample %D/etc/vdr/plugins/streamdev/internetradio.sh; then rm -f %D/etc/vdr/plugins/streamdev/internetradio.sh; fi
+etc/vdr/plugins/streamdev/internetradio.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/streamdev/iptvstream-notrap.sh ] ; then cp -p %D/%F %B/iptvstream-notrap.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/streamdev/iptvstream-notrap.sh.sample %D/etc/vdr/plugins/streamdev/iptvstream-notrap.sh; then rm -f %D/etc/vdr/plugins/streamdev/iptvstream-notrap.sh; fi
+etc/vdr/plugins/streamdev/iptvstream-notrap.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/streamdev/iptvstream.sh ] ; then cp -p %D/%F %B/iptvstream.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/streamdev/iptvstream.sh.sample %D/etc/vdr/plugins/streamdev/iptvstream.sh; then rm -f %D/etc/vdr/plugins/streamdev/iptvstream.sh; fi
+etc/vdr/plugins/streamdev/iptvstream.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/streamdev/linein.sh ] ; then cp -p %D/%F %B/linein.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/streamdev/linein.sh.sample %D/etc/vdr/plugins/streamdev/linein.sh; then rm -f %D/etc/vdr/plugins/streamdev/linein.sh; fi
+etc/vdr/plugins/streamdev/linein.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/streamdev/vlc2iptv.sh ] ; then cp -p %D/%F %B/vlc2iptv.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/streamdev/vlc2iptv.sh.sample %D/etc/vdr/plugins/streamdev/vlc2iptv.sh; then rm -f %D/etc/vdr/plugins/streamdev/vlc2iptv.sh; fi
+etc/vdr/plugins/streamdev/vlc2iptv.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/streamdev/webcam.sh ] ; then cp -p %D/%F %B/webcam.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/streamdev/webcam.sh.sample %D/etc/vdr/plugins/streamdev/webcam.sh; then rm -f %D/etc/vdr/plugins/streamdev/webcam.sh; fi
+etc/vdr/plugins/streamdev/webcam.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/streamdev/externremux.sh ] ; then cp -p %D/%F %B/externremux.sh; fi