aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornox <nox@FreeBSD.org>2011-06-26 03:02:08 +0800
committernox <nox@FreeBSD.org>2011-06-26 03:02:08 +0800
commit403751ec8426d32839f8248a68a4f3a4ed40dc25 (patch)
tree9090f128be2f55def72c055badd45a48a36dc4b2
parent7592245272f44fa4e40cadebad98c5cd8d13a4ca (diff)
downloadfreebsd-ports-gnome-403751ec8426d32839f8248a68a4f3a4ed40dc25.tar.gz
freebsd-ports-gnome-403751ec8426d32839f8248a68a4f3a4ed40dc25.tar.zst
freebsd-ports-gnome-403751ec8426d32839f8248a68a4f3a4ed40dc25.zip
- Update multimedia/vdr to 1.7.19 (with parts of the update reverted
to avoid a known bug.) - Fix build with clang for vdr and plugins, and also fix a few bugs it uncovered. - Bump PORTREVISION for all plugins.
-rw-r--r--multimedia/vdr-plugin-control/Makefile2
-rw-r--r--multimedia/vdr-plugin-control/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-epgsearch/Makefile2
-rw-r--r--multimedia/vdr-plugin-epgsearch/pkg-plist8
-rw-r--r--multimedia/vdr-plugin-femon/Makefile1
-rw-r--r--multimedia/vdr-plugin-femon/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-infosatepg/Makefile2
-rw-r--r--multimedia/vdr-plugin-infosatepg/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-iptv/Makefile2
-rw-r--r--multimedia/vdr-plugin-iptv/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-markad/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-osdpip/files/patch-osd.c11
-rw-r--r--multimedia/vdr-plugin-osdpip/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-osdteletext/Makefile2
-rw-r--r--multimedia/vdr-plugin-osdteletext/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-reelchannelscan/Makefile2
-rw-r--r--multimedia/vdr-plugin-reelchannelscan/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-remote/Makefile2
-rw-r--r--multimedia/vdr-plugin-remote/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-skinenigmang/Makefile2
-rw-r--r--multimedia/vdr-plugin-skinenigmang/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-softdevice/pkg-plist6
-rw-r--r--multimedia/vdr-plugin-streamdev/Makefile2
-rw-r--r--multimedia/vdr-plugin-streamdev/files/patch-server-connectionVTP.c28
-rw-r--r--multimedia/vdr-plugin-streamdev/pkg-plist4
-rw-r--r--multimedia/vdr-plugin-ttxtsubs/Makefile2
-rw-r--r--multimedia/vdr-plugin-ttxtsubs/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-upnp/files/patch-clang207
-rw-r--r--multimedia/vdr-plugin-upnp/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-vnsiserver/Makefile2
-rw-r--r--multimedia/vdr-plugin-vnsiserver/files/patch-cmdcontrol.c11
-rw-r--r--multimedia/vdr-plugin-vnsiserver/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-wirbelscan/Makefile2
-rw-r--r--multimedia/vdr-plugin-wirbelscan/files/patch-scanner.c11
-rw-r--r--multimedia/vdr-plugin-wirbelscan/pkg-plist2
-rw-r--r--multimedia/vdr-plugin-xineliboutput/Makefile3
-rw-r--r--multimedia/vdr-plugin-xineliboutput/pkg-plist2
-rw-r--r--multimedia/vdr-plugins/Makefile3
-rw-r--r--multimedia/vdr/Makefile16
-rw-r--r--multimedia/vdr/Makefile.plugins8
-rw-r--r--multimedia/vdr/distinfo4
-rw-r--r--multimedia/vdr/files/patch-clang11
-rw-r--r--multimedia/vdr/files/patch-receiver.c15
-rw-r--r--multimedia/vdr/files/vdr-1.7.15-ttxtsubs.patch-123
-rw-r--r--multimedia/vdr/files/vdr-1.7.18-1.7.19-tspacketbug.diff356
-rw-r--r--multimedia/vdr/files/vdr-1.7.19-ttxtsubs.patch-321
-rw-r--r--multimedia/vdr/pkg-plist18
-rw-r--r--www/vdr-plugin-live/Makefile3
-rw-r--r--www/vdr-plugin-live/pkg-plist2
49 files changed, 745 insertions, 79 deletions
diff --git a/multimedia/vdr-plugin-control/Makefile b/multimedia/vdr-plugin-control/Makefile
index 9098bb22d478..9d7d89b44c42 100644
--- a/multimedia/vdr-plugin-control/Makefile
+++ b/multimedia/vdr-plugin-control/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-control
PORTVERSION= 0.0.2a45
-PORTREVISION= 8
+PORTREVISION= 9
CATEGORIES= multimedia
MASTER_SITES= http://ricomp.de/vdr/
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION:S/a45/a/}${DISTVERSIONSUFFIX}
diff --git a/multimedia/vdr-plugin-control/pkg-plist b/multimedia/vdr-plugin-control/pkg-plist
index 0967063b99d8..8134895fff80 100644
--- a/multimedia/vdr-plugin-control/pkg-plist
+++ b/multimedia/vdr-plugin-control/pkg-plist
@@ -1 +1 @@
-lib/vdr/libvdr-control.so.1.7.18
+lib/vdr/libvdr-control.so.1.7.19
diff --git a/multimedia/vdr-plugin-epgsearch/Makefile b/multimedia/vdr-plugin-epgsearch/Makefile
index 726a882cdcce..e33a301d5fb9 100644
--- a/multimedia/vdr-plugin-epgsearch/Makefile
+++ b/multimedia/vdr-plugin-epgsearch/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-epgsearch
PORTVERSION= 0.9.25b20s20110221
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= multimedia
MASTER_SITES= http://winni.vdr-developer.org/epgsearch/downloads/beta/:beta \
LOCAL/nox/:snapshot
diff --git a/multimedia/vdr-plugin-epgsearch/pkg-plist b/multimedia/vdr-plugin-epgsearch/pkg-plist
index a7393e8bbfb4..52012e28429d 100644
--- a/multimedia/vdr-plugin-epgsearch/pkg-plist
+++ b/multimedia/vdr-plugin-epgsearch/pkg-plist
@@ -1,7 +1,7 @@
-lib/vdr/libvdr-epgsearch.so.1.7.18
-lib/vdr/libvdr-epgsearchonly.so.1.7.18
-lib/vdr/libvdr-conflictcheckonly.so.1.7.18
-lib/vdr/libvdr-quickepgsearch.so.1.7.18
+lib/vdr/libvdr-epgsearch.so.1.7.19
+lib/vdr/libvdr-epgsearchonly.so.1.7.19
+lib/vdr/libvdr-conflictcheckonly.so.1.7.19
+lib/vdr/libvdr-quickepgsearch.so.1.7.19
%%NLS%%share/locale/ca_ES/LC_MESSAGES/vdr-epgsearch.mo
%%NLS%%share/locale/cs_CZ/LC_MESSAGES/vdr-epgsearch.mo
%%NLS%%share/locale/da_DK/LC_MESSAGES/vdr-epgsearch.mo
diff --git a/multimedia/vdr-plugin-femon/Makefile b/multimedia/vdr-plugin-femon/Makefile
index 74eaab1bd86a..bcb1ff22ee62 100644
--- a/multimedia/vdr-plugin-femon/Makefile
+++ b/multimedia/vdr-plugin-femon/Makefile
@@ -7,6 +7,7 @@
PORTNAME= vdr-plugin-femon
PORTVERSION= 1.7.10
+PORTREVISION= 1
CATEGORIES= multimedia
MASTER_SITES= http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
diff --git a/multimedia/vdr-plugin-femon/pkg-plist b/multimedia/vdr-plugin-femon/pkg-plist
index 4e5653a2d9c6..c1eea779e6ed 100644
--- a/multimedia/vdr-plugin-femon/pkg-plist
+++ b/multimedia/vdr-plugin-femon/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-femon.so.1.7.18
+lib/vdr/libvdr-femon.so.1.7.19
%%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-femon.mo
%%NLS%%share/locale/es_ES/LC_MESSAGES/vdr-femon.mo
%%NLS%%share/locale/et_EE/LC_MESSAGES/vdr-femon.mo
diff --git a/multimedia/vdr-plugin-infosatepg/Makefile b/multimedia/vdr-plugin-infosatepg/Makefile
index ace434f3584c..5339651fb959 100644
--- a/multimedia/vdr-plugin-infosatepg/Makefile
+++ b/multimedia/vdr-plugin-infosatepg/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-infosatepg
PORTVERSION= 0.0.11
-PORTREVISION= 9
+PORTREVISION= 10
CATEGORIES= multimedia
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/342/
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
diff --git a/multimedia/vdr-plugin-infosatepg/pkg-plist b/multimedia/vdr-plugin-infosatepg/pkg-plist
index d406e213ce12..87c682b867bb 100644
--- a/multimedia/vdr-plugin-infosatepg/pkg-plist
+++ b/multimedia/vdr-plugin-infosatepg/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-infosatepg.so.1.7.18
+lib/vdr/libvdr-infosatepg.so.1.7.19
@exec /usr/bin/install -o %%VDR_USER%% -g %%VDR_GROUP%% -d /var/cache/vdr/infosatepg
%%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-infosatepg.mo
%%NLS%%share/locale/it_IT/LC_MESSAGES/vdr-infosatepg.mo
diff --git a/multimedia/vdr-plugin-iptv/Makefile b/multimedia/vdr-plugin-iptv/Makefile
index ede17f5da3f8..18a9aab3d1ac 100644
--- a/multimedia/vdr-plugin-iptv/Makefile
+++ b/multimedia/vdr-plugin-iptv/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-iptv
PORTVERSION= 0.4.2
-PORTREVISION= 8
+PORTREVISION= 9
CATEGORIES= multimedia
MASTER_SITES= http://www.saunalahti.fi/~rahrenbe/vdr/iptv/files/
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
diff --git a/multimedia/vdr-plugin-iptv/pkg-plist b/multimedia/vdr-plugin-iptv/pkg-plist
index b0c587a9701c..550b800bd4fa 100644
--- a/multimedia/vdr-plugin-iptv/pkg-plist
+++ b/multimedia/vdr-plugin-iptv/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-iptv.so.1.7.18
+lib/vdr/libvdr-iptv.so.1.7.19
@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
diff --git a/multimedia/vdr-plugin-markad/pkg-plist b/multimedia/vdr-plugin-markad/pkg-plist
index e32a9621a9c5..d6c9024be753 100644
--- a/multimedia/vdr-plugin-markad/pkg-plist
+++ b/multimedia/vdr-plugin-markad/pkg-plist
@@ -1,5 +1,5 @@
bin/markad
-lib/vdr/libvdr-markad.so.1.7.18
+lib/vdr/libvdr-markad.so.1.7.19
%%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-markad.mo
%%NLS%%share/locale/es_ES/LC_MESSAGES/vdr-markad.mo
%%NLS%%share/locale/fi_FI/LC_MESSAGES/vdr-markad.mo
diff --git a/multimedia/vdr-plugin-osdpip/files/patch-osd.c b/multimedia/vdr-plugin-osdpip/files/patch-osd.c
new file mode 100644
index 000000000000..e06997503fa5
--- /dev/null
+++ b/multimedia/vdr-plugin-osdpip/files/patch-osd.c
@@ -0,0 +1,11 @@
+--- osd.c.orig
++++ osd.c
+@@ -788,7 +788,7 @@ eOSState cOsdPipObject::ProcessKey(eKeys
+ if (cControl::Control())
+ {
+ cControl::Control()->GetIndex(pos, end);
+- if (pPos == "")
++ if (*pPos == '\0')
+ {
+ pPos = IndexToHMSF(pos);
+ }
diff --git a/multimedia/vdr-plugin-osdpip/pkg-plist b/multimedia/vdr-plugin-osdpip/pkg-plist
index b0fb8007de5a..bbedcfe171e9 100644
--- a/multimedia/vdr-plugin-osdpip/pkg-plist
+++ b/multimedia/vdr-plugin-osdpip/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-osdpip.so.1.7.18
+lib/vdr/libvdr-osdpip.so.1.7.19
%%NLS%%share/locale/ca_ES/LC_MESSAGES/vdr-osdpip.mo
%%NLS%%share/locale/cs_CZ/LC_MESSAGES/vdr-osdpip.mo
%%NLS%%share/locale/da_DK/LC_MESSAGES/vdr-osdpip.mo
diff --git a/multimedia/vdr-plugin-osdteletext/Makefile b/multimedia/vdr-plugin-osdteletext/Makefile
index 7a9bbb32a932..0e8af81befc3 100644
--- a/multimedia/vdr-plugin-osdteletext/Makefile
+++ b/multimedia/vdr-plugin-osdteletext/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-osdteletext
PORTVERSION= 0.9.0
-PORTREVISION= 7
+PORTREVISION= 8
CATEGORIES= multimedia
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/416/
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
diff --git a/multimedia/vdr-plugin-osdteletext/pkg-plist b/multimedia/vdr-plugin-osdteletext/pkg-plist
index 0627c3a281da..46e4b5ce8abf 100644
--- a/multimedia/vdr-plugin-osdteletext/pkg-plist
+++ b/multimedia/vdr-plugin-osdteletext/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-osdteletext.so.1.7.18
+lib/vdr/libvdr-osdteletext.so.1.7.19
@exec /usr/bin/install -o %%VDR_USER%% -g %%VDR_GROUP%% -d /var/cache/vdr/vtx
%%NLS%%share/locale/ca_ES/LC_MESSAGES/vdr-osdteletext.mo
%%NLS%%share/locale/de_DE/LC_MESSAGES/vdr-osdteletext.mo
diff --git a/multimedia/vdr-plugin-reelchannelscan/Makefile b/multimedia/vdr-plugin-reelchannelscan/Makefile
index 03f85323303c..c4065db91975 100644
--- a/multimedia/vdr-plugin-reelchannelscan/Makefile
+++ b/multimedia/vdr-plugin-reelchannelscan/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-reelchannelscan
PORTVERSION= 0.6.1b1.7.15
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= multimedia
MASTER_SITES= LOCAL/nox \
http://ppa.launchpad.net/yavdr/stable-vdr/ubuntu/pool/main/v/vdr-plugin-reelchannelscan/
diff --git a/multimedia/vdr-plugin-reelchannelscan/pkg-plist b/multimedia/vdr-plugin-reelchannelscan/pkg-plist
index 0b4915996582..106a833cbb47 100644
--- a/multimedia/vdr-plugin-reelchannelscan/pkg-plist
+++ b/multimedia/vdr-plugin-reelchannelscan/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-reelchannelscan.so.1.7.18
+lib/vdr/libvdr-reelchannelscan.so.1.7.19
etc/vdr/plugins/transponders/S0.8W.tpl
etc/vdr/plugins/transponders/S10.0E.tpl
etc/vdr/plugins/transponders/S100.5E.tpl
diff --git a/multimedia/vdr-plugin-remote/Makefile b/multimedia/vdr-plugin-remote/Makefile
index 2d9054531513..de0d9e8276b4 100644
--- a/multimedia/vdr-plugin-remote/Makefile
+++ b/multimedia/vdr-plugin-remote/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-remote
PORTVERSION= 0.4.0
-PORTREVISION= 8
+PORTREVISION= 9
CATEGORIES= multimedia
MASTER_SITES= http://www.escape-edv.de/endriss/vdr/
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
diff --git a/multimedia/vdr-plugin-remote/pkg-plist b/multimedia/vdr-plugin-remote/pkg-plist
index 04567b582ba1..3390b4e4cb43 100644
--- a/multimedia/vdr-plugin-remote/pkg-plist
+++ b/multimedia/vdr-plugin-remote/pkg-plist
@@ -1 +1 @@
-lib/vdr/libvdr-remote.so.1.7.18
+lib/vdr/libvdr-remote.so.1.7.19
diff --git a/multimedia/vdr-plugin-skinenigmang/Makefile b/multimedia/vdr-plugin-skinenigmang/Makefile
index f53851c62010..fddb7f81a0d4 100644
--- a/multimedia/vdr-plugin-skinenigmang/Makefile
+++ b/multimedia/vdr-plugin-skinenigmang/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-skinenigmang
PORTVERSION= 0.1.1
-PORTREVISION= 8
+PORTREVISION= 9
CATEGORIES= multimedia
MASTER_SITES= http://andreas.vdr-developer.org/enigmang/download/
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
diff --git a/multimedia/vdr-plugin-skinenigmang/pkg-plist b/multimedia/vdr-plugin-skinenigmang/pkg-plist
index 9a465de9f925..70becd701a26 100644
--- a/multimedia/vdr-plugin-skinenigmang/pkg-plist
+++ b/multimedia/vdr-plugin-skinenigmang/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-skinenigmang.so.1.7.18
+lib/vdr/libvdr-skinenigmang.so.1.7.19
etc/vdr/plugins/skinenigmang/HISTORY
etc/vdr/plugins/skinenigmang/README
etc/vdr/plugins/skinenigmang/flags/deu.xpm
diff --git a/multimedia/vdr-plugin-softdevice/pkg-plist b/multimedia/vdr-plugin-softdevice/pkg-plist
index 47bbadc55811..a54ac12b2947 100644
--- a/multimedia/vdr-plugin-softdevice/pkg-plist
+++ b/multimedia/vdr-plugin-softdevice/pkg-plist
@@ -1,7 +1,7 @@
bin/ShmClient
-lib/vdr/libvdr-softdevice.so.1.7.18
-lib/vdr/libsoftdevice-xv.so.1.7.18
-lib/vdr/libsoftdevice-shm.so.1.7.18
+lib/vdr/libvdr-softdevice.so.1.7.19
+lib/vdr/libsoftdevice-xv.so.1.7.19
+lib/vdr/libsoftdevice-shm.so.1.7.19
%%NLS%%share/locale/ca_ES/LC_MESSAGES/vdr-softdevice.mo
%%NLS%%share/locale/cs_CZ/LC_MESSAGES/vdr-softdevice.mo
%%NLS%%share/locale/da_DK/LC_MESSAGES/vdr-softdevice.mo
diff --git a/multimedia/vdr-plugin-streamdev/Makefile b/multimedia/vdr-plugin-streamdev/Makefile
index ae9eb04f4fd3..1cc4000e3445 100644
--- a/multimedia/vdr-plugin-streamdev/Makefile
+++ b/multimedia/vdr-plugin-streamdev/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-streamdev
PORTVERSION= 0.5.1
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= multimedia
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/497/:release \
LOCAL:snapshot
diff --git a/multimedia/vdr-plugin-streamdev/files/patch-server-connectionVTP.c b/multimedia/vdr-plugin-streamdev/files/patch-server-connectionVTP.c
new file mode 100644
index 000000000000..393216aa4e1d
--- /dev/null
+++ b/multimedia/vdr-plugin-streamdev/files/patch-server-connectionVTP.c
@@ -0,0 +1,28 @@
+--- server/connectionVTP.c.orig
++++ server/connectionVTP.c
+@@ -245,12 +245,14 @@ bool cLSTEHandler::Next(bool &Last)
+ if (m_Event != NULL) {
+ m_State = Title;
+ #ifdef __FreeBSD__
+- return m_Client->Respond(-215, "E %u %d %d %X", m_Event->EventID(),
++ return m_Client->Respond(-215, "E %u " PRId64 " %d %X", m_Event->EventID(),
++ (int64_t)m_Event->StartTime(), m_Event->Duration(),
++ m_Event->TableID());
+ #else
+ return m_Client->Respond(-215, "E %u %ld %d %X", m_Event->EventID(),
+-#endif
+ m_Event->StartTime(), m_Event->Duration(),
+ m_Event->TableID());
++#endif
+ } else {
+ m_State = EndChannel;
+ return Next(Last);
+@@ -292,7 +294,7 @@ bool cLSTEHandler::Next(bool &Last)
+ #endif /* PARENTALRATING */
+ if (m_Event->Vps())
+ #ifdef __FreeBSD__
+- return m_Client->Respond(-215, "V %d", m_Event->Vps());
++ return m_Client->Respond(-215, "V " PRId64, (int64_t)m_Event->Vps());
+ #else
+ return m_Client->Respond(-215, "V %ld", m_Event->Vps());
+ #endif
diff --git a/multimedia/vdr-plugin-streamdev/pkg-plist b/multimedia/vdr-plugin-streamdev/pkg-plist
index 28e5d12ec26d..2eb750f792b1 100644
--- a/multimedia/vdr-plugin-streamdev/pkg-plist
+++ b/multimedia/vdr-plugin-streamdev/pkg-plist
@@ -1,5 +1,5 @@
-lib/vdr/libvdr-streamdev-client.so.1.7.18
-lib/vdr/libvdr-streamdev-server.so.1.7.18
+lib/vdr/libvdr-streamdev-client.so.1.7.19
+lib/vdr/libvdr-streamdev-server.so.1.7.19
@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
diff --git a/multimedia/vdr-plugin-ttxtsubs/Makefile b/multimedia/vdr-plugin-ttxtsubs/Makefile
index caebb82b9710..1999f13bfdb3 100644
--- a/multimedia/vdr-plugin-ttxtsubs/Makefile
+++ b/multimedia/vdr-plugin-ttxtsubs/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-ttxtsubs
PORTVERSION= 0.2.2
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= multimedia
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/309/
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
diff --git a/multimedia/vdr-plugin-ttxtsubs/pkg-plist b/multimedia/vdr-plugin-ttxtsubs/pkg-plist
index c24ff0cdeaca..bc2ec4d2473a 100644
--- a/multimedia/vdr-plugin-ttxtsubs/pkg-plist
+++ b/multimedia/vdr-plugin-ttxtsubs/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-ttxtsubs.so.1.7.18
+lib/vdr/libvdr-ttxtsubs.so.1.7.19
%%NLS%%share/locale/fr_FR/LC_MESSAGES/vdr-ttxtsubs.mo
%%NLS%%share/locale/ru_RU/LC_MESSAGES/vdr-ttxtsubs.mo
%%NLS%%share/locale/uk_UA/LC_MESSAGES/vdr-ttxtsubs.mo
diff --git a/multimedia/vdr-plugin-upnp/files/patch-clang b/multimedia/vdr-plugin-upnp/files/patch-clang
new file mode 100644
index 000000000000..27a47a1d1684
--- /dev/null
+++ b/multimedia/vdr-plugin-upnp/files/patch-clang
@@ -0,0 +1,207 @@
+--- a/misc/util.cpp
++++ b/misc/util.cpp
+@@ -331,105 +331,105 @@ const char* escapeXMLCharacters(const ch
+ for(unsigned int i = 0; i < strlen(Data); i++){
+ Char = Data[i];
+ switch(Char){
+- case L'€': NewData += "&euro;"; break;
+- case L'"': NewData += "&quot;"; break;
+- case L'&': NewData += "&amp;"; break;
+- case L'<': NewData += "&lt;"; break;
+- case L'>': NewData += "&gt;"; break;
+- case L'¡': NewData += "&iexcl;"; break;
+- case L'¢': NewData += "&cent;"; break;
+- case L'£': NewData += "&pound;"; break;
+- case L'¤': NewData += "&curren;"; break;
+- case L'¥': NewData += "&yen;"; break;
+- case L'¦': NewData += "&brvbar;"; break;
+- case L'§': NewData += "&sect;"; break;
+- case L'¨': NewData += "&uml;"; break;
+- case L'©': NewData += "&copy;"; break;
+- case L'ª': NewData += "&ordf;"; break;
+- case L'¬': NewData += "&not;"; break;
+- case L'­': NewData += "&shy;"; break;
+- case L'®': NewData += "&reg;"; break;
+- case L'¯': NewData += "&macr;"; break;
+- case L'°': NewData += "&deg;"; break;
+- case L'±': NewData += "&plusmn;"; break;
+- case L'²': NewData += "&sup2;"; break;
+- case L'³': NewData += "&sup3;"; break;
+- case L'´': NewData += "&acute;"; break;
+- case L'µ': NewData += "&micro;"; break;
+- case L'¶': NewData += "&para;"; break;
+- case L'·': NewData += "&middot;"; break;
+- case L'¸': NewData += "&cedil;"; break;
+- case L'¹': NewData += "&sup1;"; break;
+- case L'º': NewData += "&ordm;"; break;
+- case L'»': NewData += "&raquo;"; break;
+- case L'«': NewData += "&laquo;"; break;
+- case L'¼': NewData += "&frac14;"; break;
+- case L'½': NewData += "&frac12;"; break;
+- case L'¾': NewData += "&frac34;"; break;
+- case L'¿': NewData += "&iquest;"; break;
+- case L'À': NewData += "&Agrave;"; break;
+- case L'Á': NewData += "&Aacute;"; break;
+- case L'Â': NewData += "&Acirc;"; break;
+- case L'Ã': NewData += "&Atilde;"; break;
+- case L'Ä': NewData += "&Auml;"; break;
+- case L'Å': NewData += "&Aring;"; break;
+- case L'Æ': NewData += "&AElig;"; break;
+- case L'Ç': NewData += "&Ccedil;"; break;
+- case L'È': NewData += "&Egrave;"; break;
+- case L'É': NewData += "&Eacute;"; break;
+- case L'Ê': NewData += "&Ecirc;"; break;
+- case L'Ë': NewData += "&Euml;"; break;
+- case L'Ì': NewData += "&Igrave;"; break;
+- case L'Í': NewData += "&Iacute;"; break;
+- case L'Î': NewData += "&Icirc;"; break;
+- case L'Ï': NewData += "&Iuml;"; break;
+- case L'Ð': NewData += "&ETH;"; break;
+- case L'Ñ': NewData += "&Ntilde;"; break;
+- case L'Ò': NewData += "&Ograve;"; break;
+- case L'Ó': NewData += "&Oacute;"; break;
+- case L'Ô': NewData += "&Ocirc;"; break;
+- case L'Õ': NewData += "&Otilde;"; break;
+- case L'Ö': NewData += "&Ouml;"; break;
+- case L'×': NewData += "&times;"; break;
+- case L'Ø': NewData += "&Oslash;"; break;
+- case L'Ù': NewData += "&Ugrave;"; break;
+- case L'Ú': NewData += "&Uacute;"; break;
+- case L'Û': NewData += "&Ucirc;"; break;
+- case L'Ü': NewData += "&Uuml;"; break;
+- case L'Ý': NewData += "&Yacute;"; break;
+- case L'Þ': NewData += "&THORN;"; break;
+- case L'ß': NewData += "&szlig;"; break;
+- case L'à': NewData += "&agrave;"; break;
+- case L'á': NewData += "&aacute;"; break;
+- case L'â': NewData += "&acirc;"; break;
+- case L'ã': NewData += "&atilde;"; break;
+- case L'ä': NewData += "&auml;"; break;
+- case L'å': NewData += "&aring;"; break;
+- case L'æ': NewData += "&aelig;"; break;
+- case L'ç': NewData += "&ccedil;"; break;
+- case L'è': NewData += "&egrave;"; break;
+- case L'é': NewData += "&eacute;"; break;
+- case L'ê': NewData += "&ecirc;"; break;
+- case L'ë': NewData += "&euml;"; break;
+- case L'ì': NewData += "&igrave;"; break;
+- case L'í': NewData += "&iacute;"; break;
+- case L'î': NewData += "&icirc;"; break;
+- case L'ï': NewData += "&iuml;"; break;
+- case L'ð': NewData += "&eth;"; break;
+- case L'ñ': NewData += "&ntilde;"; break;
+- case L'ò': NewData += "&ograve;"; break;
+- case L'ó': NewData += "&oacute;"; break;
+- case L'ô': NewData += "&ocirc;"; break;
+- case L'õ': NewData += "&otilde;"; break;
+- case L'ö': NewData += "&ouml;"; break;
+- case L'÷': NewData += "&divide;"; break;
+- case L'ø': NewData += "&oslash;"; break;
+- case L'ù': NewData += "&ugrave;"; break;
+- case L'ú': NewData += "&uacute;"; break;
+- case L'û': NewData += "&ucirc;"; break;
+- case L'ü': NewData += "&uuml;"; break;
+- case L'ý': NewData += "&yacute;"; break;
+- case L'þ': NewData += "&thorn;"; break;
++ case /* L'€' */ 0x20ac: NewData += "&euro;"; break;
++ case /* L'"' */ 0x22: NewData += "&quot;"; break;
++ case /* L'&' */ 0x26: NewData += "&amp;"; break;
++ case /* L'<' */ 0x3c: NewData += "&lt;"; break;
++ case /* L'>' */ 0x3e: NewData += "&gt;"; break;
++ case /* L'¡' */ 0xa1: NewData += "&iexcl;"; break;
++ case /* L'¢' */ 0xa2: NewData += "&cent;"; break;
++ case /* L'£' */ 0xa3: NewData += "&pound;"; break;
++ case /* L'¤' */ 0xa4: NewData += "&curren;"; break;
++ case /* L'¥' */ 0xa5: NewData += "&yen;"; break;
++ case /* L'¦' */ 0xa6: NewData += "&brvbar;"; break;
++ case /* L'§' */ 0xa7: NewData += "&sect;"; break;
++ case /* L'¨' */ 0xa8: NewData += "&uml;"; break;
++ case /* L'©' */ 0xa9: NewData += "&copy;"; break;
++ case /* L'ª' */ 0xaa: NewData += "&ordf;"; break;
++ case /* L'¬' */ 0xac: NewData += "&not;"; break;
++ case /* L'­' */ 0xad: NewData += "&shy;"; break;
++ case /* L'®' */ 0xae: NewData += "&reg;"; break;
++ case /* L'¯' */ 0xaf: NewData += "&macr;"; break;
++ case /* L'°' */ 0xb0: NewData += "&deg;"; break;
++ case /* L'±' */ 0xb1: NewData += "&plusmn;"; break;
++ case /* L'²' */ 0xb2: NewData += "&sup2;"; break;
++ case /* L'³' */ 0xb3: NewData += "&sup3;"; break;
++ case /* L'´' */ 0xb4: NewData += "&acute;"; break;
++ case /* L'µ' */ 0xb5: NewData += "&micro;"; break;
++ case /* L'¶' */ 0xb6: NewData += "&para;"; break;
++ case /* L'·' */ 0xb7: NewData += "&middot;"; break;
++ case /* L'¸' */ 0xb8: NewData += "&cedil;"; break;
++ case /* L'¹' */ 0xb9: NewData += "&sup1;"; break;
++ case /* L'º' */ 0xba: NewData += "&ordm;"; break;
++ case /* L'»' */ 0xbb: NewData += "&raquo;"; break;
++ case /* L'«' */ 0xab: NewData += "&laquo;"; break;
++ case /* L'¼' */ 0xbc: NewData += "&frac14;"; break;
++ case /* L'½' */ 0xbd: NewData += "&frac12;"; break;
++ case /* L'¾' */ 0xbe: NewData += "&frac34;"; break;
++ case /* L'¿' */ 0xbf: NewData += "&iquest;"; break;
++ case /* L'À' */ 0xc0: NewData += "&Agrave;"; break;
++ case /* L'Á' */ 0xc1: NewData += "&Aacute;"; break;
++ case /* L'Â' */ 0xc2: NewData += "&Acirc;"; break;
++ case /* L'Ã' */ 0xc3: NewData += "&Atilde;"; break;
++ case /* L'Ä' */ 0xc4: NewData += "&Auml;"; break;
++ case /* L'Å' */ 0xc5: NewData += "&Aring;"; break;
++ case /* L'Æ' */ 0xc6: NewData += "&AElig;"; break;
++ case /* L'Ç' */ 0xc7: NewData += "&Ccedil;"; break;
++ case /* L'È' */ 0xc8: NewData += "&Egrave;"; break;
++ case /* L'É' */ 0xc9: NewData += "&Eacute;"; break;
++ case /* L'Ê' */ 0xca: NewData += "&Ecirc;"; break;
++ case /* L'Ë' */ 0xcb: NewData += "&Euml;"; break;
++ case /* L'Ì' */ 0xcc: NewData += "&Igrave;"; break;
++ case /* L'Í' */ 0xcd: NewData += "&Iacute;"; break;
++ case /* L'Î' */ 0xce: NewData += "&Icirc;"; break;
++ case /* L'Ï' */ 0xcf: NewData += "&Iuml;"; break;
++ case /* L'Ð' */ 0xd0: NewData += "&ETH;"; break;
++ case /* L'Ñ' */ 0xd1: NewData += "&Ntilde;"; break;
++ case /* L'Ò' */ 0xd2: NewData += "&Ograve;"; break;
++ case /* L'Ó' */ 0xd3: NewData += "&Oacute;"; break;
++ case /* L'Ô' */ 0xd4: NewData += "&Ocirc;"; break;
++ case /* L'Õ' */ 0xd5: NewData += "&Otilde;"; break;
++ case /* L'Ö' */ 0xd6: NewData += "&Ouml;"; break;
++ case /* L'×' */ 0xd7: NewData += "&times;"; break;
++ case /* L'Ø' */ 0xd8: NewData += "&Oslash;"; break;
++ case /* L'Ù' */ 0xd9: NewData += "&Ugrave;"; break;
++ case /* L'Ú' */ 0xda: NewData += "&Uacute;"; break;
++ case /* L'Û' */ 0xdb: NewData += "&Ucirc;"; break;
++ case /* L'Ü' */ 0xdc: NewData += "&Uuml;"; break;
++ case /* L'Ý' */ 0xdd: NewData += "&Yacute;"; break;
++ case /* L'Þ' */ 0xde: NewData += "&THORN;"; break;
++ case /* L'ß' */ 0xdf: NewData += "&szlig;"; break;
++ case /* L'à' */ 0xe0: NewData += "&agrave;"; break;
++ case /* L'á' */ 0xe1: NewData += "&aacute;"; break;
++ case /* L'â' */ 0xe2: NewData += "&acirc;"; break;
++ case /* L'ã' */ 0xe3: NewData += "&atilde;"; break;
++ case /* L'ä' */ 0xe4: NewData += "&auml;"; break;
++ case /* L'å' */ 0xe5: NewData += "&aring;"; break;
++ case /* L'æ' */ 0xe6: NewData += "&aelig;"; break;
++ case /* L'ç' */ 0xe7: NewData += "&ccedil;"; break;
++ case /* L'è' */ 0xe8: NewData += "&egrave;"; break;
++ case /* L'é' */ 0xe9: NewData += "&eacute;"; break;
++ case /* L'ê' */ 0xea: NewData += "&ecirc;"; break;
++ case /* L'ë' */ 0xeb: NewData += "&euml;"; break;
++ case /* L'ì' */ 0xec: NewData += "&igrave;"; break;
++ case /* L'í' */ 0xed: NewData += "&iacute;"; break;
++ case /* L'î' */ 0xee: NewData += "&icirc;"; break;
++ case /* L'ï' */ 0xef: NewData += "&iuml;"; break;
++ case /* L'ð' */ 0xf0: NewData += "&eth;"; break;
++ case /* L'ñ' */ 0xf1: NewData += "&ntilde;"; break;
++ case /* L'ò' */ 0xf2: NewData += "&ograve;"; break;
++ case /* L'ó' */ 0xf3: NewData += "&oacute;"; break;
++ case /* L'ô' */ 0xf4: NewData += "&ocirc;"; break;
++ case /* L'õ' */ 0xf5: NewData += "&otilde;"; break;
++ case /* L'ö' */ 0xf6: NewData += "&ouml;"; break;
++ case /* L'÷' */ 0xf7: NewData += "&divide;"; break;
++ case /* L'ø' */ 0xf8: NewData += "&oslash;"; break;
++ case /* L'ù' */ 0xf9: NewData += "&ugrave;"; break;
++ case /* L'ú' */ 0xfa: NewData += "&uacute;"; break;
++ case /* L'û' */ 0xfb: NewData += "&ucirc;"; break;
++ case /* L'ü' */ 0xfc: NewData += "&uuml;"; break;
++ case /* L'ý' */ 0xfd: NewData += "&yacute;"; break;
++ case /* L'þ' */ 0xfe: NewData += "&thorn;"; break;
+ default: NewData += Data[i]; break;
+ }
+ }
diff --git a/multimedia/vdr-plugin-upnp/pkg-plist b/multimedia/vdr-plugin-upnp/pkg-plist
index 9e378db464a0..25a9439d5d34 100644
--- a/multimedia/vdr-plugin-upnp/pkg-plist
+++ b/multimedia/vdr-plugin-upnp/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-upnp.so.1.7.18
+lib/vdr/libvdr-upnp.so.1.7.19
etc/vdr/plugins/upnp/http/icons/upnpIconLrg.jpeg
etc/vdr/plugins/upnp/http/icons/upnpIconLrg.png
etc/vdr/plugins/upnp/http/icons/upnpIconSm.jpeg
diff --git a/multimedia/vdr-plugin-vnsiserver/Makefile b/multimedia/vdr-plugin-vnsiserver/Makefile
index 1ab359f66952..307af30a7d7b 100644
--- a/multimedia/vdr-plugin-vnsiserver/Makefile
+++ b/multimedia/vdr-plugin-vnsiserver/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-vnsiserver
PORTVERSION= 0.0.2s20100808.0952
-PORTREVISION= 8
+PORTREVISION= 9
CATEGORIES= multimedia
MASTER_SITES= http://ppa.launchpad.net/yavdr/testing-vdr/ubuntu/pool/main/v/vdr-plugin-vnsiserver/ \
LOCAL/nox/
diff --git a/multimedia/vdr-plugin-vnsiserver/files/patch-cmdcontrol.c b/multimedia/vdr-plugin-vnsiserver/files/patch-cmdcontrol.c
new file mode 100644
index 000000000000..11bd62546019
--- /dev/null
+++ b/multimedia/vdr-plugin-vnsiserver/files/patch-cmdcontrol.c
@@ -0,0 +1,11 @@
+--- a/cmdcontrol.c
++++ b/cmdcontrol.c
+@@ -1232,7 +1232,7 @@ bool cCmdControl::processRECORDINGS_Move
+ return true;
+ }
+ }
+- else if ((statret == 0) && (! (dstat.st_mode && S_IFDIR))) // Something exists but it's not a dir
++ else if ((statret == 0) && (! (dstat.st_mode & S_IFDIR))) // Something exists but it's not a dir
+ {
+ delete[] dateDirName;
+ delete[] titleDirName;
diff --git a/multimedia/vdr-plugin-vnsiserver/pkg-plist b/multimedia/vdr-plugin-vnsiserver/pkg-plist
index dafe2143dc41..ab01169af776 100644
--- a/multimedia/vdr-plugin-vnsiserver/pkg-plist
+++ b/multimedia/vdr-plugin-vnsiserver/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-vnsiserver.so.1.7.18
+lib/vdr/libvdr-vnsiserver.so.1.7.19
@unexec if cmp -s %D/etc/vdr/plugins/vnsiserver/allowed_hosts.conf.sample %D/etc/vdr/plugins/vnsiserver/allowed_hosts.conf; then rm -f %D/etc/vdr/plugins/vnsiserver/allowed_hosts.conf; fi
etc/vdr/plugins/vnsiserver/allowed_hosts.conf.sample
@exec if [ ! -f %D/etc/vdr/plugins/vnsiserver/allowed_hosts.conf ] ; then cp -p %D/%F %B/allowed_hosts.conf; fi
diff --git a/multimedia/vdr-plugin-wirbelscan/Makefile b/multimedia/vdr-plugin-wirbelscan/Makefile
index 55c2129341fe..c6ae676c5f1c 100644
--- a/multimedia/vdr-plugin-wirbelscan/Makefile
+++ b/multimedia/vdr-plugin-wirbelscan/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-wirbelscan
PORTVERSION= 0.0.7
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= multimedia
MASTER_SITES= http://wirbel.htpc-forum.de/wirbelscan/
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
diff --git a/multimedia/vdr-plugin-wirbelscan/files/patch-scanner.c b/multimedia/vdr-plugin-wirbelscan/files/patch-scanner.c
new file mode 100644
index 000000000000..fc4ce34c9b74
--- /dev/null
+++ b/multimedia/vdr-plugin-wirbelscan/files/patch-scanner.c
@@ -0,0 +1,11 @@
+--- a/scanner.c
++++ b/scanner.c
+@@ -633,7 +633,7 @@ void cScanner::Action(void) {
+ else
+ continue;
+ cCondWait::SleepMs(2000);
+- vbiSupport = vcap.capabilities & (V4L2_CAP_VBI_CAPTURE || V4L2_CAP_SLICED_VBI_CAPTURE);
++ vbiSupport = vcap.capabilities & (V4L2_CAP_VBI_CAPTURE | V4L2_CAP_SLICED_VBI_CAPTURE);
+ if (vbiSupport)
+ dlog(1, "device can capture vbi");
+ }
diff --git a/multimedia/vdr-plugin-wirbelscan/pkg-plist b/multimedia/vdr-plugin-wirbelscan/pkg-plist
index 66539983a8d4..eb1d1cc52f62 100644
--- a/multimedia/vdr-plugin-wirbelscan/pkg-plist
+++ b/multimedia/vdr-plugin-wirbelscan/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-wirbelscan.so.1.7.18
+lib/vdr/libvdr-wirbelscan.so.1.7.19
%%NLS%%share/locale/fr_FR/LC_MESSAGES/vdr-wirbelscan.mo
%%NLS%%share/locale/sl_SI/LC_MESSAGES/vdr-wirbelscan.mo
%%NLS%%share/locale/ru_RU/LC_MESSAGES/vdr-wirbelscan.mo
diff --git a/multimedia/vdr-plugin-xineliboutput/Makefile b/multimedia/vdr-plugin-xineliboutput/Makefile
index 9ba011a27856..47d60364067d 100644
--- a/multimedia/vdr-plugin-xineliboutput/Makefile
+++ b/multimedia/vdr-plugin-xineliboutput/Makefile
@@ -41,6 +41,9 @@ MAKE_ARGS+= CONFIGURE_OPTS="${CONFIGURE_OPTS}"
.include <bsd.port.pre.mk>
post-patch: post-patch-plugin
+# clang doesn't know -MG
+ ${TOUCH} -t 200001010000 ${WRKSRC}/nosignal_720x576.c \
+ ${WRKSRC}/black_720x576.c ${WRKSRC}/vdrlogo_720x576.c
post-install: post-install-pluginlocales
@${INSTALL} -o ${VDR_USER} -g ${VDR_GROUP} -d ${PREFIX}/etc/vdr/plugins/${PLUGIN}
diff --git a/multimedia/vdr-plugin-xineliboutput/pkg-plist b/multimedia/vdr-plugin-xineliboutput/pkg-plist
index 73dccaa85556..9efad9299631 100644
--- a/multimedia/vdr-plugin-xineliboutput/pkg-plist
+++ b/multimedia/vdr-plugin-xineliboutput/pkg-plist
@@ -4,7 +4,7 @@ lib/xine/plugins/1.29/xineplug_inp_xvdr.so
lib/xine/plugins/1.29/post/xineplug_post_autocrop.so
lib/xine/plugins/1.29/post/xineplug_post_swscale.so
lib/xine/plugins/1.29/post/xineplug_post_audiochannel.so
-lib/vdr/libvdr-xineliboutput.so.1.7.18
+lib/vdr/libvdr-xineliboutput.so.1.7.19
lib/vdr/libxineliboutput-sxfe.so.1.0.90-cvs
@unexec if cmp -s %D/etc/vdr/plugins/xineliboutput/allowed_hosts.conf.sample %D/etc/vdr/plugins/xineliboutput/allowed_hosts.conf; then rm -f %D/etc/vdr/plugins/xineliboutput/allowed_hosts.conf; fi
etc/vdr/plugins/xineliboutput/allowed_hosts.conf.sample
diff --git a/multimedia/vdr-plugins/Makefile b/multimedia/vdr-plugins/Makefile
index 34b9611141b8..3b272bef8875 100644
--- a/multimedia/vdr-plugins/Makefile
+++ b/multimedia/vdr-plugins/Makefile
@@ -6,8 +6,7 @@
#
PORTNAME= vdr-plugins
-PORTVERSION= 1.7.18
-PORTREVISION= 3
+PORTVERSION= 1.7.19
CATEGORIES= multimedia
MASTER_SITES= # none
DISTFILES= # none
diff --git a/multimedia/vdr/Makefile b/multimedia/vdr/Makefile
index 5e08686308b8..599a46ed7d28 100644
--- a/multimedia/vdr/Makefile
+++ b/multimedia/vdr/Makefile
@@ -6,8 +6,7 @@
#
PORTNAME= vdr
-PORTVERSION= 1.7.18
-PORTREVISION= 3
+PORTVERSION= 1.7.19
CATEGORIES= multimedia
MASTER_SITES= ftp://ftp.tvdr.de/vdr/Developer/
@@ -32,8 +31,10 @@ MAKE_JOBS_SAFE= yes
MAN1= vdr.1
MAN5= vdr.5
MANCOMPRESSED= yes
-MAKE_JOBS_SAFE= yes
CONFDIR= $(ETCDIR)
+USE_CSTD= gnu89
+MAKE_ARGS+= CC=${CC}
+MAKE_ARGS+= CXX=${CXX}
MAKE_ARGS+= DVBDIR=${LOCALBASE}/include
MAKE_ARGS+= VDR_USER=${VDR_USER}
MAKE_ARGS+= CONFDIR=$(CONFDIR)
@@ -72,9 +73,18 @@ ALL_TARGET= vdr plugins
.endif
post-patch:
+# avoid a bug found post-release by reverting parts of the 1.7.19 update
+# thread:
+# http://thread.gmane.org/gmane.linux.vdr/44724/focus=44729
+ @${PATCH} -d ${WRKSRC} --quiet -p1 -R <${FILESDIR}/vdr-1.7.18-1.7.19-tspacketbug.diff
+# clang doesn't know -MG:
+ @${REINPLACE_CMD} '/^MAKEDEP.*-MM/s/-MG[[:space:]]*$$/# -MG/' \
+ ${WRKSRC}/Makefile ${WRKSRC}/libsi/Makefile \
+ ${WRKSRC}/PLUGINS/src/*/Makefile
.if defined(WITH_TTXPATCH)
@${PATCH} -d ${WRKSRC} --quiet -p1 <${FILESDIR}/vdr-1.7.15-ttxtsubs.patch-1
@${PATCH} -d ${WRKSRC} --quiet -p1 <${FILESDIR}/vdr-1.7.15-ttxtsubs.patch-2
+ @${PATCH} -d ${WRKSRC} --quiet -p1 <${FILESDIR}/vdr-1.7.19-ttxtsubs.patch-3
.endif
@${SED} 's|^\(VIDEODIR[[:space:]]*\)[?]*\(=[[:space:]]*\).*|\1\2${VIDEODIR}|' \
${WRKSRC}/Make.config.template >${WRKSRC}/Make.config
diff --git a/multimedia/vdr/Makefile.plugins b/multimedia/vdr/Makefile.plugins
index d16bf05e33a8..50ce7bc76f6b 100644
--- a/multimedia/vdr/Makefile.plugins
+++ b/multimedia/vdr/Makefile.plugins
@@ -1,6 +1,6 @@
# this is to be included by vdr plugin ports
#
-# $FreeBSD: /tmp/pcvs/ports/multimedia/vdr/Makefile.plugins,v 1.1 2011-03-26 19:13:49 nox Exp $
+# $FreeBSD: /tmp/pcvs/ports/multimedia/vdr/Makefile.plugins,v 1.2 2011-06-25 19:02:04 nox Exp $
BUILD_DEPENDS+= ${LOCALBASE}/include/linux/dvb/frontend.h:${PORTSDIR}/multimedia/v4l_compat
@@ -13,6 +13,9 @@ USE_GMAKE= yes
USE_GETTEXT= yes
VDRDIR= ${LOCALBASE}/include/vdr
VDRINCDIR= ${LOCALBASE}/include
+USE_CSTD?= gnu89
+MAKE_ARGS+= CC=${CC}
+MAKE_ARGS+= CXX=${CXX}
MAKE_ARGS+= DVBDIR=${LOCALBASE}/include
MAKE_ARGS+= VDRDIR=${VDRDIR}
MAKE_ARGS+= VDR_USER=${VDR_USER}
@@ -41,7 +44,8 @@ post-patch-plugin:
's/^\(LOCALEDIR[[:space:]]*\)[?]*\(=[[:space:]]*\).*/\1\2..\/locale/;'\\
's/^\(VDRDIR[[:space:]]*\)[?]*\(=[[:space:]]*\).*/\1\2'"${VDRDIR:S-/-\\\\/-g}/;"\\
's/^\(VDRINCDIR[[:space:]]*\)[?]*\(=[[:space:]]*\).*/\1\2'"${VDRINCDIR:S-/-\\\\/-g}/;"\\
- 's/^\(BINDIR[[:space:]]*\)[?]*\(=[[:space:]]*\).*/\1\2'"${PREFIX:S-/-\\\\/-g}\/bin/;" \
+ 's/^\(BINDIR[[:space:]]*\)[?]*\(=[[:space:]]*\).*/\1\2'"${PREFIX:S-/-\\\\/-g}\/bin/;"\\
+ '/^MAKEDEP.*-MM/s/-MG[[:space:]]*$$/# -MG/' \
${WRKSRC}/Makefile ${VDR_PLUGIN_MAKEFILES}
post-install-pluginlocales:
diff --git a/multimedia/vdr/distinfo b/multimedia/vdr/distinfo
index 7a5a420d8c52..0033b061d918 100644
--- a/multimedia/vdr/distinfo
+++ b/multimedia/vdr/distinfo
@@ -1,2 +1,2 @@
-SHA256 (vdr/vdr-1.7.18.tar.bz2) = 503168921cbcae21687fc4d686c56c2f0b1cbdc578fb053b4a18eee8e5002705
-SIZE (vdr/vdr-1.7.18.tar.bz2) = 712601
+SHA256 (vdr/vdr-1.7.19.tar.bz2) = 25481ac1fdc01fbed4e8bde6436346bb919c966aff4da0d67b5cc13318e6039e
+SIZE (vdr/vdr-1.7.19.tar.bz2) = 717625
diff --git a/multimedia/vdr/files/patch-clang b/multimedia/vdr/files/patch-clang
new file mode 100644
index 000000000000..1691aedbdcd6
--- /dev/null
+++ b/multimedia/vdr/files/patch-clang
@@ -0,0 +1,11 @@
+--- config.h.orig
++++ config.h
+@@ -103,7 +103,7 @@ public:
+ if (!isempty(s)) {
+ T *l = new T;
+ if (l->Parse(s))
+- Add(l);
++ this->Add(l);
+ else {
+ esyslog("ERROR: error in %s, line %d", fileName, line);
+ delete l;
diff --git a/multimedia/vdr/files/patch-receiver.c b/multimedia/vdr/files/patch-receiver.c
new file mode 100644
index 000000000000..c37c79d10f67
--- /dev/null
+++ b/multimedia/vdr/files/patch-receiver.c
@@ -0,0 +1,15 @@
+--- receiver.c.orig
++++ receiver.c
+@@ -36,10 +36,10 @@ cReceiver::cReceiver(const cChannel *Cha
+ cReceiver::~cReceiver()
+ {
+ if (device) {
+- const char *msg = "ERROR: cReceiver has not been detached yet! This is a design fault and VDR will segfault now!";
++ const char *msg = "ERROR: cReceiver has not been detached yet! This is a design fault and VDR will abort now!";
+ esyslog("%s", msg);
+ fprintf(stderr, "%s\n", msg);
+- *(char *)0 = 0; // cause a segfault
++ abort();
+ }
+ }
+
diff --git a/multimedia/vdr/files/vdr-1.7.15-ttxtsubs.patch-1 b/multimedia/vdr/files/vdr-1.7.15-ttxtsubs.patch-1
index acd3b283d8f8..45e8def1bd8e 100644
--- a/multimedia/vdr/files/vdr-1.7.15-ttxtsubs.patch-1
+++ b/multimedia/vdr/files/vdr-1.7.15-ttxtsubs.patch-1
@@ -81,29 +81,6 @@ index b867297..63c8b9c 100644
void SetCaIds(const int *CaIds); // list must be zero-terminated
void SetCaDescriptors(int Level);
void SetLinkChannels(cLinkChannels *LinkChannels);
-diff --git a/ci.c b/ci.c
-index 6c7b031..22fda9f 100644
---- a/ci.c
-+++ b/ci.c
-@@ -1911,6 +1911,8 @@ void cCamSlot::AddChannel(const cChannel *Channel)
- AddPid(Channel->Sid(), *Apid, STREAM_TYPE_AUDIO);
- for (const int *Dpid = Channel->Dpids(); *Dpid; Dpid++)
- AddPid(Channel->Sid(), *Dpid, STREAM_TYPE_DOLBY);
-+ if (Channel->Tpid() && Setup.SupportTeletext)
-+ AddPid(Channel->Sid(), Channel->Tpid(), STREAM_TYPE_DOLBY);
- }
- }
-
-@@ -1932,6 +1934,9 @@ bool cCamSlot::CanDecrypt(const cChannel *Channel)
- CaPmt.AddPid(*Apid, STREAM_TYPE_AUDIO);
- for (const int *Dpid = Channel->Dpids(); *Dpid; Dpid++)
- CaPmt.AddPid(*Dpid, STREAM_TYPE_DOLBY);
-+ if (Channel->Tpid() && Setup.SupportTeletext) {
-+ CaPmt.AddPid(Channel->Tpid(), STREAM_TYPE_DOLBY); // FIXME: STREAM_TYPE_DOLBY should probably be renamed STREAM_TYPE_PRIVATE
-+ }
- cas->SendPMT(&CaPmt);
- cTimeMs Timeout(QUERY_REPLY_TIMEOUT);
- do {
diff --git a/config.c b/config.c
index 73b11b1..f2eebe6 100644
--- a/config.c
diff --git a/multimedia/vdr/files/vdr-1.7.18-1.7.19-tspacketbug.diff b/multimedia/vdr/files/vdr-1.7.18-1.7.19-tspacketbug.diff
new file mode 100644
index 000000000000..a58f4d879995
--- /dev/null
+++ b/multimedia/vdr/files/vdr-1.7.18-1.7.19-tspacketbug.diff
@@ -0,0 +1,356 @@
+diff -ruN vdr-1.7.18/recorder.c vdr-1.7.19/recorder.c
+--- vdr-1.7.18/recorder.c 2010-12-27 12:35:46.000000000 +0100
++++ vdr-1.7.19/recorder.c 2011-06-12 16:16:45.000000000 +0200
+@@ -4,7 +4,7 @@
+ * See the main source file 'vdr.c' for copyright information and
+ * how to reach the author.
+ *
+- * $Id: recorder.c 2.9 2010/12/27 11:35:46 kls Exp $
++ * $Id: recorder.c 2.11 2011/06/12 14:16:45 kls Exp $
+ */
+
+ #include "recorder.h"
+@@ -31,7 +31,7 @@
+
+ SpinUpDisk(FileName);
+
+- ringBuffer = new cRingBufferLinear(RECORDERBUFSIZE, MIN_TS_PACKETS_FOR_FRAME_DETECTOR * TS_SIZE, true, "Recorder");
++ ringBuffer = new cRingBufferLinear(RECORDERBUFSIZE, TS_SIZE, true, "Recorder");
+ ringBuffer->SetTimeouts(0, 100);
+
+ int Pid = Channel->Vpid();
+@@ -119,6 +119,8 @@
+ time_t t = time(NULL);
+ bool InfoWritten = false;
+ bool FirstIframeSeen = false;
++ int FileNumber = 0;
++ off_t FrameOffset = -1;
+ while (Running()) {
+ int r;
+ uchar *b = ringBuffer->Get(r);
+@@ -131,7 +133,7 @@
+ if (!InfoWritten) {
+ cRecordingInfo RecordingInfo(recordingName);
+ if (RecordingInfo.Read()) {
+- if (frameDetector->FramesPerSecond() > 0 && !DoubleEqual(RecordingInfo.FramesPerSecond(), frameDetector->FramesPerSecond())) {
++ if (frameDetector->FramesPerSecond() > 0 && DoubleEqual(RecordingInfo.FramesPerSecond(), DEFAULTFRAMESPERSECOND) && !DoubleEqual(RecordingInfo.FramesPerSecond(), frameDetector->FramesPerSecond())) {
+ RecordingInfo.SetFramesPerSecond(frameDetector->FramesPerSecond());
+ RecordingInfo.Write();
+ Recordings.UpdateByName(recordingName);
+@@ -139,12 +141,16 @@
+ }
+ InfoWritten = true;
+ }
++ if (frameDetector->NewPayload()) {
++ FileNumber = fileName->Number();
++ FrameOffset = fileSize;
++ }
+ if (FirstIframeSeen || frameDetector->IndependentFrame()) {
+ FirstIframeSeen = true; // start recording with the first I-frame
+ if (!NextFile())
+ break;
+ if (index && frameDetector->NewFrame())
+- index->Write(frameDetector->IndependentFrame(), fileName->Number(), fileSize);
++ index->Write(frameDetector->IndependentFrame(), FileNumber, FrameOffset);
+ if (frameDetector->IndependentFrame()) {
+ recordFile->Write(patPmtGenerator.GetPat(), TS_SIZE);
+ fileSize += TS_SIZE;
+diff -ruN vdr-1.7.18/recording.c vdr-1.7.19/recording.c
+--- vdr-1.7.18/recording.c 2011-04-17 15:53:11.000000000 +0200
++++ vdr-1.7.19/recording.c 2011-06-12 15:04:28.000000000 +0200
+@@ -4,7 +4,7 @@
+ * See the main source file 'vdr.c' for copyright information and
+ * how to reach the author.
+ *
+- * $Id: recording.c 2.30 2011/04/17 13:53:11 kls Exp $
++ * $Id: recording.c 2.31 2011/06/12 13:04:28 kls Exp $
+ */
+
+ #include "recording.h"
+@@ -1403,11 +1403,12 @@
+ bool Rewind = false;
+ cFileName FileName(recordingName, false);
+ cUnbufferedFile *ReplayFile = FileName.Open();
+- cRingBufferLinear Buffer(IFG_BUFFER_SIZE, MIN_TS_PACKETS_FOR_FRAME_DETECTOR * TS_SIZE);
++ cRingBufferLinear Buffer(IFG_BUFFER_SIZE, TS_SIZE);
+ cPatPmtParser PatPmtParser;
+ cFrameDetector FrameDetector;
+ cIndexFile IndexFile(recordingName, true);
+ int BufferChunks = KILOBYTE(1); // no need to read a lot at the beginning when parsing PAT/PMT
++ int FileNumber = 0;
+ off_t FileSize = 0;
+ off_t FrameOffset = -1;
+ Skins.QueueMessage(mtInfo, tr("Regenerating index file"));
+@@ -1424,12 +1425,18 @@
+ if (Data) {
+ if (FrameDetector.Synced()) {
+ // Step 3 - generate the index:
+- if (TsPid(Data) == PATPID)
++ if (FrameOffset < 0 && TsPid(Data) == PATPID) {
++ FileNumber = FileName.Number();
+ FrameOffset = FileSize; // the PAT/PMT is at the beginning of an I-frame
++ }
+ int Processed = FrameDetector.Analyze(Data, Length);
+ if (Processed > 0) {
++ if (FrameDetector.NewPayload() && FrameOffset < 0) {
++ FileNumber = FileName.Number();
++ FrameOffset = FileSize;
++ }
+ if (FrameDetector.NewFrame()) {
+- IndexFile.Write(FrameDetector.IndependentFrame(), FileName.Number(), FrameOffset >= 0 ? FrameOffset : FileSize);
++ IndexFile.Write(FrameDetector.IndependentFrame(), FileNumber, FrameOffset);
+ FrameOffset = -1;
+ }
+ FileSize += Processed;
+diff -ruN vdr-1.7.18/remux.c vdr-1.7.19/remux.c
+--- vdr-1.7.18/remux.c 2011-03-20 11:21:14.000000000 +0100
++++ vdr-1.7.19/remux.c 2011-06-12 16:24:09.000000000 +0200
+@@ -4,7 +4,7 @@
+ * See the main source file 'vdr.c' for copyright information and
+ * how to reach the author.
+ *
+- * $Id: remux.c 2.53 2011/03/20 10:21:14 kls Exp $
++ * $Id: remux.c 2.57 2011/06/12 14:24:09 kls Exp $
+ */
+
+ #include "remux.h"
+@@ -12,6 +12,7 @@
+ #include "libsi/si.h"
+ #include "libsi/section.h"
+ #include "libsi/descriptor.h"
++#include "recording.h"
+ #include "shutdown.h"
+ #include "tools.h"
+
+@@ -781,7 +782,8 @@
+ {
+ SetPid(Pid, Type);
+ synced = false;
+- newFrame = independentFrame = false;
++ newPayload = newFrame = independentFrame = false;
++ frameTypeOffset = -1;
+ numPtsValues = 0;
+ numFrames = 0;
+ numIFrames = 0;
+@@ -808,7 +810,8 @@
+
+ void cFrameDetector::Reset(void)
+ {
+- newFrame = independentFrame = false;
++ newPayload = newFrame = independentFrame = false;
++ frameTypeOffset = -1;
+ payloadUnitOfFrame = 0;
+ scanning = false;
+ scanner = EMPTY_SCANNER;
+@@ -816,9 +819,8 @@
+
+ int cFrameDetector::Analyze(const uchar *Data, int Length)
+ {
+- int SeenPayloadStart = false;
+ int Processed = 0;
+- newFrame = independentFrame = false;
++ newPayload = newFrame = independentFrame = false;
+ while (Length >= TS_SIZE) {
+ if (Data[0] != TS_SYNC_BYTE) {
+ int Skipped = 1;
+@@ -831,16 +833,13 @@
+ int Pid = TsPid(Data);
+ if (Pid == pid) {
+ if (TsPayloadStart(Data)) {
+- SeenPayloadStart = true;
+ if (synced && Processed)
+- return Processed;
+- if (Length < MIN_TS_PACKETS_FOR_FRAME_DETECTOR * TS_SIZE)
+- return Processed; // need more data, in case the frame type is not stored in the first TS packet
++ return Processed; // flush everything before this new payload
+ if (framesPerSecond <= 0.0) {
+ // frame rate unknown, so collect a sequence of PTS values:
+ if (numPtsValues < MaxPtsValues && numIFrames < 2) { // collect a sequence containing at least two I-frames
+ const uchar *Pes = Data + TsPayloadOffset(Data);
+- if (PesHasPts(Pes)) {
++ if (numIFrames && PesHasPts(Pes)) {
+ ptsValues[numPtsValues] = PesGetPts(Pes);
+ // check for rollover:
+ if (numPtsValues && ptsValues[numPtsValues - 1] > 0xF0000000 && ptsValues[numPtsValues] < 0x10000000) {
+@@ -885,8 +884,8 @@
+ else
+ framesPerSecond = 60.0 / 1.001;
+ else {
+- framesPerSecond = 25.0;
+- dsyslog("unknown frame delta (%d), assuming 25 fps", Delta);
++ framesPerSecond = DEFAULTFRAMESPERSECOND;
++ dsyslog("unknown frame delta (%d), assuming %5.2f fps", Delta, DEFAULTFRAMESPERSECOND);
+ }
+ }
+ else // audio
+@@ -900,6 +899,10 @@
+ if (scanning) {
+ int PayloadOffset = TsPayloadOffset(Data);
+ if (TsPayloadStart(Data)) {
++ if (synced && Processed)
++ return Processed; // flush everything before this new payload
++ newPayload = true;
++ scanner = EMPTY_SCANNER;
+ PayloadOffset += PesPayloadOffset(Data + PayloadOffset);
+ if (!framesPerPayloadUnit)
+ framesPerPayloadUnit = framesInPayloadUnit;
+@@ -907,17 +910,30 @@
+ dbgframes("/");
+ }
+ for (int i = PayloadOffset; scanning && i < TS_SIZE; i++) {
+- scanner <<= 8;
+- scanner |= Data[i];
++ if (frameTypeOffset < 0) {
++ scanner <<= 8;
++ scanner |= Data[i];
++ }
++ else
++ frameTypeOffset += PayloadOffset;
+ switch (type) {
+ case 0x01: // MPEG 1 video
+ case 0x02: // MPEG 2 video
+ if (scanner == 0x00000100) { // Picture Start Code
++ if (frameTypeOffset < 0) {
++ frameTypeOffset = i + 2;
++ if (frameTypeOffset >= TS_SIZE) { // the byte to check is in the next TS packet
++ frameTypeOffset -= TS_SIZE;
++ if (!synced)
++ dbgframes("%d>", frameTypeOffset);
++ break;
++ }
++ }
+ scanner = EMPTY_SCANNER;
+- if (synced && !SeenPayloadStart && Processed)
+- return Processed; // flush everything before this new frame
+ newFrame = true;
+- independentFrame = ((Data[i + 2] >> 3) & 0x07) == 1; // I-Frame
++ uchar FrameType = (Data[frameTypeOffset] >> 3) & 0x07;
++ frameTypeOffset = -1;
++ independentFrame = FrameType == 1; // I-Frame
+ if (synced) {
+ if (framesPerPayloadUnit <= 1)
+ scanning = false;
+@@ -928,7 +944,7 @@
+ numIFrames++;
+ if (numIFrames == 1)
+ numFrames++;
+- dbgframes("%d ", (Data[i + 2] >> 3) & 0x07);
++ dbgframes("%u ", FrameType);
+ }
+ if (synced)
+ return Processed + TS_SIZE; // flag this new frame
+@@ -936,11 +952,20 @@
+ break;
+ case 0x1B: // MPEG 4 video
+ if (scanner == 0x00000109) { // Access Unit Delimiter
++ if (frameTypeOffset < 0) {
++ frameTypeOffset = i + 1;
++ if (frameTypeOffset >= TS_SIZE) { // the byte to check is in the next TS packet
++ frameTypeOffset -= TS_SIZE;
++ if (!synced)
++ dbgframes("%d>", frameTypeOffset);
++ break;
++ }
++ }
+ scanner = EMPTY_SCANNER;
+- if (synced && !SeenPayloadStart && Processed)
+- return Processed; // flush everything before this new frame
+ newFrame = true;
+- independentFrame = Data[i + 1] == 0x10;
++ uchar FrameType = Data[frameTypeOffset];
++ frameTypeOffset = -1;
++ independentFrame = FrameType == 0x10;
+ if (synced) {
+ if (framesPerPayloadUnit < 0) {
+ payloadUnitOfFrame = (payloadUnitOfFrame + 1) % -framesPerPayloadUnit;
+@@ -958,7 +983,7 @@
+ numIFrames++;
+ if (numIFrames == 1)
+ numFrames++;
+- dbgframes("%02X ", Data[i + 1]);
++ dbgframes("%02X ", FrameType);
+ }
+ if (synced)
+ return Processed + TS_SIZE; // flag this new frame
+diff -ruN vdr-1.7.18/remux.h vdr-1.7.19/remux.h
+--- vdr-1.7.18/remux.h 2011-03-19 17:52:46.000000000 +0100
++++ vdr-1.7.19/remux.h 2011-06-12 14:49:17.000000000 +0200
+@@ -4,7 +4,7 @@
+ * See the main source file 'vdr.c' for copyright information and
+ * how to reach the author.
+ *
+- * $Id: remux.h 2.28 2011/03/19 16:52:46 kls Exp $
++ * $Id: remux.h 2.30 2011/06/12 12:49:17 kls Exp $
+ */
+
+ #ifndef __REMUX_H
+@@ -84,15 +84,18 @@
+
+ inline int TsPayloadOffset(const uchar *p)
+ {
+- int o = (p[3] & TS_ADAPT_FIELD_EXISTS) ? p[4] + 5 : 4;
++ int o = TsHasAdaptationField(p) ? p[4] + 5 : 4;
+ return o <= TS_SIZE ? o : TS_SIZE;
+ }
+
+ inline int TsGetPayload(const uchar **p)
+ {
+- int o = TsPayloadOffset(*p);
+- *p += o;
+- return TS_SIZE - o;
++ if (TsHasPayload(*p)) {
++ int o = TsPayloadOffset(*p);
++ *p += o;
++ return TS_SIZE - o;
++ }
++ return 0;
+ }
+
+ inline int TsContinuityCounter(const uchar *p)
+@@ -294,7 +297,7 @@
+ ~cTsToPes();
+ void PutTs(const uchar *Data, int Length);
+ ///< Puts the payload data of the single TS packet at Data into the converter.
+- ///< Length is always 188.
++ ///< Length is always TS_SIZE.
+ ///< If the given TS packet starts a new PES payload packet, the converter
+ ///< will be automatically reset. Any packets before the first one that starts
+ ///< a new PES payload packet will be ignored.
+@@ -333,16 +336,16 @@
+
+ // Frame detector:
+
+-#define MIN_TS_PACKETS_FOR_FRAME_DETECTOR 2
+-
+ class cFrameDetector {
+ private:
+ enum { MaxPtsValues = 150 };
+ int pid;
+ int type;
+ bool synced;
++ bool newPayload;
+ bool newFrame;
+ bool independentFrame;
++ int frameTypeOffset;
+ uint32_t ptsValues[MaxPtsValues]; // 32 bit is enough - we only need the delta
+ int numPtsValues;
+ int numFrames;
+@@ -368,12 +371,17 @@
+ ///< the frame detector for actual work.
+ int Analyze(const uchar *Data, int Length);
+ ///< Analyzes the TS packets pointed to by Data. Length is the number of
+- ///< bytes Data points to, and must be a multiple of 188.
++ ///< bytes Data points to, and must be a multiple of TS_SIZE.
+ ///< Returns the number of bytes that have been analyzed.
+ ///< If the return value is 0, the data was not sufficient for analyzing and
+ ///< Analyze() needs to be called again with more actual data.
+ bool Synced(void) { return synced; }
+ ///< Returns true if the frame detector has synced on the data stream.
++ bool NewPayload(void) { return newPayload; }
++ ///< Returns true if the data given to the last call to Analyze() started a
++ ///< new payload. The caller should remember the current file offset in
++ ///< order to be able to generate an index entry later, when NewFrame()
++ ///< returns true.
+ bool NewFrame(void) { return newFrame; }
+ ///< Returns true if the data given to the last call to Analyze() started a
+ ///< new frame.
diff --git a/multimedia/vdr/files/vdr-1.7.19-ttxtsubs.patch-3 b/multimedia/vdr/files/vdr-1.7.19-ttxtsubs.patch-3
new file mode 100644
index 000000000000..4f5f1bb830df
--- /dev/null
+++ b/multimedia/vdr/files/vdr-1.7.19-ttxtsubs.patch-3
@@ -0,0 +1,21 @@
+--- a/ci.c
++++ b/ci.c
+@@ -1917,6 +1917,8 @@ void cCamSlot::AddChannel(const cChannel
+ AddPid(Channel->Sid(), *Dpid, STREAM_TYPE_PRIVATE);
+ for (const int *Spid = Channel->Spids(); *Spid; Spid++)
+ AddPid(Channel->Sid(), *Spid, STREAM_TYPE_PRIVATE);
++ if (Channel->Tpid() && Setup.SupportTeletext)
++ AddPid(Channel->Sid(), Channel->Tpid(), STREAM_TYPE_PRIVATE);
+ }
+ }
+
+@@ -1940,6 +1942,9 @@ bool cCamSlot::CanDecrypt(const cChannel
+ CaPmt.AddPid(*Dpid, STREAM_TYPE_PRIVATE);
+ for (const int *Spid = Channel->Spids(); *Spid; Spid++)
+ CaPmt.AddPid(*Spid, STREAM_TYPE_PRIVATE);
++ if (Channel->Tpid() && Setup.SupportTeletext) {
++ CaPmt.AddPid(Channel->Tpid(), STREAM_TYPE_PRIVATE);
++ }
+ cas->SendPMT(&CaPmt);
+ cTimeMs Timeout(QUERY_REPLY_TIMEOUT);
+ do {
diff --git a/multimedia/vdr/pkg-plist b/multimedia/vdr/pkg-plist
index abcd9493d40a..18f386f0000e 100644
--- a/multimedia/vdr/pkg-plist
+++ b/multimedia/vdr/pkg-plist
@@ -1,14 +1,14 @@
bin/svdrpsend.pl
bin/vdr
-lib/vdr/libvdr-dvbsddevice.so.1.7.18
-lib/vdr/libvdr-svcsvr.so.1.7.18
-lib/vdr/libvdr-svccli.so.1.7.18
-lib/vdr/libvdr-status.so.1.7.18
-lib/vdr/libvdr-skincurses.so.1.7.18
-lib/vdr/libvdr-pictures.so.1.7.18
-lib/vdr/libvdr-osddemo.so.1.7.18
-lib/vdr/libvdr-hello.so.1.7.18
-lib/vdr/libvdr-svdrpdemo.so.1.7.18
+lib/vdr/libvdr-dvbsddevice.so.1.7.19
+lib/vdr/libvdr-svcsvr.so.1.7.19
+lib/vdr/libvdr-svccli.so.1.7.19
+lib/vdr/libvdr-status.so.1.7.19
+lib/vdr/libvdr-skincurses.so.1.7.19
+lib/vdr/libvdr-pictures.so.1.7.19
+lib/vdr/libvdr-osddemo.so.1.7.19
+lib/vdr/libvdr-hello.so.1.7.19
+lib/vdr/libvdr-svdrpdemo.so.1.7.19
%%NLS%%share/locale/ar/LC_MESSAGES/vdr.mo
%%NLS%%share/locale/es_ES/LC_MESSAGES/vdr.mo
%%NLS%%share/locale/es_ES/LC_MESSAGES/vdr-hello.mo
diff --git a/www/vdr-plugin-live/Makefile b/www/vdr-plugin-live/Makefile
index 9029879e747c..607b1de41656 100644
--- a/www/vdr-plugin-live/Makefile
+++ b/www/vdr-plugin-live/Makefile
@@ -7,7 +7,7 @@
PORTNAME= vdr-plugin-live
PORTVERSION= 0.2.0s20110303
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= www multimedia
MASTER_SITES= http://live.vdr-developer.org/downloads/:release \
LOCAL/nox/:snapshot
@@ -25,6 +25,7 @@ PATCH_STRIP= -p1
PORTDOCS= COPYING README
MAKE_JOBS_SAFE= yes
WRKSRC= ${WRKDIR}/vdr-plugin-${PLUGIN}
+VDR_PLUGIN_MAKEFILES= ${WRKSRC}/httpd/Makefile ${WRKSRC}/pages/Makefile
MAKE_ARGS+= INCLUDES="-I$(LOCALBASE)/include -I${WRKSRC}"
.include "${.CURDIR}/../../multimedia/vdr/Makefile.plugins"
diff --git a/www/vdr-plugin-live/pkg-plist b/www/vdr-plugin-live/pkg-plist
index 727f7bf2bf89..0f9716af8920 100644
--- a/www/vdr-plugin-live/pkg-plist
+++ b/www/vdr-plugin-live/pkg-plist
@@ -1,4 +1,4 @@
-lib/vdr/libvdr-live.so.1.7.18
+lib/vdr/libvdr-live.so.1.7.19
etc/vdr/plugins/live/css/DatePicker.css
etc/vdr/plugins/live/css/siteprefs.css
etc/vdr/plugins/live/img/active.png