mirror of
https://git.FreeBSD.org/ports.git
synced 2025-01-20 08:27:15 +00:00
- Update multimedia/vdr to 1.7.22 .
- Add startup script that the rc.d script invokes to wait for /dev/dvb nodes to appear, can be disabled by setting vdr_waitdvb="NO" in rc.conf(5). (This turned out to be necessary in some situations because devd starts webcamd only later in the boot process.) - One more fix for changing OSD language when using UTF-8. - Update multimedia/vdr-plugin-femon to 1.7.11 . - Update multimedia/vdr-plugin-ttxtsubs to 0.2.4 . - Bump PORTREVISION for all other plugins. - Update www/vdradmin-am to 3.6.9 .
This commit is contained in:
parent
922347982c
commit
556296fe66
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=289562
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-control
|
||||
PORTVERSION= 0.0.2a45
|
||||
PORTREVISION= 9
|
||||
PORTREVISION= 10
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://ricomp.de/vdr/
|
||||
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION:S/a45/a/}${DISTVERSIONSUFFIX}
|
||||
|
@ -1 +1 @@
|
||||
lib/vdr/libvdr-control.so.1.7.19
|
||||
lib/vdr/libvdr-control.so.1.7.22
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-eepg
|
||||
PORTVERSION= 0.0.6p2011071921
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= LOCAL/nox/
|
||||
DISTNAME= ${PORTNAME}-${PORTVERSION:C/p.*/pre/}-0-g${GITHASH}
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-eepg.so.1.7.19
|
||||
lib/vdr/libvdr-eepg.so.1.7.22
|
||||
@exec /usr/bin/install -o %%VDR_USER%% -g %%VDR_GROUP%% -d %D/etc/vdr/plugins/eepg
|
||||
etc/vdr/plugins/eepg/eepg.equiv.IT
|
||||
@unexec if cmp -s %D/etc/vdr/plugins/eepg/eepg.equiv.sample %D/etc/vdr/plugins/eepg/eepg.equiv; then rm -f %D/etc/vdr/plugins/eepg/eepg.equiv; fi
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-epgsearch
|
||||
PORTVERSION= 0.9.25b20s20110221
|
||||
PORTREVISION= 5
|
||||
PORTREVISION= 6
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://winni.vdr-developer.org/epgsearch/downloads/beta/:beta \
|
||||
LOCAL/nox/:snapshot
|
||||
|
@ -1,7 +1,7 @@
|
||||
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
|
||||
lib/vdr/libvdr-epgsearch.so.1.7.22
|
||||
lib/vdr/libvdr-epgsearchonly.so.1.7.22
|
||||
lib/vdr/libvdr-conflictcheckonly.so.1.7.22
|
||||
lib/vdr/libvdr-quickepgsearch.so.1.7.22
|
||||
%%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
|
||||
|
@ -6,8 +6,7 @@
|
||||
#
|
||||
|
||||
PORTNAME= vdr-plugin-femon
|
||||
PORTVERSION= 1.7.10
|
||||
PORTREVISION= 1
|
||||
PORTVERSION= 1.7.11
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://www.saunalahti.fi/~rahrenbe/vdr/femon/files/
|
||||
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (vdr/vdr-femon-1.7.10.tgz) = bca0eb719c04ba2d6fac0925f11fed372d420c6492b1b82ad0ba27b4b847d558
|
||||
SIZE (vdr/vdr-femon-1.7.10.tgz) = 74051
|
||||
SHA256 (vdr/vdr-femon-1.7.11.tgz) = 7ec2802a81d37f5914f2b964769c459b7cbcd2c42cd4151a854707fc999b6a96
|
||||
SIZE (vdr/vdr-femon-1.7.11.tgz) = 75044
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-femon.so.1.7.19
|
||||
lib/vdr/libvdr-femon.so.1.7.22
|
||||
%%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
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-infosatepg
|
||||
PORTVERSION= 0.0.11
|
||||
PORTREVISION= 10
|
||||
PORTREVISION= 11
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/342/
|
||||
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-infosatepg.so.1.7.19
|
||||
lib/vdr/libvdr-infosatepg.so.1.7.22
|
||||
@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
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-iptv
|
||||
PORTVERSION= 0.4.2
|
||||
PORTREVISION= 9
|
||||
PORTREVISION= 10
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://www.saunalahti.fi/~rahrenbe/vdr/iptv/files/
|
||||
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-iptv.so.1.7.19
|
||||
lib/vdr/libvdr-iptv.so.1.7.22
|
||||
@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
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-markad
|
||||
PORTVERSION= 0.1.2
|
||||
PORTREVISION= 7
|
||||
PORTREVISION= 8
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/578/
|
||||
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
|
||||
|
@ -1,5 +1,5 @@
|
||||
bin/markad
|
||||
lib/vdr/libvdr-markad.so.1.7.19
|
||||
lib/vdr/libvdr-markad.so.1.7.22
|
||||
%%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
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-osdpip
|
||||
PORTVERSION= 0.1.0
|
||||
PORTREVISION= 9
|
||||
PORTREVISION= 10
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/267/
|
||||
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-osdpip.so.1.7.19
|
||||
lib/vdr/libvdr-osdpip.so.1.7.22
|
||||
%%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
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-osdteletext
|
||||
PORTVERSION= 0.9.0
|
||||
PORTREVISION= 8
|
||||
PORTREVISION= 9
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/416/
|
||||
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-osdteletext.so.1.7.19
|
||||
lib/vdr/libvdr-osdteletext.so.1.7.22
|
||||
@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
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-reelchannelscan
|
||||
PORTVERSION= 0.6.1b1.7.15
|
||||
PORTREVISION= 6
|
||||
PORTREVISION= 7
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= LOCAL/nox \
|
||||
http://ppa.launchpad.net/yavdr/stable-vdr/ubuntu/pool/main/v/vdr-plugin-reelchannelscan/
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-reelchannelscan.so.1.7.19
|
||||
lib/vdr/libvdr-reelchannelscan.so.1.7.22
|
||||
etc/vdr/plugins/transponders/S0.8W.tpl
|
||||
etc/vdr/plugins/transponders/S10.0E.tpl
|
||||
etc/vdr/plugins/transponders/S100.5E.tpl
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-remote
|
||||
PORTVERSION= 0.4.0
|
||||
PORTREVISION= 9
|
||||
PORTREVISION= 10
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://www.escape-edv.de/endriss/vdr/
|
||||
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
|
||||
|
@ -1 +1 @@
|
||||
lib/vdr/libvdr-remote.so.1.7.19
|
||||
lib/vdr/libvdr-remote.so.1.7.22
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-skinenigmang
|
||||
PORTVERSION= 0.1.1
|
||||
PORTREVISION= 9
|
||||
PORTREVISION= 10
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://andreas.vdr-developer.org/enigmang/download/
|
||||
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-skinenigmang.so.1.7.19
|
||||
lib/vdr/libvdr-skinenigmang.so.1.7.22
|
||||
etc/vdr/plugins/skinenigmang/HISTORY
|
||||
etc/vdr/plugins/skinenigmang/README
|
||||
etc/vdr/plugins/skinenigmang/flags/deu.xpm
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-sleeptimer
|
||||
PORTVERSION= 0.8.2
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/652/
|
||||
EXTRACT_SUFX= .tgz
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-sleeptimer.so.1.7.19
|
||||
lib/vdr/libvdr-sleeptimer.so.1.7.22
|
||||
%%NLS%%share/locale/ca_ES/LC_MESSAGES/vdr-sleeptimer.mo
|
||||
%%NLS%%share/locale/cs_CZ/LC_MESSAGES/vdr-sleeptimer.mo
|
||||
%%NLS%%share/locale/da_DK/LC_MESSAGES/vdr-sleeptimer.mo
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-softdevice
|
||||
PORTVERSION= 0.5.0p20100414
|
||||
PORTREVISION= 9
|
||||
PORTREVISION= 10
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= LOCAL
|
||||
MASTER_SITE_SUBDIR= nox/
|
||||
|
@ -1,7 +1,7 @@
|
||||
bin/ShmClient
|
||||
lib/vdr/libvdr-softdevice.so.1.7.19
|
||||
lib/vdr/libsoftdevice-xv.so.1.7.19
|
||||
lib/vdr/libsoftdevice-shm.so.1.7.19
|
||||
lib/vdr/libvdr-softdevice.so.1.7.22
|
||||
lib/vdr/libsoftdevice-xv.so.1.7.22
|
||||
lib/vdr/libsoftdevice-shm.so.1.7.22
|
||||
%%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
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-streamdev
|
||||
PORTVERSION= 0.5.1
|
||||
PORTREVISION= 5
|
||||
PORTREVISION= 6
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/497/:release \
|
||||
LOCAL:snapshot
|
||||
|
@ -1,5 +1,5 @@
|
||||
lib/vdr/libvdr-streamdev-client.so.1.7.19
|
||||
lib/vdr/libvdr-streamdev-server.so.1.7.19
|
||||
lib/vdr/libvdr-streamdev-client.so.1.7.22
|
||||
lib/vdr/libvdr-streamdev-server.so.1.7.22
|
||||
@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
|
||||
|
@ -6,10 +6,9 @@
|
||||
#
|
||||
|
||||
PORTNAME= vdr-plugin-ttxtsubs
|
||||
PORTVERSION= 0.2.2
|
||||
PORTREVISION= 2
|
||||
PORTVERSION= 0.2.4
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/309/
|
||||
MASTER_SITES= http://projects.vdr-developer.org/attachments/download/725/
|
||||
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
|
||||
|
||||
MAINTAINER= nox@FreeBSD.org
|
||||
@ -17,7 +16,7 @@ COMMENT= Video Disk Recorder - teletext subtitle plugin
|
||||
|
||||
PATCH_STRIP= -p1
|
||||
HAVE_CONFIGURE= yes
|
||||
PORTDOCS= COPYING README
|
||||
PORTDOCS= COPYING README HISTORY
|
||||
MAKE_JOBS_SAFE= yes
|
||||
WRKSRC= ${WRKDIR}/${PLUGIN}-${DISTVERSION}
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (vdr/vdr-ttxtsubs-0.2.2.tar.gz) = 2e685d177bf547385de62fa043272976566dd46e7504de4a5352bb36949ec724
|
||||
SIZE (vdr/vdr-ttxtsubs-0.2.2.tar.gz) = 60833
|
||||
SHA256 (vdr/vdr-ttxtsubs-0.2.4.tar.gz) = 6d038f9f48ca6bb844934e15ab47d0aca8cbf650d24c5b31930802d0ac57f4ef
|
||||
SIZE (vdr/vdr-ttxtsubs-0.2.4.tar.gz) = 60378
|
||||
|
@ -3,16 +3,16 @@
|
||||
@@ -101,7 +101,11 @@ all: libvdr-$(PLUGIN).so i18n
|
||||
|
||||
libvdr-$(PLUGIN).so: $(OBJS)
|
||||
$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
|
||||
$(CXX) $(CXXFLAGS) $(LDFLAGS) -shared $(OBJS) -o $@
|
||||
+ifdef FREEBSD
|
||||
+ @cp -f $@ $(LIBDIR)/$@.$(APIVERSION)
|
||||
+else
|
||||
@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
|
||||
+endif
|
||||
|
||||
dist: clean
|
||||
dist: $(I18Npo) clean
|
||||
@-rm -rf $(TMPDIR)/$(ARCHIVE)
|
||||
@@ -114,3 +118,6 @@ dist: clean
|
||||
@@ -114,3 +118,6 @@ dist: $(I18Npo) clean
|
||||
clean:
|
||||
@-rm -f $(PODIR)/*.mo $(PODIR)/*.pot
|
||||
@-rm -f $(OBJS) $(DEPFILE) *.so *.tgz core* *~
|
||||
|
@ -1,21 +0,0 @@
|
||||
--- a/ttxtsubs.c
|
||||
+++ b/ttxtsubs.c
|
||||
@@ -119,6 +119,7 @@ class cPluginTtxtsubs : public cPlugin,
|
||||
public:
|
||||
cPluginTtxtsubs(void);
|
||||
virtual ~cPluginTtxtsubs();
|
||||
+ void Reload(void) { StopTtxt(); StartTtxtPlay(0x000); }
|
||||
|
||||
// -- cPlugin
|
||||
virtual const char *Version(void) { return VERSION; }
|
||||
@@ -566,7 +567,9 @@ cMenuSetupTtxtsubs::cMenuSetupTtxtsubs(c
|
||||
|
||||
cMenuSetupTtxtsubs::~cMenuSetupTtxtsubs(void)
|
||||
{
|
||||
-
|
||||
+ if(mTtxtsubs) {
|
||||
+ mTtxtsubs->Reload();
|
||||
+ }
|
||||
if(mDoStore) {
|
||||
Store();
|
||||
// Setup.Save(); // Can't get it to write to conf file, menu item disabled.
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-ttxtsubs.so.1.7.19
|
||||
lib/vdr/libvdr-ttxtsubs.so.1.7.22
|
||||
%%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
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-upnp.so.1.7.19
|
||||
lib/vdr/libvdr-upnp.so.1.7.22
|
||||
etc/vdr/plugins/upnp/http/icons/upnpIconLrg.jpeg
|
||||
etc/vdr/plugins/upnp/http/icons/upnpIconLrg.png
|
||||
etc/vdr/plugins/upnp/http/icons/upnpIconSm.jpeg
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-vnsiserver
|
||||
PORTVERSION= 0.0.2s20100808.0952
|
||||
PORTREVISION= 9
|
||||
PORTREVISION= 10
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://ppa.launchpad.net/yavdr/testing-vdr/ubuntu/pool/main/v/vdr-plugin-vnsiserver/ \
|
||||
LOCAL/nox/
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-vnsiserver.so.1.7.19
|
||||
lib/vdr/libvdr-vnsiserver.so.1.7.22
|
||||
@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
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-wirbelscan
|
||||
PORTVERSION= 0.0.7
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= http://wirbel.htpc-forum.de/wirbelscan/
|
||||
DISTNAME= ${PORTNAME:S/-plugin-/-/}-${DISTVERSIONPREFIX}${DISTVERSION}${DISTVERSIONSUFFIX}
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-wirbelscan.so.1.7.19
|
||||
lib/vdr/libvdr-wirbelscan.so.1.7.22
|
||||
%%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
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-xineliboutput
|
||||
PORTVERSION= 1.0.90s20111129.1002
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= SF:release \
|
||||
LOCAL:snapshot
|
||||
|
@ -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.19
|
||||
lib/vdr/libvdr-xineliboutput.so.1.7.22
|
||||
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
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-xvdr
|
||||
PORTVERSION= 0.9.5
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= LOCAL/nox/
|
||||
DISTNAME= pipelka-${PORTNAME}-xvdr-${PORTVERSION}-0-g${GITHASH}
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-xvdr.so.1.7.19
|
||||
lib/vdr/libvdr-xvdr.so.1.7.22
|
||||
@unexec if cmp -s %D/etc/vdr/plugins/xvdr/allowed_hosts.conf.sample %D/etc/vdr/plugins/xvdr/allowed_hosts.conf; then rm -f %D/etc/vdr/plugins/xvdr/allowed_hosts.conf; fi
|
||||
etc/vdr/plugins/xvdr/allowed_hosts.conf.sample
|
||||
@exec if [ ! -f %D/etc/vdr/plugins/xvdr/allowed_hosts.conf ] ; then cp -p %D/%F %B/allowed_hosts.conf; fi
|
||||
|
@ -6,8 +6,7 @@
|
||||
#
|
||||
|
||||
PORTNAME= vdr-plugins
|
||||
PORTVERSION= 1.7.19
|
||||
PORTREVISION= 3
|
||||
PORTVERSION= 1.7.22
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= # none
|
||||
DISTFILES= # none
|
||||
|
@ -6,8 +6,7 @@
|
||||
#
|
||||
|
||||
PORTNAME= vdr
|
||||
PORTVERSION= 1.7.19
|
||||
PORTREVISION= 3
|
||||
PORTVERSION= 1.7.22
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= ftp://ftp.tvdr.de/vdr/Developer/
|
||||
|
||||
@ -27,7 +26,7 @@ USE_BZIP2= yes
|
||||
USE_GMAKE= yes
|
||||
USE_GNOME+= pkgconfig
|
||||
USE_GETTEXT= yes
|
||||
PORTDOCS= COPYING INSTALL MANUAL README
|
||||
PORTDOCS= COPYING INSTALL MANUAL README HISTORY
|
||||
MAKE_JOBS_SAFE= yes
|
||||
MAN1= vdr.1
|
||||
MAN5= vdr.5
|
||||
@ -45,6 +44,7 @@ ALL_TARGET= all plugins
|
||||
|
||||
VIDEODIR= /video
|
||||
SUB_LIST+= VIDEODIR=${VIDEODIR}
|
||||
SUB_FILES+= vdr-waitdvb
|
||||
USE_RC_SUBR= vdr
|
||||
VDR_USER= vdr
|
||||
VDR_GROUP= vdr
|
||||
@ -74,24 +74,21 @@ 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
|
||||
@${PATCH} -d ${WRKSRC} --quiet -p1 <${FILESDIR}/vdr-1.7.21-ttxtsubs.patch-1
|
||||
@${PATCH} -d ${WRKSRC} --quiet -p1 <${FILESDIR}/vdr-1.7.21-ttxtsubs.patch-2
|
||||
.endif
|
||||
@${SED} 's|^\(VIDEODIR[[:space:]]*\)[?]*\(=[[:space:]]*\).*|\1\2${VIDEODIR}|' \
|
||||
${WRKSRC}/Make.config.template >${WRKSRC}/Make.config
|
||||
@${REINPLACE_CMD} -e 's|%%CONFDIR%%|${CONFDIR}|' ${WRKSRC}/vdr.1
|
||||
# We don't support this yet:
|
||||
@${RM} -r ${WRKSRC}/PLUGINS/src/dvbhddevice
|
||||
# upstream bug:
|
||||
@${CP} ${WRKSRC}/svdrpsend.pl ${WRKSRC}/svdrpsend
|
||||
|
||||
post-install:
|
||||
.if !defined(WITHOUT_NLS)
|
||||
@ -109,6 +106,7 @@ post-install:
|
||||
${INSTALL_DATA} -o ${VDR_USER} -g ${VDR_GROUP} ${WRKSRC}/$$i ${CONFDIR}/$$i; \
|
||||
fi; \
|
||||
done
|
||||
${INSTALL_SCRIPT} ${WRKDIR}/vdr-waitdvb ${PREFIX}/bin
|
||||
.if !defined(NOPORTDOCS)
|
||||
${MKDIR} ${DOCSDIR}
|
||||
(cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${DOCSDIR})
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (vdr/vdr-1.7.19.tar.bz2) = 25481ac1fdc01fbed4e8bde6436346bb919c966aff4da0d67b5cc13318e6039e
|
||||
SIZE (vdr/vdr-1.7.19.tar.bz2) = 717625
|
||||
SHA256 (vdr/vdr-1.7.22.tar.bz2) = 73c36058400bc86b8b5aaaf5de0989551e4e6fc052157bebd180bfac4af7f628
|
||||
SIZE (vdr/vdr-1.7.22.tar.bz2) = 757800
|
||||
|
@ -1,10 +0,0 @@
|
||||
--- PLUGINS/src/dvbsddevice/dvbsddevice.c.orig
|
||||
+++ PLUGINS/src/dvbsddevice/dvbsddevice.c
|
||||
@@ -6,6 +6,7 @@
|
||||
* $Id: dvbsddevice.c 1.3 2010/01/30 10:05:42 kls Exp $
|
||||
*/
|
||||
|
||||
+#include <stdint.h>
|
||||
#include <vdr/plugin.h>
|
||||
#include "dvbsdffdevice.h"
|
||||
|
@ -1,11 +0,0 @@
|
||||
--- diseqc.c.orig
|
||||
+++ diseqc.c
|
||||
@@ -108,7 +108,7 @@ const char *cDiseqc::Codes(const char *s
|
||||
errno = 0;
|
||||
int n = strtol(t, &p, 16);
|
||||
if (!errno && p != t && 0 <= n && n <= 255) {
|
||||
- if (parsing) {
|
||||
+ if (!parsing) {
|
||||
codes[NumCodes++] = uchar(n);
|
||||
numCodes = NumCodes;
|
||||
}
|
@ -1,33 +0,0 @@
|
||||
--- config.c.orig
|
||||
+++ config.c
|
||||
@@ -399,7 +399,7 @@ cSetup::cSetup(void)
|
||||
CurrentChannel = -1;
|
||||
CurrentVolume = MAXVOLUME;
|
||||
CurrentDolby = 0;
|
||||
- // InitialChannel is initialized by constructor
|
||||
+ InitialChannel = "";
|
||||
InitialVolume = -1;
|
||||
ChannelsWrap = 0;
|
||||
EmergencyExit = 1;
|
||||
--- vdr.c.orig
|
||||
+++ vdr.c
|
||||
@@ -735,12 +723,14 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (!cDevice::WaitForAllDevicesReady(DEVICEREADYTIMEOUT))
|
||||
dsyslog("not all devices ready after %d seconds", DEVICEREADYTIMEOUT);
|
||||
- if (isnumber(Setup.InitialChannel)) { // for compatibility with old setup.conf files
|
||||
- if (cChannel *Channel = Channels.GetByNumber(atoi(Setup.InitialChannel)))
|
||||
- Setup.InitialChannel = Channel->GetChannelID().ToString();
|
||||
+ if (*Setup.InitialChannel) {
|
||||
+ if (isnumber(Setup.InitialChannel)) { // for compatibility with old setup.conf files
|
||||
+ if (cChannel *Channel = Channels.GetByNumber(atoi(Setup.InitialChannel)))
|
||||
+ Setup.InitialChannel = Channel->GetChannelID().ToString();
|
||||
+ }
|
||||
+ if (cChannel *Channel = Channels.GetByChannelID(tChannelID::FromString(Setup.InitialChannel)))
|
||||
+ Setup.CurrentChannel = Channel->Number();
|
||||
}
|
||||
- if (cChannel *Channel = Channels.GetByChannelID(tChannelID::FromString(Setup.InitialChannel)))
|
||||
- Setup.CurrentChannel = Channel->Number();
|
||||
if (Setup.InitialVolume >= 0)
|
||||
Setup.CurrentVolume = Setup.InitialVolume;
|
||||
Channels.SwitchTo(Setup.CurrentChannel);
|
@ -1,14 +1,7 @@
|
||||
Index: Make.config.template
|
||||
===================================================================
|
||||
RCS file: /progs/network/ccvs/vdr/Make.config.template,v
|
||||
retrieving revision 1.1.1.3
|
||||
retrieving revision 1.5
|
||||
diff -u -r1.1.1.3 -r1.5
|
||||
--- Make.config.template 2010/03/01 09:42:48 1.1.1.3
|
||||
+++ Make.config.template 2010/03/01 09:58:06 1.5
|
||||
@@ -8,6 +8,11 @@
|
||||
#
|
||||
# $Id: Make.config.template 2.2 2010/02/06 14:50:03 kls Exp $
|
||||
# $Id: Make.config.template 2.4 2011/12/04 14:41:00 kls Exp $
|
||||
|
||||
+OSTYPE ?= $(shell uname -s)
|
||||
+ifeq ($(OSTYPE),FreeBSD)
|
||||
@ -18,7 +11,7 @@ diff -u -r1.1.1.3 -r1.5
|
||||
### The C compiler and options:
|
||||
|
||||
CC = gcc
|
||||
@@ -23,20 +28,35 @@
|
||||
@@ -23,20 +28,34 @@ endif
|
||||
|
||||
### The directory environment:
|
||||
|
||||
@ -42,15 +35,14 @@ diff -u -r1.1.1.3 -r1.5
|
||||
+CONFDIR = $(PREFIX)/etc/vdr
|
||||
+PLUGINLIBDIR= $(PREFIX)/lib/vdr
|
||||
+else
|
||||
+#DVBDIR = /usr/src/v4l-dvb/linux
|
||||
+LOCDIR = ./locale
|
||||
CONFDIR = $(VIDEODIR)
|
||||
+PLUGINLIBDIR= $(PLUGINDIR)/lib
|
||||
CONFDIR = $(VIDEODIR)
|
||||
+endif
|
||||
|
||||
### The remote control:
|
||||
|
||||
LIRC_DEVICE = /dev/lircd
|
||||
LIRC_DEVICE = /var/run/lirc/lircd
|
||||
+ifdef FREEBSD
|
||||
+RCU_DEVICE = /dev/cuau0
|
||||
+else
|
||||
@ -59,15 +51,14 @@ diff -u -r1.1.1.3 -r1.5
|
||||
|
||||
## Define if you want vdr to not run as root
|
||||
#VDR_USER = vdr
|
||||
@@ -45,4 +65,8 @@
|
||||
|
||||
@@ -46,3 +65,7 @@ RCU_DEVICE = /dev/ttyS1
|
||||
ifdef DVBDIR
|
||||
INCLUDES += -I$(DVBDIR)/include
|
||||
+endif
|
||||
endif
|
||||
+
|
||||
+ifdef FREEBSD
|
||||
+INCLUDES += -I/usr/local/include
|
||||
endif
|
||||
+endif
|
||||
Index: Makefile
|
||||
@@ -8,6 +8,11 @@
|
||||
|
||||
@ -93,7 +84,7 @@ Index: Makefile
|
||||
INCLUDES ?= $(shell pkg-config --cflags freetype2 fontconfig)
|
||||
|
||||
PLUGINDIR= ./PLUGINS
|
||||
@@ -130,7 +139,11 @@ i18n: $(I18Nmsgs)
|
||||
@@ -151,7 +160,11 @@ i18n: $(I18Nmsgs)
|
||||
|
||||
install-i18n:
|
||||
@mkdir -p $(DESTDIR)$(LOCDIR)
|
||||
@ -105,19 +96,19 @@ Index: Makefile
|
||||
|
||||
# The 'include' directory (for plugins):
|
||||
|
||||
@@ -169,7 +182,11 @@ install: install-bin install-conf instal
|
||||
@@ -190,7 +203,11 @@ install: install-bin install-conf instal
|
||||
|
||||
install-bin: vdr
|
||||
@mkdir -p $(DESTDIR)$(BINDIR)
|
||||
+ifdef FREEBSD
|
||||
+ @cp -f vdr svdrpsend.pl $(DESTDIR)$(BINDIR)
|
||||
+ @cp -f vdr svdrpsend $(DESTDIR)$(BINDIR)
|
||||
+else
|
||||
@cp --remove-destination vdr svdrpsend.pl $(DESTDIR)$(BINDIR)
|
||||
@cp --remove-destination vdr svdrpsend $(DESTDIR)$(BINDIR)
|
||||
+endif
|
||||
|
||||
# Configuration files:
|
||||
|
||||
@@ -192,13 +209,18 @@ install-doc:
|
||||
@@ -213,13 +230,18 @@ install-doc:
|
||||
|
||||
install-plugins: plugins
|
||||
@mkdir -p $(DESTDIR)$(PLUGINLIBDIR)
|
||||
@ -134,17 +125,10 @@ Index: Makefile
|
||||
@cp -pLR include/vdr include/libsi $(DESTDIR)$(INCDIR)
|
||||
+ @cp Make.config Make.global $(DESTDIR)$(INCDIR)/vdr
|
||||
|
||||
# Source documentation:
|
||||
# pkg-config file:
|
||||
|
||||
Index: channels.c
|
||||
===================================================================
|
||||
RCS file: /progs/network/ccvs/vdr/channels.c,v
|
||||
retrieving revision 1.1.1.5
|
||||
retrieving revision 1.6
|
||||
diff -u -r1.1.1.5 -r1.6
|
||||
--- channels.c 2010/06/07 09:07:28 1.1.1.5
|
||||
+++ channels.c 2010/06/07 09:12:57 1.6
|
||||
@@ -29,7 +29,12 @@
|
||||
@@ -29,7 +29,12 @@ tChannelID tChannelID::FromString(const
|
||||
int tid;
|
||||
int sid;
|
||||
int rid = 0;
|
||||
@ -157,9 +141,9 @@ diff -u -r1.1.1.5 -r1.6
|
||||
if (fields == 4 || fields == 5) {
|
||||
int source = cSource::FromString(sourcebuf);
|
||||
free(sourcebuf);
|
||||
@@ -543,7 +548,17 @@
|
||||
char *vpidbuf = NULL;
|
||||
@@ -554,7 +559,18 @@ bool cChannel::Parse(const char *s)
|
||||
char *apidbuf = NULL;
|
||||
char *tpidbuf = NULL;
|
||||
char *caidbuf = NULL;
|
||||
+#ifdef __FreeBSD__
|
||||
+ namebuf = MALLOC(char, 256);
|
||||
@ -167,10 +151,11 @@ diff -u -r1.1.1.5 -r1.6
|
||||
+ parambuf = MALLOC(char, 256);
|
||||
+ vpidbuf = MALLOC(char, 256);
|
||||
+ apidbuf = MALLOC(char, 256);
|
||||
+ tpidbuf = MALLOC(char, 256);
|
||||
+ caidbuf = MALLOC(char, 256);
|
||||
+ int fields = sscanf(s, "%255[^:]:%d :%255[^:]:%9[^:] :%d :%255[^:]:%255[^:]:%d :%255[^:]:%d :%d :%d :%d ", namebuf, &frequency, parambuf, sourcebuf, &srate, vpidbuf, apidbuf, &tpid, caidbuf, &sid, &nid, &tid, &rid);
|
||||
+ int fields = sscanf(s, "%255[^:]:%d :%255[^:]:%255[^:] :%d :%255[^:]:%255[^:]:%255[^:]:%255[^:]:%d :%d :%d :%d ", namebuf, &frequency, parambuf, sourcebuf, &srate, vpidbuf, apidbuf, tpidbuf, caidbuf, &sid, &nid, &tid, &rid);
|
||||
+#else
|
||||
int fields = sscanf(s, "%a[^:]:%d :%a[^:]:%a[^:] :%d :%a[^:]:%a[^:]:%d :%a[^:]:%d :%d :%d :%d ", &namebuf, &frequency, ¶mbuf, &sourcebuf, &srate, &vpidbuf, &apidbuf, &tpid, &caidbuf, &sid, &nid, &tid, &rid);
|
||||
int fields = sscanf(s, "%a[^:]:%d :%a[^:]:%a[^:] :%d :%a[^:]:%a[^:]:%a[^:]:%a[^:]:%d :%d :%d :%d ", &namebuf, &frequency, ¶mbuf, &sourcebuf, &srate, &vpidbuf, &apidbuf, &tpidbuf, &caidbuf, &sid, &nid, &tid, &rid);
|
||||
+#endif
|
||||
if (fields >= 9) {
|
||||
if (fields == 9) {
|
||||
@ -214,21 +199,14 @@ diff -u -r1.1.1.4 -r1.4
|
||||
#include "i18n.h"
|
||||
#include "interface.h"
|
||||
Index: diseqc.c
|
||||
===================================================================
|
||||
RCS file: /progs/network/ccvs/vdr/diseqc.c,v
|
||||
retrieving revision 1.1.1.3
|
||||
retrieving revision 1.4
|
||||
diff -u -r1.1.1.3 -r1.4
|
||||
--- diseqc.c 2010/03/01 09:42:49 1.1.1.3
|
||||
+++ diseqc.c 2010/03/01 09:58:06 1.4
|
||||
@@ -50,7 +50,14 @@
|
||||
}
|
||||
@@ -114,7 +114,14 @@ bool cDiseqc::Parse(const char *s)
|
||||
return true;
|
||||
}
|
||||
bool result = false;
|
||||
char *sourcebuf = NULL;
|
||||
+#ifdef __FreeBSD__
|
||||
+ sourcebuf = MALLOC(char, 10);
|
||||
+ if (commands == NULL)
|
||||
+ commands = MALLOC(char, 256);
|
||||
+ commands = MALLOC(char, 256);
|
||||
+ int fields = sscanf(s, "%9[^ ] %d %c %d %255[^\n]", sourcebuf, &slof, &polarization, &lof, commands);
|
||||
+#else
|
||||
int fields = sscanf(s, "%a[^ ] %d %c %d %a[^\n]", &sourcebuf, &slof, &polarization, &lof, &commands);
|
||||
@ -940,7 +918,7 @@ Index: vdr.c
|
||||
|
||||
static void SignalHandler(int signum)
|
||||
{
|
||||
@@ -388,14 +397,18 @@ int main(int argc, char *argv[])
|
||||
@@ -400,14 +409,18 @@ int main(int argc, char *argv[])
|
||||
if (VdrUser && geteuid() == 0) {
|
||||
StartedAsRoot = true;
|
||||
if (strcmp(VdrUser, "root")) {
|
||||
@ -959,7 +937,7 @@ Index: vdr.c
|
||||
}
|
||||
}
|
||||
|
||||
@@ -539,6 +552,24 @@ int main(int argc, char *argv[])
|
||||
@@ -556,6 +569,25 @@ int main(int argc, char *argv[])
|
||||
CodeSet++; // skip the dot
|
||||
}
|
||||
}
|
||||
@ -976,7 +954,8 @@ Index: vdr.c
|
||||
+ const char *Lang = login_getcapstr(Lc, "lang", NULL, NULL);
|
||||
+ if (Lang && setlocale(LC_CTYPE, Lang)) {
|
||||
+ CodeSet = nl_langinfo(CODESET);
|
||||
+ }
|
||||
+ setenv("LANG", Lang, 1);
|
||||
+ }
|
||||
+ login_close(Lc);
|
||||
+ }
|
||||
+ }
|
@ -6,9 +6,9 @@ Index: Makefile
|
||||
- $(MAKE) -C $(LSIDIR) all
|
||||
+ $(MAKE) -C $(LSIDIR) all CC=${CC} CXX=${CXX}
|
||||
|
||||
# Internationalization (I18N):
|
||||
# pkg-config file:
|
||||
|
||||
@@ -167,7 +167,7 @@ plugins: include-dir
|
||||
@@ -186,7 +186,7 @@ plugins: include-dir
|
||||
noapiv="$$noapiv $$i";\
|
||||
continue;\
|
||||
fi;\
|
||||
@ -17,16 +17,16 @@ Index: Makefile
|
||||
done;\
|
||||
if [ -n "$$noapiv" ] ; then echo; echo "*** plugins without APIVERSION:$$noapiv"; echo; fi;\
|
||||
if [ -n "$$failed" ] ; then echo; echo "*** failed plugins:$$failed"; echo; exit 1; fi
|
||||
@@ -176,7 +176,7 @@ clean-plugins:
|
||||
@@ -197,7 +197,7 @@ clean-plugins:
|
||||
|
||||
# Install the files:
|
||||
|
||||
-install: install-bin install-conf install-doc install-plugins install-i18n install-includes
|
||||
+install: install-bin install-doc install-plugins install-includes
|
||||
-install: install-bin install-conf install-doc install-plugins install-i18n install-includes install-pc
|
||||
+install: install-bin install-conf install-doc install-plugins install-includes install-pc
|
||||
|
||||
# VDR binary:
|
||||
|
||||
@@ -191,7 +191,6 @@ endif
|
||||
@@ -212,7 +212,6 @@ endif
|
||||
# Configuration files:
|
||||
|
||||
install-conf:
|
||||
@ -34,7 +34,7 @@ Index: Makefile
|
||||
@if [ ! -d $(DESTDIR)$(CONFDIR) ]; then\
|
||||
mkdir -p $(DESTDIR)$(CONFDIR);\
|
||||
cp *.conf $(DESTDIR)$(CONFDIR);\
|
||||
@@ -207,7 +206,7 @@ install-doc:
|
||||
@@ -228,7 +227,7 @@ install-doc:
|
||||
|
||||
# Plugins:
|
||||
|
||||
|
10
multimedia/vdr/files/patch-z-config.c
Normal file
10
multimedia/vdr/files/patch-z-config.c
Normal file
@ -0,0 +1,10 @@
|
||||
--- config.c.orig
|
||||
+++ config.c
|
||||
@@ -72,7 +72,6 @@ cSatCableNumbers::cSatCableNumbers(int S
|
||||
{
|
||||
size = Size;
|
||||
array = MALLOC(int, size);
|
||||
- memset(array, size * sizeof(int), 0);
|
||||
FromString(s);
|
||||
}
|
||||
|
@ -1,179 +0,0 @@
|
||||
--- a/channels.c
|
||||
+++ b/channels.c
|
||||
@@ -383,6 +383,26 @@ void cChannel::SetSubtitlingDescriptors(
|
||||
}
|
||||
}
|
||||
|
||||
+void cChannel::SetTeletextSubtitlePages(tTeletextSubtitlePage pages[], int numberOfPages)
|
||||
+{
|
||||
+ int mod = CHANNELMOD_NONE;
|
||||
+ if (totalTtxtSubtitlePages != (fixedTtxtSubtitlePages + numberOfPages))
|
||||
+ mod |= CHANNELMOD_PIDS;
|
||||
+ totalTtxtSubtitlePages = fixedTtxtSubtitlePages;
|
||||
+ for (int i = 0; (i < numberOfPages) && (totalTtxtSubtitlePages < MAXTXTPAGES); i++) {
|
||||
+ if (teletextSubtitlePages[totalTtxtSubtitlePages].ttxtMagazine != pages[i].ttxtMagazine ||
|
||||
+ teletextSubtitlePages[totalTtxtSubtitlePages].ttxtPage != pages[i].ttxtPage ||
|
||||
+ teletextSubtitlePages[totalTtxtSubtitlePages].ttxtType != pages[i].ttxtType ||
|
||||
+ strcmp(teletextSubtitlePages[totalTtxtSubtitlePages].ttxtLanguage, pages[i].ttxtLanguage)) {
|
||||
+ mod |= CHANNELMOD_PIDS;
|
||||
+ teletextSubtitlePages[totalTtxtSubtitlePages] = pages[i];
|
||||
+ }
|
||||
+ totalTtxtSubtitlePages++;
|
||||
+ }
|
||||
+ modification |= mod;
|
||||
+ Channels.SetModified();
|
||||
+}
|
||||
+
|
||||
void cChannel::SetCaIds(const int *CaIds)
|
||||
{
|
||||
if (caids[0] && caids[0] <= CA_USER_MAX)
|
||||
@@ -511,11 +531,24 @@ cString cChannel::ToText(const cChannel
|
||||
q += IntArrayToString(q, Channel->dpids, 10, Channel->dlangs, Channel->dtypes);
|
||||
}
|
||||
*q = 0;
|
||||
+ const int TBufferSize = 5 + 1 + (MAXTXTPAGES * (3 + 1 + MAXLANGCODE1 + 1)) + 10; // '12345;150=deu,151=fin,...', +10: paranoia
|
||||
+ char tpidbuf[TBufferSize];
|
||||
+ q = tpidbuf;
|
||||
+ q += snprintf(q, sizeof(tpidbuf), "%d", Channel->tpid);
|
||||
+ if (Channel->fixedTtxtSubtitlePages > 0) {
|
||||
+ q += snprintf(q, sizeof(tpidbuf) - (q - tpidbuf), ";");
|
||||
+ for (int i = 0; i < Channel->fixedTtxtSubtitlePages; ++i) {
|
||||
+ tTeletextSubtitlePage page = Channel->teletextSubtitlePages[i];
|
||||
+ q += snprintf(q, sizeof(tpidbuf) - (q - tpidbuf),
|
||||
+ i + 1 < Channel->fixedTtxtSubtitlePages ? "%d=%s," : "%d=%s",
|
||||
+ page.PageNumber(), page.ttxtLanguage);
|
||||
+ }
|
||||
+ }
|
||||
char caidbuf[MAXCAIDS * 5 + 10]; // 5: 4 digits plus delimiting ',', 10: paranoia
|
||||
q = caidbuf;
|
||||
q += IntArrayToString(q, Channel->caids, 16);
|
||||
*q = 0;
|
||||
- buffer = cString::sprintf("%s:%d:%s:%s:%d:%s:%s:%d:%s:%d:%d:%d:%d\n", FullName, Channel->frequency, *Channel->parameters, *cSource::ToString(Channel->source), Channel->srate, vpidbuf, apidbuf, Channel->tpid, caidbuf, Channel->sid, Channel->nid, Channel->tid, Channel->rid);
|
||||
+ buffer = cString::sprintf("%s:%d:%s:%s:%d:%s:%s:%s:%s:%d:%d:%d:%d\n", FullName, Channel->frequency, *Channel->parameters, *cSource::ToString(Channel->source), Channel->srate, vpidbuf, apidbuf, tpidbuf, caidbuf, Channel->sid, Channel->nid, Channel->tid, Channel->rid);
|
||||
}
|
||||
return buffer;
|
||||
}
|
||||
@@ -549,6 +582,7 @@ bool cChannel::Parse(const char *s)
|
||||
char *parambuf = NULL;
|
||||
char *vpidbuf = NULL;
|
||||
char *apidbuf = NULL;
|
||||
+ char *tpidbuf = NULL;
|
||||
char *caidbuf = NULL;
|
||||
#ifdef __FreeBSD__
|
||||
namebuf = MALLOC(char, 256);
|
||||
@@ -556,10 +590,11 @@ bool cChannel::Parse(const char *s)
|
||||
parambuf = MALLOC(char, 256);
|
||||
vpidbuf = MALLOC(char, 256);
|
||||
apidbuf = MALLOC(char, 256);
|
||||
+ tpidbuf = MALLOC(char, 256);
|
||||
caidbuf = MALLOC(char, 256);
|
||||
- int fields = sscanf(s, "%255[^:]:%d :%255[^:]:%9[^:] :%d :%255[^:]:%255[^:]:%d :%255[^:]:%d :%d :%d :%d ", namebuf, &frequency, parambuf, sourcebuf, &srate, vpidbuf, apidbuf, &tpid, caidbuf, &sid, &nid, &tid, &rid);
|
||||
+ int fields = sscanf(s, "%255[^:]:%d :%255[^:]:%9[^:] :%d :%255[^:]:%255[^:]:%255[^:]:%255[^:]:%d :%d :%d :%d ", namebuf, &frequency, parambuf, sourcebuf, &srate, vpidbuf, apidbuf, tpidbuf, caidbuf, &sid, &nid, &tid, &rid);
|
||||
#else
|
||||
- int fields = sscanf(s, "%a[^:]:%d :%a[^:]:%a[^:] :%d :%a[^:]:%a[^:]:%d :%a[^:]:%d :%d :%d :%d ", &namebuf, &frequency, ¶mbuf, &sourcebuf, &srate, &vpidbuf, &apidbuf, &tpid, &caidbuf, &sid, &nid, &tid, &rid);
|
||||
+ int fields = sscanf(s, "%a[^:]:%d :%a[^:]:%a[^:] :%d :%a[^:]:%a[^:]:%a[^:]:%a[^:]:%d :%d :%d :%d ", &namebuf, &frequency, ¶mbuf, &sourcebuf, &srate, &vpidbuf, &apidbuf, &tpidbuf, &caidbuf, &sid, &nid, &tid, &rid);
|
||||
#endif
|
||||
if (fields >= 9) {
|
||||
if (fields == 9) {
|
||||
@@ -659,7 +694,37 @@ bool cChannel::Parse(const char *s)
|
||||
dpids[NumDpids] = 0;
|
||||
dtypes[NumDpids] = 0;
|
||||
}
|
||||
-
|
||||
+ if (tpidbuf) {
|
||||
+ char *p;
|
||||
+ fixedTtxtSubtitlePages = 0;
|
||||
+ // 2001;150=deu,151=fin
|
||||
+ if ((p = strchr(tpidbuf, ';')) != NULL) {
|
||||
+ char *q, *strtok_next;
|
||||
+ *p++ = 0;
|
||||
+ while ((q = strtok_r(p, ",", &strtok_next)) != NULL) {
|
||||
+ if (fixedTtxtSubtitlePages < MAXTXTPAGES) {
|
||||
+ int page;
|
||||
+ char *l = strchr(q, '=');
|
||||
+ if (l)
|
||||
+ *l++ = 0;
|
||||
+ if (sscanf(q, "%d", &page) == 1) {
|
||||
+ teletextSubtitlePages[fixedTtxtSubtitlePages] = tTeletextSubtitlePage(page);
|
||||
+ if (l)
|
||||
+ strn0cpy(teletextSubtitlePages[fixedTtxtSubtitlePages].ttxtLanguage, l, MAXLANGCODE1);
|
||||
+ fixedTtxtSubtitlePages++;
|
||||
+ }
|
||||
+ else
|
||||
+ esyslog("ERROR: invalid Teletext page!"); // no need to set ok to 'false'
|
||||
+ }
|
||||
+ else
|
||||
+ esyslog("ERROR: too many Teletext pages!"); // no need to set ok to 'false'
|
||||
+ p = NULL;
|
||||
+ }
|
||||
+ totalTtxtSubtitlePages = fixedTtxtSubtitlePages;
|
||||
+ }
|
||||
+ if (sscanf(tpidbuf, "%d", &tpid) != 1)
|
||||
+ return false;
|
||||
+ }
|
||||
if (caidbuf) {
|
||||
char *p = caidbuf;
|
||||
char *q;
|
||||
@@ -696,6 +761,7 @@ bool cChannel::Parse(const char *s)
|
||||
free(sourcebuf);
|
||||
free(vpidbuf);
|
||||
free(apidbuf);
|
||||
+ free(tpidbuf);
|
||||
free(caidbuf);
|
||||
free(namebuf);
|
||||
if (!GetChannelID().Valid()) {
|
||||
--- a/pat.c
|
||||
+++ b/pat.c
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "libsi/section.h"
|
||||
#include "libsi/descriptor.h"
|
||||
#include "thread.h"
|
||||
+#include "vdrttxtsubshooks.h"
|
||||
|
||||
#define PMT_SCAN_TIMEOUT 10 // seconds
|
||||
|
||||
@@ -347,6 +348,8 @@ void cPatFilter::Process(u_short Pid, u_
|
||||
char DLangs[MAXDPIDS][MAXLANGCODE2] = { "" };
|
||||
char SLangs[MAXSPIDS][MAXLANGCODE2] = { "" };
|
||||
int Tpid = 0;
|
||||
+ tTeletextSubtitlePage TeletextSubtitlePages[MAXTXTPAGES];
|
||||
+ int NumTPages = 0;
|
||||
int NumApids = 0;
|
||||
int NumDpids = 0;
|
||||
int NumSpids = 0;
|
||||
@@ -438,8 +441,21 @@ void cPatFilter::Process(u_short Pid, u_
|
||||
NumSpids++;
|
||||
}
|
||||
break;
|
||||
- case SI::TeletextDescriptorTag:
|
||||
+ case SI::TeletextDescriptorTag: {
|
||||
Tpid = esPid;
|
||||
+ SI::TeletextDescriptor *sd = (SI::TeletextDescriptor *)d;
|
||||
+ SI::TeletextDescriptor::Teletext ttxt;
|
||||
+ for (SI::Loop::Iterator it; sd->teletextLoop.getNext(ttxt, it); ) {
|
||||
+ bool isSubtitlePage = (ttxt.getTeletextType() == 0x02) || (ttxt.getTeletextType() == 0x05);
|
||||
+ if ((NumTPages < MAXTXTPAGES) && ttxt.languageCode[0] && isSubtitlePage) {
|
||||
+ strn0cpy(TeletextSubtitlePages[NumTPages].ttxtLanguage, I18nNormalizeLanguageCode(ttxt.languageCode), MAXLANGCODE1);
|
||||
+ TeletextSubtitlePages[NumTPages].ttxtPage = ttxt.getTeletextPageNumber();
|
||||
+ TeletextSubtitlePages[NumTPages].ttxtMagazine = ttxt.getTeletextMagazineNumber();
|
||||
+ TeletextSubtitlePages[NumTPages].ttxtType = ttxt.getTeletextType();
|
||||
+ NumTPages++;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
break;
|
||||
case SI::ISO639LanguageDescriptorTag: {
|
||||
SI::ISO639LanguageDescriptor *ld = (SI::ISO639LanguageDescriptor *)d;
|
||||
@@ -541,6 +557,12 @@ void cPatFilter::Process(u_short Pid, u_
|
||||
}
|
||||
if (Setup.UpdateChannels >= 2) {
|
||||
Channel->SetPids(Vpid, Ppid, Vtype, Apids, Atypes, ALangs, Dpids, Dtypes, DLangs, Spids, SLangs, Tpid);
|
||||
+ if (NumTPages < MAXTXTPAGES) {
|
||||
+ int manualPageNumber = cVDRTtxtsubsHookListener::Hook()->ManualPageNumber(Channel);
|
||||
+ if (manualPageNumber)
|
||||
+ TeletextSubtitlePages[NumTPages++] = tTeletextSubtitlePage(manualPageNumber);
|
||||
+ }
|
||||
+ Channel->SetTeletextSubtitlePages(TeletextSubtitlePages, NumTPages);
|
||||
if (!cSource::IsType(Channel->Source(), 'I'))
|
||||
Channel->SetCaIds(CaDescriptors->CaIds());
|
||||
Channel->SetSubtitlingDescriptors(SubtitlingTypes, CompositionPageIds, AncillaryPageIds);
|
@ -1,356 +0,0 @@
|
||||
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.
|
@ -1,21 +0,0 @@
|
||||
--- 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 {
|
@ -1,5 +1,5 @@
|
||||
diff --git a/MANUAL b/MANUAL
|
||||
index 7fae53b..6b0ae57 100644
|
||||
index 54e166e..57b687f 100644
|
||||
--- a/MANUAL
|
||||
+++ b/MANUAL
|
||||
@@ -730,6 +730,9 @@ Version 1.6
|
||||
@ -13,10 +13,10 @@ index 7fae53b..6b0ae57 100644
|
||||
|
||||
SLOF = 11700 The switching frequency (in MHz) between low and
|
||||
diff --git a/Makefile b/Makefile
|
||||
index d788484..f854b2e 100644
|
||||
index 18d7eb9..3da4382 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -44,6 +44,8 @@ OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o d
|
||||
@@ -45,6 +45,8 @@ OBJS = audio.o channels.o ci.o config.o cutter.o device.o diseqc.o dvbdevice.o d
|
||||
skinclassic.o skins.o skinsttng.o sourceparams.o sources.o spu.o status.o svdrp.o themes.o thread.o\
|
||||
timers.o tools.o transfer.o vdr.o videodir.o
|
||||
|
||||
@ -25,14 +25,97 @@ index d788484..f854b2e 100644
|
||||
ifndef NO_KBD
|
||||
DEFINES += -DREMOTE_KBD
|
||||
endif
|
||||
diff --git a/channels.c b/channels.c
|
||||
index b9204f2..44d4be2 100644
|
||||
--- a/channels.c
|
||||
+++ b/channels.c
|
||||
@@ -378,6 +378,26 @@ void cChannel::SetSubtitlingDescriptors(uchar *SubtitlingTypes, uint16_t *Compos
|
||||
}
|
||||
}
|
||||
|
||||
+void cChannel::SetTeletextSubtitlePages(tTeletextSubtitlePage pages[], int numberOfPages)
|
||||
+{
|
||||
+ int mod = CHANNELMOD_NONE;
|
||||
+ if (totalTtxtSubtitlePages != (fixedTtxtSubtitlePages + numberOfPages))
|
||||
+ mod |= CHANNELMOD_PIDS;
|
||||
+ totalTtxtSubtitlePages = fixedTtxtSubtitlePages;
|
||||
+ for (int i = 0; (i < numberOfPages) && (totalTtxtSubtitlePages < MAXTXTPAGES); i++) {
|
||||
+ if (teletextSubtitlePages[totalTtxtSubtitlePages].ttxtMagazine != pages[i].ttxtMagazine ||
|
||||
+ teletextSubtitlePages[totalTtxtSubtitlePages].ttxtPage != pages[i].ttxtPage ||
|
||||
+ teletextSubtitlePages[totalTtxtSubtitlePages].ttxtType != pages[i].ttxtType ||
|
||||
+ strcmp(teletextSubtitlePages[totalTtxtSubtitlePages].ttxtLanguage, pages[i].ttxtLanguage)) {
|
||||
+ mod |= CHANNELMOD_PIDS;
|
||||
+ teletextSubtitlePages[totalTtxtSubtitlePages] = pages[i];
|
||||
+ }
|
||||
+ totalTtxtSubtitlePages++;
|
||||
+ }
|
||||
+ modification |= mod;
|
||||
+ Channels.SetModified();
|
||||
+}
|
||||
+
|
||||
void cChannel::SetCaIds(const int *CaIds)
|
||||
{
|
||||
if (caids[0] && caids[0] <= CA_USER_MAX)
|
||||
@@ -506,10 +526,17 @@ cString cChannel::ToText(const cChannel *Channel)
|
||||
q += IntArrayToString(q, Channel->dpids, 10, Channel->dlangs, Channel->dtypes);
|
||||
}
|
||||
*q = 0;
|
||||
- const int TBufferSize = MAXSPIDS * (5 + 1 + MAXLANGCODE2) + 10; // 5 digits plus delimiting ',' or ';' plus optional '=cod+cod', +10: paranoia and tpid
|
||||
+ const int TBufferSize = (MAXTXTPAGES * MAXSPIDS) * (5 + 1 + MAXLANGCODE2) + 10; // 5 digits plus delimiting ',' or ';' plus optional '=cod+cod', +10: paranoia and tpid
|
||||
char tpidbuf[TBufferSize];
|
||||
q = tpidbuf;
|
||||
q += snprintf(q, sizeof(tpidbuf), "%d", Channel->tpid);
|
||||
+ if (Channel->fixedTtxtSubtitlePages > 0) {
|
||||
+ *q++ = '+';
|
||||
+ for (int i = 0; i < Channel->fixedTtxtSubtitlePages; ++i) {
|
||||
+ tTeletextSubtitlePage page = Channel->teletextSubtitlePages[i];
|
||||
+ q += snprintf(q, sizeof(tpidbuf) - (q - tpidbuf), "%d=%s", page.PageNumber(), page.ttxtLanguage);
|
||||
+ }
|
||||
+ }
|
||||
if (Channel->spids[0]) {
|
||||
*q++ = ';';
|
||||
q += IntArrayToString(q, Channel->spids, 10, Channel->slangs);
|
||||
@@ -678,6 +705,32 @@ bool cChannel::Parse(const char *s)
|
||||
}
|
||||
spids[NumSpids] = 0;
|
||||
}
|
||||
+ fixedTtxtSubtitlePages = 0;
|
||||
+ if ((p = strchr(tpidbuf, '+')) != NULL) {
|
||||
+ *p++ = 0;
|
||||
+ char *q;
|
||||
+ char *strtok_next;
|
||||
+ while ((q = strtok_r(p, ",", &strtok_next)) != NULL) {
|
||||
+ if (fixedTtxtSubtitlePages < MAXTXTPAGES) {
|
||||
+ int page;
|
||||
+ char *l = strchr(q, '=');
|
||||
+ if (l)
|
||||
+ *l++ = 0;
|
||||
+ if (sscanf(q, "%d", &page) == 1) {
|
||||
+ teletextSubtitlePages[fixedTtxtSubtitlePages] = tTeletextSubtitlePage(page);
|
||||
+ if (l)
|
||||
+ strn0cpy(teletextSubtitlePages[fixedTtxtSubtitlePages].ttxtLanguage, l, MAXLANGCODE2);
|
||||
+ fixedTtxtSubtitlePages++;
|
||||
+ }
|
||||
+ else
|
||||
+ esyslog("ERROR: invalid Teletext page!"); // no need to set ok to 'false'
|
||||
+ }
|
||||
+ else
|
||||
+ esyslog("ERROR: too many Teletext pages!"); // no need to set ok to 'false'
|
||||
+ p = NULL;
|
||||
+ }
|
||||
+ totalTtxtSubtitlePages = fixedTtxtSubtitlePages;
|
||||
+ }
|
||||
if (sscanf(tpidbuf, "%d", &tpid) != 1)
|
||||
return false;
|
||||
if (caidbuf) {
|
||||
diff --git a/channels.h b/channels.h
|
||||
index b867297..63c8b9c 100644
|
||||
index 51f9830..6e7367f 100644
|
||||
--- a/channels.h
|
||||
+++ b/channels.h
|
||||
@@ -35,6 +35,7 @@
|
||||
#define MAXDPIDS 16 // dolby (AC3 + DTS)
|
||||
#define MAXSPIDS 32 // subtitles
|
||||
#define MAXCAIDS 8 // conditional access
|
||||
#define MAXCAIDS 12 // conditional access
|
||||
+#define MAXTXTPAGES 8 // teletext pages
|
||||
|
||||
#define MAXLANGCODE1 4 // a 3 letter language code, zero terminated
|
||||
@ -81,8 +164,31 @@ 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 59d62ef..b024f67 100644
|
||||
--- a/ci.c
|
||||
+++ b/ci.c
|
||||
@@ -1913,6 +1913,8 @@ void cCamSlot::AddChannel(const cChannel *Channel)
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1936,6 +1938,9 @@ bool cCamSlot::CanDecrypt(const cChannel *Channel)
|
||||
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/config.c b/config.c
|
||||
index 73b11b1..f2eebe6 100644
|
||||
index 73bb00d..982bd78 100644
|
||||
--- a/config.c
|
||||
+++ b/config.c
|
||||
@@ -333,6 +333,7 @@ cSetup::cSetup(void)
|
||||
@ -93,7 +199,7 @@ index 73b11b1..f2eebe6 100644
|
||||
SubtitleLanguages[0] = -1;
|
||||
SubtitleOffset = 0;
|
||||
SubtitleFgTransparency = 0;
|
||||
@@ -524,6 +525,7 @@ bool cSetup::Parse(const char *Name, const char *Value)
|
||||
@@ -525,6 +526,7 @@ bool cSetup::Parse(const char *Name, const char *Value)
|
||||
else if (!strcasecmp(Name, "MarginStop")) MarginStop = atoi(Value);
|
||||
else if (!strcasecmp(Name, "AudioLanguages")) return ParseLanguages(Value, AudioLanguages);
|
||||
else if (!strcasecmp(Name, "DisplaySubtitles")) DisplaySubtitles = atoi(Value);
|
||||
@ -101,7 +207,7 @@ index 73b11b1..f2eebe6 100644
|
||||
else if (!strcasecmp(Name, "SubtitleLanguages")) return ParseLanguages(Value, SubtitleLanguages);
|
||||
else if (!strcasecmp(Name, "SubtitleOffset")) SubtitleOffset = atoi(Value);
|
||||
else if (!strcasecmp(Name, "SubtitleFgTransparency")) SubtitleFgTransparency = atoi(Value);
|
||||
@@ -620,6 +622,7 @@ bool cSetup::Save(void)
|
||||
@@ -621,6 +623,7 @@ bool cSetup::Save(void)
|
||||
Store("MarginStop", MarginStop);
|
||||
StoreLanguages("AudioLanguages", AudioLanguages);
|
||||
Store("DisplaySubtitles", DisplaySubtitles);
|
||||
@ -110,7 +216,7 @@ index 73b11b1..f2eebe6 100644
|
||||
Store("SubtitleOffset", SubtitleOffset);
|
||||
Store("SubtitleFgTransparency", SubtitleFgTransparency);
|
||||
diff --git a/config.h b/config.h
|
||||
index 7041eb7..289d4b6 100644
|
||||
index c51e3df..e46b4bd 100644
|
||||
--- a/config.h
|
||||
+++ b/config.h
|
||||
@@ -235,6 +235,7 @@ public:
|
||||
@ -122,7 +228,7 @@ index 7041eb7..289d4b6 100644
|
||||
int SubtitleOffset;
|
||||
int SubtitleFgTransparency, SubtitleBgTransparency;
|
||||
diff --git a/device.c b/device.c
|
||||
index 681049b..4dbd920 100644
|
||||
index ba098d8..84bdd30 100644
|
||||
--- a/device.c
|
||||
+++ b/device.c
|
||||
@@ -18,6 +18,7 @@
|
||||
@ -133,7 +239,7 @@ index 681049b..4dbd920 100644
|
||||
|
||||
// --- cLiveSubtitle ---------------------------------------------------------
|
||||
|
||||
@@ -1223,6 +1224,13 @@ int cDevice::PlayPesPacket(const uchar *Data, int Length, bool VideoOnly)
|
||||
@@ -1250,6 +1251,13 @@ int cDevice::PlayPesPacket(const uchar *Data, int Length, bool VideoOnly)
|
||||
}
|
||||
break;
|
||||
case 0xBD: { // private stream 1
|
||||
@ -147,7 +253,7 @@ index 681049b..4dbd920 100644
|
||||
int PayloadOffset = Data[8] + 9;
|
||||
|
||||
// Compatibility mode for old subtitles plugin:
|
||||
@@ -1382,6 +1390,7 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly)
|
||||
@@ -1409,6 +1417,7 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly)
|
||||
tsToPesVideo.Reset();
|
||||
tsToPesAudio.Reset();
|
||||
tsToPesSubtitle.Reset();
|
||||
@ -155,7 +261,7 @@ index 681049b..4dbd920 100644
|
||||
}
|
||||
else if (Length < TS_SIZE) {
|
||||
esyslog("ERROR: skipped %d bytes of TS fragment", Length);
|
||||
@@ -1427,6 +1436,17 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly)
|
||||
@@ -1454,6 +1463,17 @@ int cDevice::PlayTs(const uchar *Data, int Length, bool VideoOnly)
|
||||
if (!VideoOnly || HasIBPTrickSpeed())
|
||||
PlayTsSubtitle(Data, TS_SIZE);
|
||||
}
|
||||
@ -174,10 +280,10 @@ index 681049b..4dbd920 100644
|
||||
}
|
||||
else if (Pid == patPmtParser.Ppid()) {
|
||||
diff --git a/device.h b/device.h
|
||||
index cb3bc2c..f531e70 100644
|
||||
index fd587a8..078f080 100644
|
||||
--- a/device.h
|
||||
+++ b/device.h
|
||||
@@ -522,6 +522,7 @@ private:
|
||||
@@ -538,6 +538,7 @@ private:
|
||||
cTsToPes tsToPesVideo;
|
||||
cTsToPes tsToPesAudio;
|
||||
cTsToPes tsToPesSubtitle;
|
||||
@ -186,10 +292,10 @@ index cb3bc2c..f531e70 100644
|
||||
protected:
|
||||
const cPatPmtParser *PatPmtParser(void) const { return &patPmtParser; }
|
||||
diff --git a/menu.c b/menu.c
|
||||
index 19cfabb..d2deeb3 100644
|
||||
index ef2bb46..3548ccd 100644
|
||||
--- a/menu.c
|
||||
+++ b/menu.c
|
||||
@@ -2790,6 +2790,7 @@ void cMenuSetupDVB::Setup(void)
|
||||
@@ -2798,6 +2798,7 @@ void cMenuSetupDVB::Setup(void)
|
||||
Add(new cMenuEditIntItem( tr("Setup.DVB$Subtitle foreground transparency"), &data.SubtitleFgTransparency, 0, 9));
|
||||
Add(new cMenuEditIntItem( tr("Setup.DVB$Subtitle background transparency"), &data.SubtitleBgTransparency, 0, 10));
|
||||
}
|
||||
@ -198,10 +304,10 @@ index 19cfabb..d2deeb3 100644
|
||||
SetCurrent(Get(current));
|
||||
Display();
|
||||
diff --git a/po/ca_ES.po b/po/ca_ES.po
|
||||
index 247113b..aba1ae3 100644
|
||||
index b104fea..1c09d79 100644
|
||||
--- a/po/ca_ES.po
|
||||
+++ b/po/ca_ES.po
|
||||
@@ -943,6 +943,9 @@ msgstr "Transpar
|
||||
@@ -950,6 +950,9 @@ msgstr "Transpar
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Transparència fons subtítols"
|
||||
|
||||
@ -212,10 +318,10 @@ index 247113b..aba1ae3 100644
|
||||
msgstr "Configuració de l'LNB"
|
||||
|
||||
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
|
||||
index f6313ba..aec6f4e 100644
|
||||
index bcafac7..370609f 100644
|
||||
--- a/po/cs_CZ.po
|
||||
+++ b/po/cs_CZ.po
|
||||
@@ -942,6 +942,9 @@ msgstr "Průhlednost pÃsma titulků"
|
||||
@@ -949,6 +949,9 @@ msgstr "Průhlednost pÃsma titulků"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Průhlednost pozadà titulků"
|
||||
|
||||
@ -226,10 +332,10 @@ index f6313ba..aec6f4e 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/da_DK.po b/po/da_DK.po
|
||||
index 40cdebd..192173d 100644
|
||||
index 81b11eb..5daca8d 100644
|
||||
--- a/po/da_DK.po
|
||||
+++ b/po/da_DK.po
|
||||
@@ -940,6 +940,9 @@ msgstr "Undertekst forgrundsgennemsigtighed"
|
||||
@@ -947,6 +947,9 @@ msgstr "Undertekst forgrundsgennemsigtighed"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Undertekst baggrundsgennemsigtighed"
|
||||
|
||||
@ -240,10 +346,10 @@ index 40cdebd..192173d 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/de_DE.po b/po/de_DE.po
|
||||
index 4d4f3df..a3227a0 100644
|
||||
index 6d5b822..0a00a5a 100644
|
||||
--- a/po/de_DE.po
|
||||
+++ b/po/de_DE.po
|
||||
@@ -940,6 +940,9 @@ msgstr "Untertitel-Transparenz Vordergrund"
|
||||
@@ -947,6 +947,9 @@ msgstr "Untertitel-Transparenz Vordergrund"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Untertitel-Transparenz Hintergrund"
|
||||
|
||||
@ -254,10 +360,10 @@ index 4d4f3df..a3227a0 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/el_GR.po b/po/el_GR.po
|
||||
index 5414ebc..913f39e 100644
|
||||
index 9756ea7..5d4d6ea 100644
|
||||
--- a/po/el_GR.po
|
||||
+++ b/po/el_GR.po
|
||||
@@ -940,6 +940,9 @@ msgstr ""
|
||||
@@ -947,6 +947,9 @@ msgstr ""
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr ""
|
||||
|
||||
@ -268,10 +374,10 @@ index 5414ebc..913f39e 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/es_ES.po b/po/es_ES.po
|
||||
index 217f775..78a9491 100644
|
||||
index 193e75e..1f36b60 100644
|
||||
--- a/po/es_ES.po
|
||||
+++ b/po/es_ES.po
|
||||
@@ -941,6 +941,9 @@ msgstr "Transparencia primer plano subt
|
||||
@@ -948,6 +948,9 @@ msgstr "Transparencia primer plano subt
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Transparencia fondo subtítulos"
|
||||
|
||||
@ -282,10 +388,10 @@ index 217f775..78a9491 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/et_EE.po b/po/et_EE.po
|
||||
index 5010dc4..af2e2d3 100644
|
||||
index 49794dd..83ff319 100644
|
||||
--- a/po/et_EE.po
|
||||
+++ b/po/et_EE.po
|
||||
@@ -940,6 +940,9 @@ msgstr "Subtiitri l
|
||||
@@ -947,6 +947,9 @@ msgstr "Subtiitri l
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Subtiitri tausta läbipaistvus"
|
||||
|
||||
@ -296,10 +402,10 @@ index 5010dc4..af2e2d3 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/fi_FI.po b/po/fi_FI.po
|
||||
index cd57e7c..e6a22bf 100644
|
||||
index b093e88..4abf6a8 100644
|
||||
--- a/po/fi_FI.po
|
||||
+++ b/po/fi_FI.po
|
||||
@@ -943,6 +943,9 @@ msgstr "Tekstityksen läpinäkyvyys"
|
||||
@@ -950,6 +950,9 @@ msgstr "Tekstityksen läpinäkyvyys"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Tekstityksen taustan läpinäkyvyys"
|
||||
|
||||
@ -310,10 +416,10 @@ index cd57e7c..e6a22bf 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/fr_FR.po b/po/fr_FR.po
|
||||
index 0d4cb7c..770038e 100644
|
||||
index b5c5120..86a961a 100644
|
||||
--- a/po/fr_FR.po
|
||||
+++ b/po/fr_FR.po
|
||||
@@ -946,6 +946,9 @@ msgstr "Transparence de l'avant-plan"
|
||||
@@ -953,6 +953,9 @@ msgstr "Transparence de l'avant-plan"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Transparence du fond"
|
||||
|
||||
@ -324,10 +430,10 @@ index 0d4cb7c..770038e 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/hr_HR.po b/po/hr_HR.po
|
||||
index 96ee695..51f596c 100644
|
||||
index ed519a2..43f2ea5 100644
|
||||
--- a/po/hr_HR.po
|
||||
+++ b/po/hr_HR.po
|
||||
@@ -942,6 +942,9 @@ msgstr "Transparentnost titla"
|
||||
@@ -949,6 +949,9 @@ msgstr "Transparentnost titla"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Transparentnost pozadine titla"
|
||||
|
||||
@ -338,10 +444,10 @@ index 96ee695..51f596c 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/hu_HU.po b/po/hu_HU.po
|
||||
index a17b209..2f70812 100644
|
||||
index 17b905f..06f4505 100644
|
||||
--- a/po/hu_HU.po
|
||||
+++ b/po/hu_HU.po
|
||||
@@ -943,6 +943,9 @@ msgstr "Felirat transzparenci
|
||||
@@ -950,6 +950,9 @@ msgstr "Felirat transzparenci
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Felirat hátterének transzparenciája"
|
||||
|
||||
@ -352,10 +458,10 @@ index a17b209..2f70812 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/it_IT.po b/po/it_IT.po
|
||||
index 89d4237..5a055b2 100644
|
||||
index 501300e..e0227d3 100644
|
||||
--- a/po/it_IT.po
|
||||
+++ b/po/it_IT.po
|
||||
@@ -947,6 +947,9 @@ msgstr "Trasparenza sottotitoli"
|
||||
@@ -954,6 +954,9 @@ msgstr "Trasparenza sottotitoli"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Trasparenza sfondo sottotitoli"
|
||||
|
||||
@ -366,10 +472,10 @@ index 89d4237..5a055b2 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/lt_LT.po b/po/lt_LT.po
|
||||
index 02465e6..8b5d996 100644
|
||||
index 6cb1faa..4efc707 100644
|
||||
--- a/po/lt_LT.po
|
||||
+++ b/po/lt_LT.po
|
||||
@@ -940,6 +940,9 @@ msgstr "Subtitrų priekinio vaizdo permatomumas"
|
||||
@@ -947,6 +947,9 @@ msgstr "Subtitrų fonto permatomumas"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Subtitrų fono permatomumas"
|
||||
|
||||
@ -380,10 +486,10 @@ index 02465e6..8b5d996 100644
|
||||
msgstr "Konverteris (LNB)"
|
||||
|
||||
diff --git a/po/nl_NL.po b/po/nl_NL.po
|
||||
index f570337..73a02b3 100644
|
||||
index ae2b85e..34a71e9 100644
|
||||
--- a/po/nl_NL.po
|
||||
+++ b/po/nl_NL.po
|
||||
@@ -944,6 +944,9 @@ msgstr "Transparantie voorgrond ondertiteling"
|
||||
@@ -951,6 +951,9 @@ msgstr "Transparantie voorgrond ondertiteling"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Transparantie achtergrond ondertiteling"
|
||||
|
||||
@ -394,10 +500,10 @@ index f570337..73a02b3 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/nn_NO.po b/po/nn_NO.po
|
||||
index 2f40cfe..0934c9a 100644
|
||||
index 8ec8dfb..9c129ee 100644
|
||||
--- a/po/nn_NO.po
|
||||
+++ b/po/nn_NO.po
|
||||
@@ -941,6 +941,9 @@ msgstr ""
|
||||
@@ -948,6 +948,9 @@ msgstr ""
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr ""
|
||||
|
||||
@ -408,10 +514,10 @@ index 2f40cfe..0934c9a 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/pl_PL.po b/po/pl_PL.po
|
||||
index 9620e1b..39057fd 100644
|
||||
index a5c1b47..9645eca 100644
|
||||
--- a/po/pl_PL.po
|
||||
+++ b/po/pl_PL.po
|
||||
@@ -941,6 +941,9 @@ msgstr "Prze
|
||||
@@ -948,6 +948,9 @@ msgstr "Prze
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Prze¼rocze podtytu³ów: T³o"
|
||||
|
||||
@ -422,12 +528,12 @@ index 9620e1b..39057fd 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/pt_PT.po b/po/pt_PT.po
|
||||
index 0510d9d..3bea1f1 100644
|
||||
index c443312..3c108ea 100644
|
||||
--- a/po/pt_PT.po
|
||||
+++ b/po/pt_PT.po
|
||||
@@ -940,6 +940,9 @@ msgstr "Transpar
|
||||
@@ -948,6 +948,9 @@ msgstr "Transpar
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Transparência de background das legendas"
|
||||
msgstr "Transparência de fundo das legendas"
|
||||
|
||||
+msgid "Setup.DVB$Enable teletext support"
|
||||
+msgstr ""
|
||||
@ -436,10 +542,10 @@ index 0510d9d..3bea1f1 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/ro_RO.po b/po/ro_RO.po
|
||||
index e0a2119..1d4a412 100644
|
||||
index f8c5a1e..35ec9ec 100644
|
||||
--- a/po/ro_RO.po
|
||||
+++ b/po/ro_RO.po
|
||||
@@ -943,6 +943,9 @@ msgstr "Transparen
|
||||
@@ -950,6 +950,9 @@ msgstr "Transparen
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Transparenþa fundalului subtitrãrii"
|
||||
|
||||
@ -450,10 +556,10 @@ index e0a2119..1d4a412 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/ru_RU.po b/po/ru_RU.po
|
||||
index 889b98b..89029e1 100644
|
||||
index e683b8b..b90e565 100644
|
||||
--- a/po/ru_RU.po
|
||||
+++ b/po/ru_RU.po
|
||||
@@ -941,6 +941,9 @@ msgstr "
|
||||
@@ -948,6 +948,9 @@ msgstr "
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "¿àÞ×àÐçÝÞáâì äÞÝÐ áãÑâØâàÞÒ"
|
||||
|
||||
@ -464,10 +570,10 @@ index 889b98b..89029e1 100644
|
||||
msgstr "ºÞÝÒÕàâÕà"
|
||||
|
||||
diff --git a/po/sk_SK.po b/po/sk_SK.po
|
||||
index 129fad3..eff0bd1 100644
|
||||
index 46edef5..aabb641 100644
|
||||
--- a/po/sk_SK.po
|
||||
+++ b/po/sk_SK.po
|
||||
@@ -941,6 +941,9 @@ msgstr "Prieh
|
||||
@@ -947,6 +947,9 @@ msgstr "Prieh
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Priehµadnos» pozadia titulkov"
|
||||
|
||||
@ -478,10 +584,10 @@ index 129fad3..eff0bd1 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/sl_SI.po b/po/sl_SI.po
|
||||
index 9f1e806..7f2bdd7 100644
|
||||
index 89c6923..8ef4387 100644
|
||||
--- a/po/sl_SI.po
|
||||
+++ b/po/sl_SI.po
|
||||
@@ -941,6 +941,9 @@ msgstr "Transparentnost podnapisov"
|
||||
@@ -948,6 +948,9 @@ msgstr "Transparentnost podnapisov"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Transparentnost ozadja podnapisov"
|
||||
|
||||
@ -492,10 +598,10 @@ index 9f1e806..7f2bdd7 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/sv_SE.po b/po/sv_SE.po
|
||||
index e9d39dd..9c366d2 100644
|
||||
index 150f95e..020c64d 100644
|
||||
--- a/po/sv_SE.po
|
||||
+++ b/po/sv_SE.po
|
||||
@@ -943,6 +943,9 @@ msgstr "Transparent f
|
||||
@@ -950,6 +950,9 @@ msgstr "Transparent f
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Transparent bakgrund textremsa"
|
||||
|
||||
@ -506,10 +612,10 @@ index e9d39dd..9c366d2 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/tr_TR.po b/po/tr_TR.po
|
||||
index 9acd1c1..50a6295 100644
|
||||
index 194943b..338c649 100644
|
||||
--- a/po/tr_TR.po
|
||||
+++ b/po/tr_TR.po
|
||||
@@ -940,6 +940,9 @@ msgstr "Altyaz
|
||||
@@ -947,6 +947,9 @@ msgstr "Altyaz
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "Altyazý arka þeffaflýk"
|
||||
|
||||
@ -520,10 +626,10 @@ index 9acd1c1..50a6295 100644
|
||||
msgstr "LNB"
|
||||
|
||||
diff --git a/po/uk_UA.po b/po/uk_UA.po
|
||||
index b62fca7..25e7095 100644
|
||||
index 433ec70..c0a7947 100644
|
||||
--- a/po/uk_UA.po
|
||||
+++ b/po/uk_UA.po
|
||||
@@ -940,6 +940,9 @@ msgstr "ПрозоріÑ<E28093>Ñ‚ÑŒ переднього плану Ñ<>убтитрів"
|
||||
@@ -947,6 +947,9 @@ msgstr "ПрозоріÑ<E28093>Ñ‚ÑŒ переднього плану Ñ<>убтитрів"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "ПрозоріÑ<E28093>Ñ‚ÑŒ заднього плану Ñ<>убтитрів"
|
||||
|
||||
@ -534,10 +640,10 @@ index b62fca7..25e7095 100644
|
||||
msgstr "Конвертер"
|
||||
|
||||
diff --git a/po/zh_CN.po b/po/zh_CN.po
|
||||
index bffa301..141c362 100644
|
||||
index c28fe88..8a594e3 100644
|
||||
--- a/po/zh_CN.po
|
||||
+++ b/po/zh_CN.po
|
||||
@@ -943,6 +943,9 @@ msgstr "å—幕å‰<C3A5>景é€<C3A9>明度"
|
||||
@@ -950,6 +950,9 @@ msgstr "å—幕å‰<C3A5>景é€<C3A9>明度"
|
||||
msgid "Setup.DVB$Subtitle background transparency"
|
||||
msgstr "å—幕背景é€<C3A9>明度"
|
||||
|
||||
@ -548,10 +654,10 @@ index bffa301..141c362 100644
|
||||
msgstr "切æ<E280A1>¢å™¨è®¾ç½®"
|
||||
|
||||
diff --git a/receiver.c b/receiver.c
|
||||
index 58dda78..ed28f1b 100644
|
||||
index 6a9ba04..a5c8967 100644
|
||||
--- a/receiver.c
|
||||
+++ b/receiver.c
|
||||
@@ -82,7 +82,8 @@ bool cReceiver::SetPids(const cChannel *Channel)
|
||||
@@ -81,7 +81,8 @@ bool cReceiver::SetPids(const cChannel *Channel)
|
||||
(Channel->Ppid() == Channel->Vpid() || AddPid(Channel->Ppid())) &&
|
||||
AddPids(Channel->Apids()) &&
|
||||
AddPids(Channel->Dpids()) &&
|
||||
@ -562,10 +668,10 @@ index 58dda78..ed28f1b 100644
|
||||
return true;
|
||||
}
|
||||
diff --git a/remux.c b/remux.c
|
||||
index 5206544..eea5c07 100644
|
||||
index 78ab294..4f9950f 100644
|
||||
--- a/remux.c
|
||||
+++ b/remux.c
|
||||
@@ -215,6 +215,29 @@ int cPatPmtGenerator::MakeSubtitlingDescriptor(uchar *Target, const char *Langua
|
||||
@@ -219,6 +219,29 @@ int cPatPmtGenerator::MakeSubtitlingDescriptor(uchar *Target, const char *Langua
|
||||
return i;
|
||||
}
|
||||
|
||||
@ -595,7 +701,7 @@ index 5206544..eea5c07 100644
|
||||
int cPatPmtGenerator::MakeLanguageDescriptor(uchar *Target, const char *Language)
|
||||
{
|
||||
int i = 0;
|
||||
@@ -302,6 +325,7 @@ void cPatPmtGenerator::GeneratePmt(const cChannel *Channel)
|
||||
@@ -306,6 +329,7 @@ void cPatPmtGenerator::GeneratePmt(const cChannel *Channel)
|
||||
if (Channel) {
|
||||
int Vpid = Channel->Vpid();
|
||||
int Ppid = Channel->Ppid();
|
||||
@ -603,7 +709,7 @@ index 5206544..eea5c07 100644
|
||||
uchar *p = buf;
|
||||
int i = 0;
|
||||
p[i++] = 0x02; // table id
|
||||
@@ -334,6 +358,10 @@ void cPatPmtGenerator::GeneratePmt(const cChannel *Channel)
|
||||
@@ -338,6 +362,10 @@ void cPatPmtGenerator::GeneratePmt(const cChannel *Channel)
|
||||
i += MakeStream(buf + i, 0x06, Channel->Spid(n));
|
||||
i += MakeSubtitlingDescriptor(buf + i, Channel->Slang(n), Channel->SubtitlingType(n), Channel->CompositionPageId(n), Channel->AncillaryPageId(n));
|
||||
}
|
||||
@ -614,7 +720,7 @@ index 5206544..eea5c07 100644
|
||||
|
||||
int sl = i - SectionLength - 2 + 4; // -2 = SectionLength storage, +4 = length of CRC
|
||||
buf[SectionLength] |= (sl >> 8) & 0x0F;
|
||||
@@ -407,6 +435,7 @@ void cPatPmtParser::Reset(void)
|
||||
@@ -411,6 +439,7 @@ void cPatPmtParser::Reset(void)
|
||||
pmtPid = -1;
|
||||
vpid = vtype = 0;
|
||||
ppid = 0;
|
||||
@ -622,7 +728,7 @@ index 5206544..eea5c07 100644
|
||||
}
|
||||
|
||||
void cPatPmtParser::ParsePat(const uchar *Data, int Length)
|
||||
@@ -492,11 +521,13 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length)
|
||||
@@ -496,11 +525,13 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length)
|
||||
int NumSpids = 0;
|
||||
vpid = vtype = 0;
|
||||
ppid = 0;
|
||||
@ -636,7 +742,7 @@ index 5206544..eea5c07 100644
|
||||
SI::PMT::Stream stream;
|
||||
for (SI::Loop::Iterator it; Pmt.streamLoop.getNext(stream, it); ) {
|
||||
dbgpatpmt(" stream type = %02X, pid = %d", stream.getStreamType(), stream.getPid());
|
||||
@@ -595,6 +626,28 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length)
|
||||
@@ -599,6 +630,28 @@ void cPatPmtParser::ParsePmt(const uchar *Data, int Length)
|
||||
spids[NumSpids]= 0;
|
||||
}
|
||||
break;
|
||||
@ -666,10 +772,10 @@ index 5206544..eea5c07 100644
|
||||
SI::ISO639LanguageDescriptor *ld = (SI::ISO639LanguageDescriptor *)d;
|
||||
dbgpatpmt(" '%s'", ld->languageCode);
|
||||
diff --git a/remux.h b/remux.h
|
||||
index 7b62187..6f816dc 100644
|
||||
index b882279..4af51e5 100644
|
||||
--- a/remux.h
|
||||
+++ b/remux.h
|
||||
@@ -171,6 +171,7 @@ protected:
|
||||
@@ -174,6 +174,7 @@ protected:
|
||||
int MakeStream(uchar *Target, uchar Type, int Pid);
|
||||
int MakeAC3Descriptor(uchar *Target, uchar Type);
|
||||
int MakeSubtitlingDescriptor(uchar *Target, const char *Language, uchar SubtitlingType, uint16_t CompositionPageId, uint16_t AncillaryPageId);
|
||||
@ -677,7 +783,7 @@ index 7b62187..6f816dc 100644
|
||||
int MakeLanguageDescriptor(uchar *Target, const char *Language);
|
||||
int MakeCRC(uchar *Target, const uchar *Data, int Length);
|
||||
void GeneratePmtPid(const cChannel *Channel);
|
||||
@@ -216,6 +217,7 @@ private:
|
||||
@@ -219,6 +220,7 @@ private:
|
||||
int vpid;
|
||||
int ppid;
|
||||
int vtype;
|
||||
@ -685,7 +791,7 @@ index 7b62187..6f816dc 100644
|
||||
int apids[MAXAPIDS + 1]; // list is zero-terminated
|
||||
int atypes[MAXAPIDS + 1]; // list is zero-terminated
|
||||
char alangs[MAXAPIDS][MAXLANGCODE2];
|
||||
@@ -228,6 +230,8 @@ private:
|
||||
@@ -231,6 +233,8 @@ private:
|
||||
uint16_t compositionPageIds[MAXSPIDS];
|
||||
uint16_t ancillaryPageIds[MAXSPIDS];
|
||||
bool updatePrimaryDevice;
|
||||
@ -694,7 +800,7 @@ index 7b62187..6f816dc 100644
|
||||
protected:
|
||||
int SectionLength(const uchar *Data, int Length) { return (Length >= 3) ? ((int(Data[1]) & 0x0F) << 8)| Data[2] : 0; }
|
||||
public:
|
||||
@@ -260,6 +264,9 @@ public:
|
||||
@@ -263,6 +267,9 @@ public:
|
||||
int Vtype(void) const { return vtype; }
|
||||
///< Returns the video stream type as defined by the current PMT, or 0 if no video
|
||||
///< stream type has been detected, yet.
|
||||
@ -704,7 +810,7 @@ index 7b62187..6f816dc 100644
|
||||
const int *Apids(void) const { return apids; }
|
||||
const int *Dpids(void) const { return dpids; }
|
||||
const int *Spids(void) const { return spids; }
|
||||
@@ -274,6 +281,8 @@ public:
|
||||
@@ -277,6 +284,8 @@ public:
|
||||
uchar SubtitlingType(int i) const { return (0 <= i && i < MAXSPIDS) ? subtitlingTypes[i] : uchar(0); }
|
||||
uint16_t CompositionPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? compositionPageIds[i] : uint16_t(0); }
|
||||
uint16_t AncillaryPageId(int i) const { return (0 <= i && i < MAXSPIDS) ? ancillaryPageIds[i] : uint16_t(0); }
|
||||
@ -714,19 +820,18 @@ index 7b62187..6f816dc 100644
|
||||
|
||||
// TS to PES converter:
|
||||
diff --git a/vdr.5 b/vdr.5
|
||||
index 68711b5..9b8ed05 100644
|
||||
index c46a2bf..96e142a 100644
|
||||
--- a/vdr.5
|
||||
+++ b/vdr.5
|
||||
@@ -214,6 +214,13 @@ if there is an audio type.
|
||||
.TP
|
||||
.B TPID
|
||||
The teletext PID.
|
||||
@@ -225,6 +225,12 @@ by an '=' sign, as in
|
||||
|
||||
.B ...:201;2001=deu,2002=eng:...
|
||||
|
||||
+Manual teletext subtitling pages can be defined separated by a '+' sign.
|
||||
+The pages (separated by commas) can contain language codes, delimited by a '='
|
||||
+sign, as in
|
||||
+
|
||||
+Fixed teletext subtitling pages can be defined separated by a semicolon.
|
||||
+The pages (separated by commas) can contain ISO 639 language codes, delimited
|
||||
+by a '=' sign, as in
|
||||
+
|
||||
+.B ...:2001;150=deu,151=fin:...
|
||||
+.B ...:201+150=deu,151=fin;2001,2002:...
|
||||
+
|
||||
.TP
|
||||
.B Conditional access
|
56
multimedia/vdr/files/vdr-1.7.21-ttxtsubs.patch-2
Normal file
56
multimedia/vdr/files/vdr-1.7.21-ttxtsubs.patch-2
Normal file
@ -0,0 +1,56 @@
|
||||
diff --git a/pat.c b/pat.c
|
||||
index b7493ec..9262491 100644
|
||||
--- a/pat.c
|
||||
+++ b/pat.c
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "libsi/section.h"
|
||||
#include "libsi/descriptor.h"
|
||||
#include "thread.h"
|
||||
+#include "vdrttxtsubshooks.h"
|
||||
|
||||
#define PMT_SCAN_TIMEOUT 10 // seconds
|
||||
|
||||
@@ -347,6 +348,8 @@ void cPatFilter::Process(u_short Pid, u_
|
||||
char DLangs[MAXDPIDS][MAXLANGCODE2] = { "" };
|
||||
char SLangs[MAXSPIDS][MAXLANGCODE2] = { "" };
|
||||
int Tpid = 0;
|
||||
+ tTeletextSubtitlePage TeletextSubtitlePages[MAXTXTPAGES];
|
||||
+ int NumTPages = 0;
|
||||
int NumApids = 0;
|
||||
int NumDpids = 0;
|
||||
int NumSpids = 0;
|
||||
@@ -438,8 +441,21 @@ void cPatFilter::Process(u_short Pid, u_
|
||||
NumSpids++;
|
||||
}
|
||||
break;
|
||||
- case SI::TeletextDescriptorTag:
|
||||
+ case SI::TeletextDescriptorTag: {
|
||||
Tpid = esPid;
|
||||
+ SI::TeletextDescriptor *sd = (SI::TeletextDescriptor *)d;
|
||||
+ SI::TeletextDescriptor::Teletext ttxt;
|
||||
+ for (SI::Loop::Iterator it; sd->teletextLoop.getNext(ttxt, it); ) {
|
||||
+ bool isSubtitlePage = (ttxt.getTeletextType() == 0x02) || (ttxt.getTeletextType() == 0x05);
|
||||
+ if ((NumTPages < MAXTXTPAGES) && ttxt.languageCode[0] && isSubtitlePage) {
|
||||
+ strn0cpy(TeletextSubtitlePages[NumTPages].ttxtLanguage, I18nNormalizeLanguageCode(ttxt.languageCode), MAXLANGCODE1);
|
||||
+ TeletextSubtitlePages[NumTPages].ttxtPage = ttxt.getTeletextPageNumber();
|
||||
+ TeletextSubtitlePages[NumTPages].ttxtMagazine = ttxt.getTeletextMagazineNumber();
|
||||
+ TeletextSubtitlePages[NumTPages].ttxtType = ttxt.getTeletextType();
|
||||
+ NumTPages++;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
break;
|
||||
case SI::ISO639LanguageDescriptorTag: {
|
||||
SI::ISO639LanguageDescriptor *ld = (SI::ISO639LanguageDescriptor *)d;
|
||||
@@ -541,6 +557,11 @@ void cPatFilter::Process(u_short Pid, u_
|
||||
}
|
||||
if (Setup.UpdateChannels >= 2) {
|
||||
Channel->SetPids(Vpid, Ppid, Vtype, Apids, Atypes, ALangs, Dpids, Dtypes, DLangs, Spids, SLangs, Tpid);
|
||||
+ if (NumTPages < MAXTXTPAGES) {
|
||||
+ int manualPageNumber = cVDRTtxtsubsHookListener::Hook()->ManualPageNumber(Channel);
|
||||
+ if (manualPageNumber)
|
||||
+ TeletextSubtitlePages[NumTPages++] = tTeletextSubtitlePage(manualPageNumber);
|
||||
+ }
|
||||
if (!cSource::IsType(Channel->Source(), 'I'))
|
||||
Channel->SetCaIds(CaDescriptors->CaIds());
|
||||
Channel->SetSubtitlingDescriptors(SubtitlingTypes, CompositionPageIds, AncillaryPageIds);
|
40
multimedia/vdr/files/vdr-waitdvb.in
Normal file
40
multimedia/vdr/files/vdr-waitdvb.in
Normal file
@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD: /tmp/pcvs/ports/multimedia/vdr/files/vdr-waitdvb.in,v 1.1 2012-01-21 17:32:50 nox Exp $
|
||||
#
|
||||
|
||||
command="%%PREFIX%%/bin/vdr"
|
||||
|
||||
echo -n "vdr: waiting for dvb nodes: "
|
||||
i=0
|
||||
while true
|
||||
do
|
||||
ndvb=$(ls /dev/dvb/adapter*/frontend* 2>/dev/null|wc -l|tr -d ' ')
|
||||
if [ $ndvb -gt 0 ]; then
|
||||
break
|
||||
fi
|
||||
if [ $i -ge 60 ]; then
|
||||
break
|
||||
fi
|
||||
i=$((i + 1))
|
||||
sleep 1
|
||||
echo -n "."
|
||||
done
|
||||
|
||||
i=0
|
||||
while true
|
||||
do
|
||||
sleep 2
|
||||
nndvb=$(ls /dev/dvb/adapter*/frontend* 2>/dev/null|wc -l|tr -d ' ')
|
||||
echo -n " $nndvb"
|
||||
if [ $nndvb -eq $ndvb ]; then
|
||||
break
|
||||
fi
|
||||
if [ $i -ge 30 ]; then
|
||||
break
|
||||
fi
|
||||
i=$((i + 1))
|
||||
done
|
||||
echo .
|
||||
|
||||
exec "$command" "$@"
|
@ -24,11 +24,23 @@
|
||||
name=vdr
|
||||
rcvar=vdr_enable
|
||||
|
||||
command="%%PREFIX%%/bin/vdr"
|
||||
command_args="-d"
|
||||
|
||||
load_rc_config ${name}
|
||||
: ${vdr_enable="NO"}
|
||||
: ${vdr_chdir="%%VIDEODIR%%"}
|
||||
: ${vdr_waitdvb="YES"}
|
||||
|
||||
command="%%PREFIX%%/bin/vdr"
|
||||
procname="$command"
|
||||
command_args="-d"
|
||||
|
||||
start_precmd="${name}_prestart"
|
||||
|
||||
vdr_prestart()
|
||||
{
|
||||
if checkyesno "${name}_waitdvb"; then
|
||||
command="/usr/sbin/daemon"
|
||||
rc_flags="-f %%PREFIX%%/bin/vdr-waitdvb $rc_flags"
|
||||
fi
|
||||
}
|
||||
|
||||
run_rc_command "$1"
|
||||
|
@ -1,14 +1,16 @@
|
||||
bin/svdrpsend.pl
|
||||
bin/svdrpsend
|
||||
bin/vdr
|
||||
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
|
||||
bin/vdr-waitdvb
|
||||
lib/vdr/libvdr-dvbsddevice.so.1.7.22
|
||||
lib/vdr/libvdr-svcsvr.so.1.7.22
|
||||
lib/vdr/libvdr-svccli.so.1.7.22
|
||||
lib/vdr/libvdr-status.so.1.7.22
|
||||
lib/vdr/libvdr-skincurses.so.1.7.22
|
||||
lib/vdr/libvdr-pictures.so.1.7.22
|
||||
lib/vdr/libvdr-osddemo.so.1.7.22
|
||||
lib/vdr/libvdr-hello.so.1.7.22
|
||||
lib/vdr/libvdr-svdrpdemo.so.1.7.22
|
||||
libdata/pkgconfig/vdr.pc
|
||||
%%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
|
||||
@ -149,6 +151,9 @@ etc/vdr/diseqc.conf.sample
|
||||
@unexec if cmp -s %D/etc/vdr/keymacros.conf.sample %D/etc/vdr/keymacros.conf; then rm -f %D/etc/vdr/keymacros.conf; fi
|
||||
etc/vdr/keymacros.conf.sample
|
||||
@exec if [ ! -f %D/etc/vdr/keymacros.conf ] ; then cp -p %D/%F %B/keymacros.conf; fi
|
||||
@unexec if cmp -s %D/etc/vdr/scr.conf.sample %D/etc/vdr/scr.conf; then rm -f %D/etc/vdr/scr.conf; fi
|
||||
etc/vdr/scr.conf.sample
|
||||
@exec if [ ! -f %D/etc/vdr/scr.conf ] ; then cp -p %D/%F %B/scr.conf; fi
|
||||
@unexec if cmp -s %D/etc/vdr/sources.conf.sample %D/etc/vdr/sources.conf; then rm -f %D/etc/vdr/sources.conf; fi
|
||||
etc/vdr/sources.conf.sample
|
||||
@exec if [ ! -f %D/etc/vdr/sources.conf ] ; then cp -p %D/%F %B/sources.conf; fi
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
PORTNAME= vdr-plugin-live
|
||||
PORTVERSION= 0.2.0s20110303
|
||||
PORTREVISION= 5
|
||||
PORTREVISION= 6
|
||||
CATEGORIES= www multimedia
|
||||
MASTER_SITES= http://live.vdr-developer.org/downloads/:release \
|
||||
LOCAL/nox/:snapshot
|
||||
|
@ -1,4 +1,4 @@
|
||||
lib/vdr/libvdr-live.so.1.7.19
|
||||
lib/vdr/libvdr-live.so.1.7.22
|
||||
etc/vdr/plugins/live/css/DatePicker.css
|
||||
etc/vdr/plugins/live/css/siteprefs.css
|
||||
etc/vdr/plugins/live/img/active.png
|
||||
|
@ -6,8 +6,7 @@
|
||||
#
|
||||
|
||||
PORTNAME= vdradmin-am
|
||||
PORTVERSION= 3.6.8
|
||||
PORTREVISION= 1
|
||||
PORTVERSION= 3.6.9
|
||||
CATEGORIES= www
|
||||
MASTER_SITES= http://andreas.vdr-developer.org/vdradmin-am/download/
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (vdr/vdradmin-am-3.6.8.tar.bz2) = 71f365019741c3e7192f3342d30e550e0f52c77fa687691b0c239ce5859b3aaf
|
||||
SIZE (vdr/vdradmin-am-3.6.8.tar.bz2) = 556528
|
||||
SHA256 (vdr/vdradmin-am-3.6.9.tar.bz2) = 5f0421ca0ea2b4c7669d5332d43b04af8b0c40d2964dd152a265c18f4d7f2715
|
||||
SIZE (vdr/vdradmin-am-3.6.9.tar.bz2) = 562006
|
||||
|
Loading…
Reference in New Issue
Block a user