aboutsummaryrefslogtreecommitdiff
path: root/multimedia/vdr-plugin-streamdev
diff options
context:
space:
mode:
authorJuergen Lock <nox@FreeBSD.org>2011-03-26 19:20:47 +0000
committerJuergen Lock <nox@FreeBSD.org>2011-03-26 19:20:47 +0000
commit32777e78a4d6211eb29c25c27c96fbdd6bc11c54 (patch)
tree01d3655c95ac704947161f269ae4d6c58b3fa3ee /multimedia/vdr-plugin-streamdev
parent396d80a6a16224480543c5a23139b64f461fac37 (diff)
downloadports-32777e78a4d6211eb29c25c27c96fbdd6bc11c54.tar.gz
ports-32777e78a4d6211eb29c25c27c96fbdd6bc11c54.zip
This PlugIn is a VDR implementation of the VTP (Video Transfer Protocol) Version 0.0.3 (see file PROTOCOL) and a basic HTTP Streaming Protocol. It consists of a server and a client part, but both parts are compiled together with the PlugIn source, but appear as separate PlugIns to VDR. The client part acts as a full Input Device, so it can be used in conjunction with a DXR3-Card, XINE, SoftDevice or others to act as a working VDR installation without any DVB-Hardware including EPG-Handling. The server part acts as a Receiver-Device and works transparently in the background within your running VDR. It can serve multiple clients and it can distribute multiple input streams (i.e. from multiple DVB-cards) to multiple clients using the native VTP protocol (for VDR-clients), or using the HTTP protocol supporting clients such as XINE, MPlayer and so on. With XMMS or WinAMP, you can also listen to radio channels over a HTTP connection. WWW: http://streamdev.vdr-developer.org/
Notes
Notes: svn path=/head/; revision=271808
Diffstat (limited to 'multimedia/vdr-plugin-streamdev')
-rw-r--r--multimedia/vdr-plugin-streamdev/Makefile53
-rw-r--r--multimedia/vdr-plugin-streamdev/distinfo2
-rw-r--r--multimedia/vdr-plugin-streamdev/files/patch-Makefile10
-rw-r--r--multimedia/vdr-plugin-streamdev/files/patch-client-Makefile14
-rw-r--r--multimedia/vdr-plugin-streamdev/files/patch-client-setup.c10
-rw-r--r--multimedia/vdr-plugin-streamdev/files/patch-server-Makefile14
-rw-r--r--multimedia/vdr-plugin-streamdev/files/patch-server-componentIGMP.c28
-rw-r--r--multimedia/vdr-plugin-streamdev/files/patch-server-livestreamer.c15
-rw-r--r--multimedia/vdr-plugin-streamdev/files/patch-server-recplayer.c13
-rw-r--r--multimedia/vdr-plugin-streamdev/files/patch-server-setup.c10
-rw-r--r--multimedia/vdr-plugin-streamdev/pkg-descr20
-rw-r--r--multimedia/vdr-plugin-streamdev/pkg-plist23
12 files changed, 212 insertions, 0 deletions
diff --git a/multimedia/vdr-plugin-streamdev/Makefile b/multimedia/vdr-plugin-streamdev/Makefile
new file mode 100644
index 000000000000..eefd2547a4c2
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/Makefile
@@ -0,0 +1,53 @@
+# New ports collection makefile for: vdr-plugin-streamdev
+# Date created: Wed Apr 14 18:11:42 CEST 2010
+# Whom: Juergen Lock <nox@freebsd.org>
+#
+# $FreeBSD$
+#
+
+PORTNAME= vdr-plugin-streamdev
+PORTVERSION= 0.5.1
+PORTREVISION= 2
+CATEGORIES= multimedia
+MASTER_SITES= http://projects.vdr-developer.org/attachments/download/497/:release \
+ LOCAL:snapshot
+MASTER_SITE_SUBDIR= nox/:snapshot
+DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:release
+
+MAINTAINER= nox@FreeBSD.org
+COMMENT= Video Disk Recorder - stream device plugin
+
+RUN_DEPENDS+= bash:${PORTSDIR}/shells/bash
+
+EXTRACT_SUFX= .tgz
+PORTDOCS= COPYING README
+HAVE_CONFIGURE= yes
+MAKE_JOBS_SAFE= yes
+WRKSRC= ${WRKDIR}/${PLUGIN}-${PORTVERSION}
+VDR_PLUGIN_MAKEFILES= ${WRKSRC}/client/Makefile \
+ ${WRKSRC}/server/Makefile
+
+.include "${.CURDIR}/../vdr/Makefile.plugins"
+
+post-patch: post-patch-plugin
+ @${LN} -s ../locale ${WRKSRC}
+ @${REINPLACE_CMD} '1s-^#!/bin/sh-#!${LOCALBASE}/bin/bash-' \
+ ${WRKSRC}/${PLUGIN}-server/externremux.sh
+
+post-install: post-install-pluginlocales
+ @${MKDIR} ${PREFIX}/etc/vdr/plugins/${PLUGIN}-server
+ @${INSTALL_SCRIPT} ${WRKSRC}/${PLUGIN}-server/externremux.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}-server/externremux.sh.sample
+ @${INSTALL_DATA} ${WRKSRC}/${PLUGIN}-server/streamdevhosts.conf ${PREFIX}/etc/vdr/plugins/${PLUGIN}-server/streamdevhosts.conf.sample
+ @if [ ! -f ${PREFIX}/etc/vdr/plugins/${PLUGIN}-server/externremux.sh ]; then \
+ ${INSTALL_SCRIPT} -o ${VDR_USER} -g ${VDR_GROUP} ${WRKSRC}/${PLUGIN}-server/externremux.sh ${PREFIX}/etc/vdr/plugins/${PLUGIN}-server; \
+ fi
+ @if [ ! -f ${PREFIX}/etc/vdr/plugins/${PLUGIN}-server/streamdevhosts.conf ]; then \
+ ${INSTALL_DATA} -o ${VDR_USER} -g ${VDR_GROUP} ${WRKSRC}/${PLUGIN}-server/streamdevhosts.conf ${PREFIX}/etc/vdr/plugins/${PLUGIN}-server; \
+ fi
+.if !defined(NOPORTDOCS)
+ ${MKDIR} ${DOCSDIR}
+ (cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR})
+.endif
+
+.include <bsd.port.mk>
diff --git a/multimedia/vdr-plugin-streamdev/distinfo b/multimedia/vdr-plugin-streamdev/distinfo
new file mode 100644
index 000000000000..74a7fbebc020
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/distinfo
@@ -0,0 +1,2 @@
+SHA256 (vdr/vdr-streamdev-0.5.1.tgz) = 254d1648251cd7265a905e6b7580c8a9f992a3225b4e4b4087582cb9c56e6763
+SIZE (vdr/vdr-streamdev-0.5.1.tgz) = 178999
diff --git a/multimedia/vdr-plugin-streamdev/files/patch-Makefile b/multimedia/vdr-plugin-streamdev/files/patch-Makefile
new file mode 100644
index 000000000000..bc7db13a2d09
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/files/patch-Makefile
@@ -0,0 +1,10 @@
+--- Makefile.orig
++++ Makefile
+@@ -106,3 +106,7 @@ clean:
+ $(MAKE) -C ./remux clean
+ $(MAKE) -C ./client clean
+ $(MAKE) -C ./server clean
++
++install:
++ ${INSTALL_PROGRAM} $(LIBDIR)/libvdr-$(PLUGIN)-client.so.$(APIVERSION) $(PREFIX)/lib/vdr/libvdr-$(PLUGIN)-client.so.$(APIVERSION)
++ ${INSTALL_PROGRAM} $(LIBDIR)/libvdr-$(PLUGIN)-server.so.$(APIVERSION) $(PREFIX)/lib/vdr/libvdr-$(PLUGIN)-server.so.$(APIVERSION)
diff --git a/multimedia/vdr-plugin-streamdev/files/patch-client-Makefile b/multimedia/vdr-plugin-streamdev/files/patch-client-Makefile
new file mode 100644
index 000000000000..4e9baa3d57df
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/files/patch-client-Makefile
@@ -0,0 +1,14 @@
+--- client/Makefile.orig
++++ client/Makefile
+@@ -70,7 +70,11 @@ libvdr-$(PLUGIN).so: $(CLIENTOBJS) $(COM
+
+ %.so:
+ $(CXX) $(CXXFLAGS) -shared $^ -o $@
++ifdef FREEBSD
++ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
++else
+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
++endif
+
+ dist: clean
+ @-rm -rf $(TMPDIR)/$(ARCHIVE)
diff --git a/multimedia/vdr-plugin-streamdev/files/patch-client-setup.c b/multimedia/vdr-plugin-streamdev/files/patch-client-setup.c
new file mode 100644
index 000000000000..a7a9fbd496ed
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/files/patch-client-setup.c
@@ -0,0 +1,10 @@
+--- client/setup.c.orig
++++ client/setup.c
+@@ -2,6 +2,7 @@
+ * $Id: setup.c,v 1.2 2005/02/08 15:34:38 lordjaxom Exp $
+ */
+
++#include <stdint.h>
+ #include <vdr/menuitems.h>
+
+ #include "client/setup.h"
diff --git a/multimedia/vdr-plugin-streamdev/files/patch-server-Makefile b/multimedia/vdr-plugin-streamdev/files/patch-server-Makefile
new file mode 100644
index 000000000000..548423276816
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/files/patch-server-Makefile
@@ -0,0 +1,14 @@
+--- server/Makefile.orig
++++ server/Makefile
+@@ -76,7 +76,11 @@ libvdr-$(PLUGIN).so: $(SERVEROBJS) $(COM
+
+ %.so:
+ $(CXX) $(CXXFLAGS) -shared $^ -o $@
++ifdef FREEBSD
++ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
++else
+ @cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
++endif
+
+ clean:
+ @-rm -f $(COMMONOBJS) $(SERVEROBJS) $(DEPFILE) $(PODIR)/*.mo $(PODIR)/*.pot *.so *.tgz core* *~
diff --git a/multimedia/vdr-plugin-streamdev/files/patch-server-componentIGMP.c b/multimedia/vdr-plugin-streamdev/files/patch-server-componentIGMP.c
new file mode 100644
index 000000000000..74c7aa0ee5ca
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/files/patch-server-componentIGMP.c
@@ -0,0 +1,28 @@
+--- server/componentIGMP.c.orig
++++ server/componentIGMP.c
+@@ -1,9 +1,24 @@
+ /*
+ * $Id: componentIGMP.c,v 1.2 2009/07/03 21:44:19 schmirl Exp $
+ */
++#include <sys/types.h>
++#include <netinet/in.h>
+ #include <netinet/ip.h>
+ #include <netinet/igmp.h>
+-
++
++#ifndef IGMP_MEMBERSHIP_QUERY
++#define IGMP_MEMBERSHIP_QUERY IGMP_HOST_MEMBERSHIP_QUERY
++#endif
++#ifndef IGMP_V1_MEMBERSHIP_REPORT
++#define IGMP_V1_MEMBERSHIP_REPORT IGMP_v1_HOST_MEMBERSHIP_REPORT
++#endif
++#ifndef IGMP_V2_MEMBERSHIP_REPORT
++#define IGMP_V2_MEMBERSHIP_REPORT IGMP_v2_HOST_MEMBERSHIP_REPORT
++#endif
++#ifndef IGMP_V2_LEAVE_GROUP
++#define IGMP_V2_LEAVE_GROUP IGMP_HOST_LEAVE_MESSAGE
++#endif
++
+ #include "server/componentIGMP.h"
+ #include "server/connectionIGMP.h"
+ #include "server/setup.h"
diff --git a/multimedia/vdr-plugin-streamdev/files/patch-server-livestreamer.c b/multimedia/vdr-plugin-streamdev/files/patch-server-livestreamer.c
new file mode 100644
index 000000000000..68e5f7aaff9d
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/files/patch-server-livestreamer.c
@@ -0,0 +1,15 @@
+--- server/livestreamer.c.orig
++++ server/livestreamer.c
+@@ -1,7 +1,12 @@
+ #include <assert.h>
+
++#ifdef __FreeBSD__
++#include <vdr/libsi/section.h>
++#include <vdr/libsi/descriptor.h>
++#else
+ #include <libsi/section.h>
+ #include <libsi/descriptor.h>
++#endif
+
+ #include <vdr/ringbuffer.h>
+
diff --git a/multimedia/vdr-plugin-streamdev/files/patch-server-recplayer.c b/multimedia/vdr-plugin-streamdev/files/patch-server-recplayer.c
new file mode 100644
index 000000000000..2096711a9aec
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/files/patch-server-recplayer.c
@@ -0,0 +1,13 @@
+--- server/recplayer.c.orig
++++ server/recplayer.c
+@@ -196,8 +196,10 @@ unsigned long RecPlayer::getBlock(unsign
+ fseek(file, filePosition, SEEK_SET);
+ if (fread(&buffer[got], getFromThisSegment, 1, file) != 1) return 0; // umm, big problem.
+
++#ifdef __linux__
+ // Tell linux not to bother keeping the data in the FS cache
+ posix_fadvise(file->_fileno, filePosition, getFromThisSegment, POSIX_FADV_DONTNEED);
++#endif
+
+ got += getFromThisSegment;
+ currentPosition += getFromThisSegment;
diff --git a/multimedia/vdr-plugin-streamdev/files/patch-server-setup.c b/multimedia/vdr-plugin-streamdev/files/patch-server-setup.c
new file mode 100644
index 000000000000..96c9a77bd016
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/files/patch-server-setup.c
@@ -0,0 +1,10 @@
+--- server/setup.c.orig
++++ server/setup.c
+@@ -2,6 +2,7 @@
+ * $Id: setup.c,v 1.2 2005/05/09 20:22:29 lordjaxom Exp $
+ */
+
++#include <stdint.h>
+ #include <vdr/menuitems.h>
+
+ #include "server/setup.h"
diff --git a/multimedia/vdr-plugin-streamdev/pkg-descr b/multimedia/vdr-plugin-streamdev/pkg-descr
new file mode 100644
index 000000000000..9e35fd13b697
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/pkg-descr
@@ -0,0 +1,20 @@
+http://www.linuxtv.org/vdrwiki/index.php/Streamdev-plugin
+
+This PlugIn is a VDR implementation of the VTP (Video Transfer Protocol)
+Version 0.0.3 (see file PROTOCOL) and a basic HTTP Streaming Protocol.
+
+It consists of a server and a client part, but both parts are compiled together
+with the PlugIn source, but appear as separate PlugIns to VDR.
+
+The client part acts as a full Input Device, so it can be used in conjunction
+with a DXR3-Card, XINE, SoftDevice or others to act as a working VDR
+installation without any DVB-Hardware including EPG-Handling.
+
+The server part acts as a Receiver-Device and works transparently in the
+background within your running VDR. It can serve multiple clients and it can
+distribute multiple input streams (i.e. from multiple DVB-cards) to multiple
+clients using the native VTP protocol (for VDR-clients), or using the HTTP
+protocol supporting clients such as XINE, MPlayer and so on. With XMMS or
+WinAMP, you can also listen to radio channels over a HTTP connection.
+
+WWW: http://streamdev.vdr-developer.org/
diff --git a/multimedia/vdr-plugin-streamdev/pkg-plist b/multimedia/vdr-plugin-streamdev/pkg-plist
new file mode 100644
index 000000000000..8b987bfb59c1
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/pkg-plist
@@ -0,0 +1,23 @@
+lib/vdr/libvdr-streamdev-client.so.1.7.17
+lib/vdr/libvdr-streamdev-server.so.1.7.17
+@unexec if cmp -s %D/etc/vdr/plugins/streamdev-server/externremux.sh.sample %D/etc/vdr/plugins/streamdev-server/externremux.sh; then rm -f %D/etc/vdr/plugins/streamdev-server/externremux.sh; fi
+etc/vdr/plugins/streamdev-server/externremux.sh.sample
+@exec if [ ! -f %D/etc/vdr/plugins/streamdev-server/externremux.sh ] ; then cp -p %D/%F %B/externremux.sh; fi
+@unexec if cmp -s %D/etc/vdr/plugins/streamdev-server/streamdevhosts.conf.sample %D/etc/vdr/plugins/streamdev-server/streamdevhosts.conf; then rm -f %D/etc/vdr/plugins/streamdev-server/streamdevhosts.conf; fi
+etc/vdr/plugins/streamdev-server/streamdevhosts.conf.sample
+@exec if [ ! -f %D/etc/vdr/plugins/streamdev-server/streamdevhosts.conf ] ; then cp -p %D/%F %B/streamdevhosts.conf; fi
+@dirrmtry etc/vdr/plugins/streamdev-server
+%%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-streamdev-client.mo
+%%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-streamdev-server.mo
+%%NLS%%share/locale/fi_FI/LC_MESSAGES/vdr-streamdev-client.mo
+%%NLS%%share/locale/fi_FI/LC_MESSAGES/vdr-streamdev-server.mo
+%%NLS%%share/locale/fr_FR/LC_MESSAGES/vdr-streamdev-client.mo
+%%NLS%%share/locale/fr_FR/LC_MESSAGES/vdr-streamdev-server.mo
+%%NLS%%share/locale/it_IT/LC_MESSAGES/vdr-streamdev-client.mo
+%%NLS%%share/locale/it_IT/LC_MESSAGES/vdr-streamdev-server.mo
+%%NLS%%share/locale/lt_LT/LC_MESSAGES/vdr-streamdev-client.mo
+%%NLS%%share/locale/lt_LT/LC_MESSAGES/vdr-streamdev-server.mo
+%%NLS%%share/locale/ru_RU/LC_MESSAGES/vdr-streamdev-client.mo
+%%NLS%%share/locale/ru_RU/LC_MESSAGES/vdr-streamdev-server.mo
+%%NLS%%share/locale/sk_SK/LC_MESSAGES/vdr-streamdev-client.mo
+%%NLS%%share/locale/sk_SK/LC_MESSAGES/vdr-streamdev-server.mo