summaryrefslogtreecommitdiff
path: root/remux.c
diff options
context:
space:
mode:
authorKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-04-27 18:00:00 +0200
committerKlaus Schmidinger <kls (at) cadsoft (dot) de>2003-04-27 18:00:00 +0200
commit0686038af36be65b666bce669957c4d94c13f409 (patch)
tree50c5bc80b5f49e0bc14b6846f1f53794c5da6f65 /remux.c
parent21a52ccb6d43cce35f7a381f55ea291195416f33 (diff)
downloadvdr-patch-lnbsharing-0686038af36be65b666bce669957c4d94c13f409.tar.gz
vdr-patch-lnbsharing-0686038af36be65b666bce669957c4d94c13f409.tar.bz2
Version 1.1.29vdr-1.1.29
- Fixed detecting broken connection to the LIRC daemon (thanks to Ludwig Nussel). - Now sending CA descriptors to the CAM in the same sequence as they were originally received (thanks to Stefan Huelswitt). - The PCR PID can now be set separately from the video PID. The syntax in the 'channels.conf' file is, for example, ...:164+17:..., where 164 is the video PID and 17 is the PCR PID. The separator is a '+' sign, not a comma or semicolon as with the audio PIDs, because this is not an alternate PID, but rather an additional, necessary PID. In order to use this feature you need a driver version dated 2003-04-27 or higher (setting the PCR PID didn't work in earlier versions). - Fixed deleting the last recording in the "Recordings" menu, which started pausing live video (thanks to Christoph Friederich for reporting this one). - Now setting the "broken link" flag for GOPs at the beginning of a new video sequence, which avoids artefacts when cutting (thanks to Stefan Huelswitt). - Removed the Mute() call from cDvbDevice::StillPicture() (suggested by Andreas Schultz). - Updated 'channels.conf.terr' for Berlin (thanks to Andreas Brachold). - Extended logging info when starting/stopping timers to show the channel number, start/stop time and the file name (suggested by Manuel Hartl). - Added a note regarding non-VDR files in the /videoX directories to INSTALL (suggested by Benjamin Harling). - Skipping keys that come in too fast from LIRC (thanks to Christian Jacobsen). - Avoiding short display of the main menu if a plugin displays its own OSD and is started through a user defined key macro (thanks to Andreas Mair for reporting this one). - Reduced the time to wait for EPG data when starting a recording to 3 seconds. - The new SVDRP command STAT can be used to request information about the disk usage (thanks to Thomas Koch). - Fixed faulty calculation of section length in eit.c (thanks to Teemu Rantanen).
Diffstat (limited to 'remux.c')
-rw-r--r--remux.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/remux.c b/remux.c
index 097b4a5..c2ded24 100644
--- a/remux.c
+++ b/remux.c
@@ -8,7 +8,7 @@
* the Linux DVB driver's 'tuxplayer' example and were rewritten to suit
* VDR's needs.
*
- * $Id: remux.c 1.14 2003/01/24 17:22:29 kls Exp $
+ * $Id: remux.c 1.15 2003/04/26 15:07:41 kls Exp $
*/
/* The calling interface of the 'cRemux::Process()' function is defined
@@ -621,6 +621,7 @@ XXX*/
else if (!synced) {
if (pt == I_FRAME) {
resultDelivered = i; // will drop everything before this position
+ SetBrokenLink(resultBuffer + i, l);
synced = true;
}
else {
@@ -667,3 +668,18 @@ XXX*/
return NULL; // no useful data found, wait for more
}
+void cRemux::SetBrokenLink(uchar *Data, int Length)
+{
+ if (Length > 9 && Data[0] == 0 && Data[1] == 0 && Data[2] == 1 && (Data[3] & VIDEO_STREAM_S) == VIDEO_STREAM_S) {
+ for (int i = Data[8] + 9; i < Length - 7; i++) { // +9 to skip video packet header
+ if (Data[i] == 0 && Data[i + 1] == 0 && Data[i + 2] == 1 && Data[i + 3] == 0xB8) {
+ if (!(Data[i + 7] & 0x40)) // set flag only if GOP is not closed
+ Data[i + 7] |= 0x20;
+ return;
+ }
+ }
+ dsyslog("SetBrokenLink: no GOP header found in video packet");
+ }
+ else
+ dsyslog("SetBrokenLink: no video packet in frame");
+}