r826 - in vdr/vdr/trunk/debian: . patches
Thomas Schmidt
tschmidt at costa.debian.org
Tue Aug 9 19:21:09 UTC 2005
Author: tschmidt
Date: 2005-08-09 19:21:08 +0000 (Tue, 09 Aug 2005)
New Revision: 826
Removed:
vdr/vdr/trunk/debian/patches/13_remote.dpatch
Modified:
vdr/vdr/trunk/debian/changelog
vdr/vdr/trunk/debian/control
vdr/vdr/trunk/debian/patches/00list
vdr/vdr/trunk/debian/patches/10_dd-record-option.dpatch
vdr/vdr/trunk/debian/patches/15_dvbplayer.dpatch
vdr/vdr/trunk/debian/patches/16_dvbspu.dpatch
Log:
vdr: * New Upstream Release 1.3.28
* Use ${misc:Depends} to depend on debconf in vdr-dev
Modified: vdr/vdr/trunk/debian/changelog
===================================================================
--- vdr/vdr/trunk/debian/changelog 2005-08-07 21:25:49 UTC (rev 825)
+++ vdr/vdr/trunk/debian/changelog 2005-08-09 19:21:08 UTC (rev 826)
@@ -1,13 +1,18 @@
-vdr (1.3.27-2) UNRELEASED; urgency=low
+vdr (1.3.28-1) UNRELEASED; urgency=low
* NOT RELEASED YET
* Thomas Schmidt <tschmidt at debian.org>
- - vdr-dev: depend on debhelper, dvb-dev (>= 1.0.0) |
+ - New upstream release
+ + Removed 13_remote.dpatch
+ + Updated 10_dd-record-option.dpatch
+ + Updated 15_dvbplayer.dpatch
+ + Updated 16_dvbspu.dpatch
+ - vdr-dev: depend on ${misc:Depends}, dvb-dev (>= 1.0.0) |
linux-kernel-headers (>=2.5.999-test7-bk-6)
- vdr-dev: suggests dh-make
- -- Debian VDR Team <pkg-vdr-dvb-devel at lists.alioth.debian.org> Thu, 30 Jun 2005 11:19:19 +0200
+ -- Debian VDR Team <pkg-vdr-dvb-devel at lists.alioth.debian.org> Tue, 9 Aug 2005 20:45:37 +0200
vdr (1.3.27-1) unstable; urgency=low
Modified: vdr/vdr/trunk/debian/control
===================================================================
--- vdr/vdr/trunk/debian/control 2005-08-07 21:25:49 UTC (rev 825)
+++ vdr/vdr/trunk/debian/control 2005-08-09 19:21:08 UTC (rev 826)
@@ -30,7 +30,7 @@
Package: vdr-dev
Architecture: all
-Depends: debhelper, dvb-dev (>= 1.0.0) | linux-kernel-headers (>=2.5.999-test7-bk-6)
+Depends: ${misc:Depends}, dvb-dev (>= 1.0.0) | linux-kernel-headers (>=2.5.999-test7-bk-6)
Suggests: dh-make
Description: Video Disk Recorder for DVB cards
Video Disk Recorder (VDR) is a digital sat-receiver program using
Modified: vdr/vdr/trunk/debian/patches/00list
===================================================================
--- vdr/vdr/trunk/debian/patches/00list 2005-08-07 21:25:49 UTC (rev 825)
+++ vdr/vdr/trunk/debian/patches/00list 2005-08-09 19:21:08 UTC (rev 826)
@@ -8,7 +8,6 @@
08_security_CAN-2005-0071
09_sort_options
10_dd-record-option
-13_remote
14_update-resume
15_dvbplayer
16_dvbspu
Modified: vdr/vdr/trunk/debian/patches/10_dd-record-option.dpatch
===================================================================
--- vdr/vdr/trunk/debian/patches/10_dd-record-option.dpatch 2005-08-07 21:25:49 UTC (rev 825)
+++ vdr/vdr/trunk/debian/patches/10_dd-record-option.dpatch 2005-08-09 19:21:08 UTC (rev 826)
@@ -7,9 +7,9 @@
## DP: dvd-plugin)
@DPATCH@
-diff -urNad vdr-1.3.27/config.c /tmp/dpep.zcLqt8/vdr-1.3.27/config.c
---- vdr-1.3.27/config.c 2005-06-25 22:54:20.595508664 +0200
-+++ /tmp/dpep.zcLqt8/vdr-1.3.27/config.c 2005-06-25 22:54:21.032442240 +0200
+diff -urNad --exclude=CVS --exclude=.svn ./config.c /tmp/dpep-work.8JUm9E/vdr-1.3.28/config.c
+--- ./config.c 2005-08-07 20:48:05.000000000 +0200
++++ /tmp/dpep-work.8JUm9E/vdr-1.3.28/config.c 2005-08-07 20:48:05.000000000 +0200
@@ -364,6 +364,7 @@
VideoDisplayFormat = 1;
VideoFormat = 0;
@@ -26,7 +26,7 @@
else if (!strcasecmp(Name, "UseDolbyDigital")) UseDolbyDigital = atoi(Value);
else if (!strcasecmp(Name, "ChannelInfoPos")) ChannelInfoPos = atoi(Value);
else if (!strcasecmp(Name, "ChannelInfoTime")) ChannelInfoTime = atoi(Value);
-@@ -586,6 +588,7 @@
+@@ -587,6 +589,7 @@
Store("VideoDisplayFormat", VideoDisplayFormat);
Store("VideoFormat", VideoFormat);
Store("UpdateChannels", UpdateChannels);
@@ -34,9 +34,9 @@
Store("UseDolbyDigital", UseDolbyDigital);
Store("ChannelInfoPos", ChannelInfoPos);
Store("ChannelInfoTime", ChannelInfoTime);
-diff -urNad vdr-1.3.27/config.h /tmp/dpep.zcLqt8/vdr-1.3.27/config.h
---- vdr-1.3.27/config.h 2005-06-25 22:54:20.595508664 +0200
-+++ /tmp/dpep.zcLqt8/vdr-1.3.27/config.h 2005-06-25 22:54:21.033442088 +0200
+diff -urNad --exclude=CVS --exclude=.svn ./config.h /tmp/dpep-work.8JUm9E/vdr-1.3.28/config.h
+--- ./config.h 2005-08-07 20:48:05.000000000 +0200
++++ /tmp/dpep-work.8JUm9E/vdr-1.3.28/config.h 2005-08-07 20:48:05.000000000 +0200
@@ -258,6 +258,7 @@
int VideoDisplayFormat;
int VideoFormat;
@@ -45,9 +45,9 @@
int UseDolbyDigital;
int ChannelInfoPos;
int ChannelInfoTime;
-diff -urNad vdr-1.3.27/i18n.c /tmp/dpep.zcLqt8/vdr-1.3.27/i18n.c
---- vdr-1.3.27/i18n.c 2005-06-18 12:42:31.000000000 +0200
-+++ /tmp/dpep.zcLqt8/vdr-1.3.27/i18n.c 2005-06-25 22:54:21.036441632 +0200
+diff -urNad --exclude=CVS --exclude=.svn ./i18n.c /tmp/dpep-work.8JUm9E/vdr-1.3.28/i18n.c
+--- ./i18n.c 2005-08-06 18:09:44.000000000 +0200
++++ /tmp/dpep-work.8JUm9E/vdr-1.3.28/i18n.c 2005-08-07 20:50:59.000000000 +0200
@@ -3241,26 +3241,47 @@
"TV külgsuhe",
"Video format",
@@ -84,6 +84,7 @@
+ "",//TODO
+ "",//TODO
+ "",//TODO
++ "",//TODO
"",//TODO
"",//TODO
- "Dolby Digital gebruiken",
@@ -99,15 +100,15 @@
"",//TODO
"",//TODO
- "²ÚÛîçØâì Dolby Digital",
- "",//TODO
+- "Koristi Dolby Digital",
- "Dolby Digital kasutamine",
- "Anvend Dolby Digital",
},
{ "Setup.DVB$Update channels",
"Kanäle aktualisieren",
-diff -urNad vdr-1.3.27/menu.c /tmp/dpep.zcLqt8/vdr-1.3.27/menu.c
---- vdr-1.3.27/menu.c 2005-06-25 22:54:20.804476896 +0200
-+++ /tmp/dpep.zcLqt8/vdr-1.3.27/menu.c 2005-06-25 22:54:21.038441328 +0200
+diff -urNad --exclude=CVS --exclude=.svn ./menu.c /tmp/dpep-work.8JUm9E/vdr-1.3.28/menu.c
+--- ./menu.c 2005-08-07 20:48:05.000000000 +0200
++++ /tmp/dpep-work.8JUm9E/vdr-1.3.28/menu.c 2005-08-07 20:48:05.000000000 +0200
@@ -2074,7 +2074,8 @@
Add(new cMenuEditBoolItem(tr("Setup.DVB$Video format"), &data.VideoFormat, "4:3", "16:9"));
if (data.VideoFormat == 0)
@@ -118,9 +119,9 @@
Add(new cMenuEditStraItem(tr("Setup.DVB$Update channels"), &data.UpdateChannels, 5, updateChannelsTexts));
Add(new cMenuEditIntItem( tr("Setup.DVB$Audio languages"), &numAudioLanguages, 0, I18nNumLanguages));
for (int i = 0; i < numAudioLanguages; i++)
-diff -urNad vdr-1.3.27/recorder.c /tmp/dpep.zcLqt8/vdr-1.3.27/recorder.c
---- vdr-1.3.27/recorder.c 2005-01-16 13:53:17.000000000 +0100
-+++ /tmp/dpep.zcLqt8/vdr-1.3.27/recorder.c 2005-06-25 22:54:21.038441328 +0200
+diff -urNad --exclude=CVS --exclude=.svn ./recorder.c /tmp/dpep-work.8JUm9E/vdr-1.3.28/recorder.c
+--- ./recorder.c 2005-01-16 13:53:17.000000000 +0100
++++ /tmp/dpep-work.8JUm9E/vdr-1.3.28/recorder.c 2005-08-07 20:48:05.000000000 +0200
@@ -128,7 +128,7 @@
}
Deleted: vdr/vdr/trunk/debian/patches/13_remote.dpatch
===================================================================
--- vdr/vdr/trunk/debian/patches/13_remote.dpatch 2005-08-07 21:25:49 UTC (rev 825)
+++ vdr/vdr/trunk/debian/patches/13_remote.dpatch 2005-08-09 19:21:08 UTC (rev 826)
@@ -1,119 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## 01_remote.dpatch by <ds at flibble.youmustbejoking.demon.co.uk>
-##
-## All lines beginning with `## DP:' are a description of the patch.
-## DP: Consolidate input device handling.
-
- at DPATCH@
-diff -urNad vdr-1.3.23/Makefile /tmp/dpep.cA36ZO/vdr-1.3.23/Makefile
---- vdr-1.3.23/Makefile 2005-04-09 21:19:37.881585136 +0200
-+++ /tmp/dpep.cA36ZO/vdr-1.3.23/Makefile 2005-04-09 21:19:38.185538928 +0200
-@@ -61,11 +61,10 @@
- OSDFONT_ISO8859_15 = -adobe-helvetica-medium-r-normal--23-*-100-100-p-*-iso8859-15
- SMLFONT_ISO8859_15 = -adobe-helvetica-medium-r-normal--18-*-100-100-p-*-iso8859-15
-
--ifndef NO_KBD
--DEFINES += -DREMOTE_KBD
--endif
-+REMOTE_LIRC ?= /dev/lircd
-+REMOTE_RCU ?= /dev/ttyS1
-
--DEFINES += -DREMOTE_$(REMOTE)
-+DEFINES += -DREMOTE_RCU=\"$(REMOTE_RCU)\" -DREMOTE_LIRC=\"$(REMOTE_LIRC)\"
-
- DEFINES += -DCMD_SUBMENUS
- DEFINES += -D_GNU_SOURCE
-diff -urNad vdr-1.3.23/vdr.1 /tmp/dpep.cA36ZO/vdr-1.3.23/vdr.1
---- vdr-1.3.23/vdr.1 2004-12-19 10:36:25.000000000 +0100
-+++ /tmp/dpep.cA36ZO/vdr-1.3.23/vdr.1 2005-04-09 21:20:52.156293664 +0200
-@@ -46,7 +46,18 @@
- (default is to read them from the video directory).
- .TP
- .B \-d, \-\-daemon
--Run in daemon mode.
-+Run in daemon mode. (This implies \-\-no\-kbd.)
-+.TP
-+.B \-\-no\-kbd
-+Don't use the keyboard as an input device.
-+.TP
-+.BI \-\-lirc [=DEVICE]
-+If this option is present, vdr will use a LIRC remote control device.
-+If the device name is omitted, vdr uses \fI/dev/lircd\fR.
-+.TP
-+.BI \-\-rcu [=DEVICE]
-+If this option is present, vdr will use a serial port remote control device.
-+If the device name is omitted, vdr uses \fI/dev/ttyS1\fR.
- .TP
- .BI \-D\ num ,\ \-\-device= num
- Use only the given DVB device (\fInum\fR = 0, 1, 2...).
-diff -urNad vdr-1.3.23/vdr.c /tmp/dpep.cA36ZO/vdr-1.3.23/vdr.c
---- vdr-1.3.23/vdr.c 2005-04-09 21:19:37.951574496 +0200
-+++ /tmp/dpep.cA36ZO/vdr-1.3.23/vdr.c 2005-04-09 21:19:38.186538776 +0200
-@@ -229,6 +229,8 @@
- int WatchdogTimeout = DEFAULTWATCHDOG;
- const char *Terminal = NULL;
- const char *Shutdown = NULL;
-+ const char *rcu = NULL, *lirc = NULL;
-+ int kbd = 1;
- cPluginManager PluginManager(DEFAULTPLUGINDIR);
- const char* username = NULL;
- const char* groupname = NULL;
-@@ -256,6 +258,9 @@
- { "watchdog", required_argument, NULL, 'w' },
- { "user", required_argument, NULL, 'u' },
- { "group", required_argument, NULL, 'g' },
-+ { "no-kbd", no_argument, NULL, 'k'&31 },
-+ { "rcu", optional_argument, NULL, 'r'&31 },
-+ { "lirc", optional_argument, NULL, 'l'&31 },
- { NULL }
- };
-
-@@ -356,6 +361,15 @@
- break;
- case '!': IsAllowRootAnyway = true;
- break;
-+ case 'k'&31:
-+ kbd = 0;
-+ break;
-+ case 'r'&31:
-+ rcu = optarg ? : REMOTE_RCU;
-+ break;
-+ case 'l'&31:
-+ lirc = optarg ? : REMOTE_LIRC;
-+ break;
- default: return 2;
- }
- }
-@@ -418,6 +432,11 @@
- " seconds (default: %d); '0' disables the watchdog\n"
- " -u USER, --user=USER run as user USER instead of root\n"
- " -g GROUP, --group=GROUP use group GROUP instead of primary group of user\n"
-+ " --no-kbd don't use the keyboard as an input device\n"
-+ " --rcu[=PATH] use a remote control device, attached to PATH\n"
-+ " (default: " REMOTE_RCU ")\n"
-+ " --lirc[=PATH] use a LIRC remote control device, attached to PATH\n"
-+ " (default: " REMOTE_LIRC ")\n"
- "\n",
- DEFAULTEPGDATAFILENAME,
- DEFAULTPLUGINDIR,
-@@ -634,15 +653,12 @@
- cThemes::Load(Skins.Current()->Name(), Setup.OSDTheme, Skins.Current()->Theme());
-
- // Remote Controls:
--#if defined(REMOTE_RCU)
-- new cRcuRemote("/dev/ttyS1");
--#elif defined(REMOTE_LIRC)
-- new cLircRemote("/dev/lircd");
--#endif
--#if defined(REMOTE_KBD)
-- if (!DaemonMode && HasStdin)
-+ if (rcu)
-+ new cRcuRemote((char*)rcu);
-+ if (lirc)
-+ new cLircRemote((char*)lirc);
-+ if (!DaemonMode && HasStdin && kbd)
- new cKbdRemote;
--#endif
- Interface->LearnKeys();
-
- // External audio:
Modified: vdr/vdr/trunk/debian/patches/15_dvbplayer.dpatch
===================================================================
--- vdr/vdr/trunk/debian/patches/15_dvbplayer.dpatch 2005-08-07 21:25:49 UTC (rev 825)
+++ vdr/vdr/trunk/debian/patches/15_dvbplayer.dpatch 2005-08-09 19:21:08 UTC (rev 826)
@@ -1,21 +1,113 @@
#! /bin/sh /usr/share/dpatch/dpatch-run
-## 06_nissl_dvbplayer.dpatch by Reinhard Nissl <rnissl at gmx.de>
+## 15_dvbplayer.dpatch by Reinhard Nissl <rnissl at gmx.de>
##
## All lines beginning with `## DP:' are a description of the patch.
-## DP: send proper I-frames to the device
+## DP: Downloaded from: http://home.vrweb.de/~rnissl/
+## DP: Fixes VDR's recording replayer to send proper I-frames to a device.
+## DP: Without this patch it is very likely that incomplete I-frames are sent
+## DP: and therefore many I-frames will not be displayed by devices like
+## DP: vdr-xine or dxr3. This patch has a very positive effect on moving
+## DP: cutting marks and all fast trickspeed modes as well as slow motion
+## DP: rewind.
+## DP: NOTE: without this patch it is likely that xine disconnects from
+## DP: vdr-xine while moving cut marks.
@DPATCH@
-diff -urNad vdr-1.3.24/dvbplayer.c /tmp/dpep.Ctc0VI/vdr-1.3.24/dvbplayer.c
---- vdr-1.3.24/dvbplayer.c 2005-05-08 16:52:49.000000000 +0200
-+++ /tmp/dpep.Ctc0VI/vdr-1.3.24/dvbplayer.c 2005-05-09 20:31:45.721116992 +0200
-@@ -360,6 +360,94 @@
+diff -urNad --exclude=CVS --exclude=.svn ./dvbplayer.c /tmp/dpep-work.CvTof4/vdr-1.3.28/dvbplayer.c
+--- ./dvbplayer.c 2005-07-30 12:00:24.000000000 +0200
++++ /tmp/dpep-work.CvTof4/vdr-1.3.28/dvbplayer.c 2005-08-07 23:07:35.000000000 +0200
+@@ -360,6 +360,176 @@
}
}
-+static uchar *findStartCode(uchar *Data, int Length)
++// --- BEGIN fix for I frames -------------------------------------------
++//
++// Prior to the introduction of cVideoRepacker, VDR didn't start a new
++// PES packet when a new frame started. So, it was likely that the tail
++// of an I frame was at the beginning of the packet which started the
++// following B frame. Due to the organisation of VDR's index file, VDR
++// typically didn't read the tail of the I frame and therefore caused
++// softdevice plugins to not render such a frame as it was incomplete,
++// e. g. when moving cutting marks.
++//
++// The following code tries to fix incomplete I frames for recordings
++// made prior to the introdcution of cVideoRepacker, to be able to
++// edit cutting marks for example with softdevice plugins like vdr-xine.
++//
++
++static int analyzePesHeader(const uchar *Data, int Count, int &PesPayloadOffset, bool *ContinuationHeader = 0)
+{
++ if (Count < 7)
++ return -1; // too short
++
++ if ((Data[6] & 0xC0) == 0x80) { // MPEG 2
++ if (Count < 9)
++ return -1; // too short
++
++ PesPayloadOffset = 6 + 3 + Data[8];
++ if (Count < PesPayloadOffset)
++ return -1; // too short
++
++ if (ContinuationHeader)
++ *ContinuationHeader = ((Data[6] == 0x80) && !Data[7] && !Data[8]);
++
++ return 2; // MPEG 2
++ }
++
++ // check for MPEG 1 ...
++ PesPayloadOffset = 6;
++
++ // skip up to 16 stuffing bytes
++ for (int i = 0; i < 16; i++) {
++ if (Data[PesPayloadOffset] != 0xFF)
++ break;
++
++ if (Count <= ++PesPayloadOffset)
++ return -1; // too short
++ }
++
++ // skip STD_buffer_scale/size
++ if ((Data[PesPayloadOffset] & 0xC0) == 0x40) {
++ PesPayloadOffset += 2;
++
++ if (Count <= PesPayloadOffset)
++ return -1; // too short
++ }
++
++ if (ContinuationHeader)
++ *ContinuationHeader = false;
++
++ if ((Data[PesPayloadOffset] & 0xF0) == 0x20) {
++ // skip PTS only
++ PesPayloadOffset += 5;
++ }
++ else if ((Data[PesPayloadOffset] & 0xF0) == 0x30) {
++ // skip PTS and DTS
++ PesPayloadOffset += 10;
++ }
++ else if (Data[PesPayloadOffset] == 0x0F) {
++ // continuation header
++ PesPayloadOffset++;
++
++ if (ContinuationHeader)
++ *ContinuationHeader = true;
++ }
++ else
++ return 0; // unknown
++
++ if (Count < PesPayloadOffset)
++ return -1; // too short
++
++ return 1; // MPEG 1
++}
++
++static uchar *findStartCode(uchar *Data, int Length, int &PesPayloadOffset)
++{
+ uchar *limit = Data + Length;
-+ Data += 6 + 3 + Data[6 + 2] + 3; // move to video payload and skip 00 00 01
++ if (analyzePesHeader(Data, Length, PesPayloadOffset) <= 0)
++ return 0; // neither MPEG1 nor MPEG2
++
++ Data += PesPayloadOffset + 3; // move to video payload and skip 00 00 01
+ while (Data < limit) {
+ // possible start codes that appear before/after picture data
+ // 00 00 01 B3: sequence header code
@@ -32,47 +124,43 @@
+
+static void fixIFrameHead(uchar *Data, int Length)
+{
-+ uchar *p = findStartCode(Data, Length);
++ int pesPayloadOffset = 0;
++ uchar *p = findStartCode(Data, Length, pesPayloadOffset);
+ if (!p) {
+ esyslog("fixIframeHead: start code not found!\n");
+ return;
+ }
+
-+ Data += 6 + 3 + Data[6 + 2]; // move to video payload
++ Data += pesPayloadOffset; // move to video payload
+ if (Data < p)
+ memset(Data, 0, p - Data); // zero preceeding bytes
+}
+
-+static int fixIFrameTail(uchar *Data, int Length, bool StillImage)
++static int fixIFrameTail(uchar *Data, int Length)
+{
-+ uchar *p = findStartCode(Data, Length);
++ int pesPayloadOffset = 0;
++ uchar *p = findStartCode(Data, Length, pesPayloadOffset);
+ if (!p) {
+ esyslog("fixIframeTail: start code not found!\n");
+ return Length;
+ }
+
-+ if (StillImage) {
-+ // need to append sequence end code
-+ p[3] = 0xB7;
-+ p += 4;
-+ }
-+
+ // is this PES packet required?
-+ uchar *videoPayload = Data + 6 + 3 + Data[6 + 2];
++ uchar *videoPayload = Data + pesPayloadOffset;
+ if (videoPayload >= p)
+ return 0; // no
+
-+ // adjust PES payload size
-+ int payloadSize = (p - Data) - 6;
-+ Data[4] = payloadSize >> 8;
-+ Data[5] = payloadSize & 0xFF;
++ // adjust PES length
++ int lenPES = (p - Data);
++ Data[4] = (lenPES - 6) >> 8;
++ Data[5] = (lenPES - 6) & 0xFF;
+
-+ return payloadSize + 6;
++ return lenPES;
+}
+
+#define IPACKS 2048 // originally defined in remux.c
+
-+static void fixIFrame(uchar *Data, int &Length, bool StillImage)
++static void fixIFrame(uchar *Data, int &Length)
+{
+ int originalLength = Length - IPACKS; // by design
+ int done = 0;
@@ -90,7 +178,7 @@
+ if (0 == done) // first packet
+ fixIFrameHead(Data, bite);
+ else if (done >= originalLength) { // last packet
-+ Length = done + fixIFrameTail(Data, bite, StillImage);
++ Length = done + fixIFrameTail(Data, bite);
+ return;
+ }
+ }
@@ -100,37 +188,37 @@
+ }
+}
+
++// --- END fix for I frames ---------------------------------------------
++
void cDvbPlayer::Action(void)
{
uchar *b = NULL;
-@@ -395,6 +483,7 @@
- int FileOffset;
- int Index = index->GetNextIFrame(readIndex, playDir == pdForward, &FileNumber, &FileOffset, &Length, true);
+@@ -397,6 +567,7 @@
if (Index >= 0) {
-+ Length += IPACKS; // fixIFrame needs next video packet
if (!NextFile(FileNumber, FileOffset))
continue;
++ Length += IPACKS; // fixIFrame needs next video packet
}
-@@ -435,6 +524,8 @@
+ else {
+ // hit begin of recording: wait for device buffers to drain
+@@ -435,6 +606,8 @@
}
int r = nonBlockingFileReader->Read(replayFile, b, Length);
if (r > 0) {
+ if (playMode == pmFast || (playMode == pmSlow && playDir == pdBackward))
-+ fixIFrame(b, r, false);
++ fixIFrame(b, r);
readFrame = new cFrame(b, -r, ftUnknown, readIndex); // hands over b to the ringBuffer
b = NULL;
}
-@@ -666,11 +757,13 @@
+@@ -668,9 +841,11 @@
int FileOffset, Length;
Index = index->GetNextIFrame(Index, false, &FileNumber, &FileOffset, &Length);
if (Index >= 0 && NextFile(FileNumber, FileOffset) && Still) {
+ Length += IPACKS; // fixIFrame needs next video packet
- uchar b[MAXFRAMESIZE];
+ uchar b[MAXFRAMESIZE + 4 + 5 + 4];
int r = ReadFrame(replayFile, b, Length, sizeof(b));
if (r > 0) {
++ fixIFrame(b, r);
if (playMode == pmPause)
DevicePlay();
-+ fixIFrame(b, r, true);
- DeviceStillPicture(b, r);
- }
- playMode = pmStill;
+ // append sequence end code to get the image shown immediately with softdevices
Modified: vdr/vdr/trunk/debian/patches/16_dvbspu.dpatch
===================================================================
--- vdr/vdr/trunk/debian/patches/16_dvbspu.dpatch 2005-08-07 21:25:49 UTC (rev 825)
+++ vdr/vdr/trunk/debian/patches/16_dvbspu.dpatch 2005-08-09 19:21:08 UTC (rev 826)
@@ -5,19 +5,10 @@
## DP: SPU fixes (vdr-dvd)
@DPATCH@
-diff -urNad vdr-1.3.22/dvbspu.c /tmp/dpep.rB9LVD/vdr-1.3.22/dvbspu.c
---- vdr-1.3.22/dvbspu.c 2005-02-28 15:56:44.000000000 +0000
-+++ /tmp/dpep.rB9LVD/vdr-1.3.22/dvbspu.c 2005-02-28 15:56:45.000000000 +0000
-@@ -153,7 +153,7 @@
- setMin(minsize[colorid].x1, xp);
- setMin(minsize[colorid].y1, yp);
- setMax(minsize[colorid].x2, xp + len - 1);
-- setMax(minsize[colorid].y2, yp + len - 1);
-+ setMax(minsize[colorid].y2, yp);
- }
-
- static uint8_t getBits(uint8_t * &data, uint8_t & bitf)
-@@ -352,6 +352,20 @@
+diff -urNad --exclude=CVS --exclude=.svn ./dvbspu.c /tmp/dpep-work.B5kxnx/vdr-1.3.28/dvbspu.c
+--- ./dvbspu.c 2005-08-07 14:06:32.000000000 +0200
++++ /tmp/dpep-work.B5kxnx/vdr-1.3.28/dvbspu.c 2005-08-07 23:20:39.000000000 +0200
+@@ -336,6 +336,20 @@
return size;
}
@@ -38,7 +29,7 @@
void cDvbSpuDecoder::Draw(void)
{
if (!spubmp) {
-@@ -389,12 +403,16 @@
+@@ -366,12 +380,16 @@
}
if (bg || fg) {
More information about the pkg-vdr-dvb-changes
mailing list