diff options
-rw-r--r-- | HISTORY | 1 | ||||
-rw-r--r-- | dvbplayer.c | 4 | ||||
-rw-r--r-- | recording.h | 4 |
3 files changed, 5 insertions, 4 deletions
@@ -6036,3 +6036,4 @@ Video Disk Recorder Revision History - No longer checking for deleted recordings to be removed from the foreground thread, to avoid blocking the main loop for too long (thanks to Rolf Ahrenberg). - cDevice::PlayTs() now syncs on the TS packet sync bytes. +- Made MAXFRAMESIZE a multiple of TS_SIZE to avoid breaking up TS packets. diff --git a/dvbplayer.c b/dvbplayer.c index 9de0fca9..322d2ff0 100644 --- a/dvbplayer.c +++ b/dvbplayer.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: dvbplayer.c 2.11 2009/04/05 13:04:33 kls Exp $ + * $Id: dvbplayer.c 2.12 2009/04/13 11:10:50 kls Exp $ */ #include "dvbplayer.h" @@ -456,7 +456,7 @@ void cDvbPlayer::Action(void) eof = true; } else // allows replay even if the index file is missing - Length = MAXFRAMESIZE / TS_SIZE * TS_SIZE;// FIXME: use a linear ringbuffer in this case, and fix cDevice::PlayPes() + Length = MAXFRAMESIZE; if (Length == -1) Length = MAXFRAMESIZE; // this means we read up to EOF (see cIndex) else if (Length > MAXFRAMESIZE) { diff --git a/recording.h b/recording.h index 151e7602..50992ca3 100644 --- a/recording.h +++ b/recording.h @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: recording.h 2.5 2009/02/28 10:50:12 kls Exp $ + * $Id: recording.h 2.6 2009/04/13 11:10:50 kls Exp $ */ #ifndef __RECORDING_H @@ -207,7 +207,7 @@ public: }; // The maximum size of a single frame (up to HDTV 1920x1080): -#define MAXFRAMESIZE KILOBYTE(512) +#define MAXFRAMESIZE (KILOBYTE(512) / TS_SIZE * TS_SIZE) // multiple of TS_SIZE to avoid breaking up TS packets // The maximum file size is limited by the range that can be covered // with a 40 bit 'unsigned int', which is 1TB. The actual maximum value |