aboutsummaryrefslogtreecommitdiff
path: root/multimedia
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
parent64f3861442f393e33ffeae8143047216adf36ccf (diff)
downloadports-871aa3a299feb81d5cc275d611421a4572a216ac.tar.gz
ports-871aa3a299feb81d5cc275d611421a4572a216ac.zip
Notes
Diffstat (limited to 'multimedia')
-rw-r--r--multimedia/Makefile1
-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
31 files changed, 365 insertions, 0 deletions
diff --git a/multimedia/Makefile b/multimedia/Makefile
index 37aecf4396bf..e82b54fc141c 100644
--- a/multimedia/Makefile
+++ b/multimedia/Makefile
@@ -339,6 +339,7 @@
SUBDIR += vdr-plugin-epgsearch
SUBDIR += vdr-plugin-femon
SUBDIR += vdr-plugin-infosatepg
+ SUBDIR += vdr-plugin-iptv
SUBDIR += vic
SUBDIR += vlc
SUBDIR += vodcatcher
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