Made MAXFRAMESIZE a multiple of TS_SIZE to avoid breaking up TS packets

This commit is contained in:
Klaus Schmidinger 2009-04-13 11:12:54 +02:00
parent 3628bbbfa1
commit 27c061e449
3 changed files with 5 additions and 4 deletions

View File

@ -6036,3 +6036,4 @@ Video Disk Recorder Revision History
- No longer checking for deleted recordings to be removed from the foreground - 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). thread, to avoid blocking the main loop for too long (thanks to Rolf Ahrenberg).
- cDevice::PlayTs() now syncs on the TS packet sync bytes. - cDevice::PlayTs() now syncs on the TS packet sync bytes.
- Made MAXFRAMESIZE a multiple of TS_SIZE to avoid breaking up TS packets.

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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" #include "dvbplayer.h"
@ -456,7 +456,7 @@ void cDvbPlayer::Action(void)
eof = true; eof = true;
} }
else // allows replay even if the index file is missing 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) if (Length == -1)
Length = MAXFRAMESIZE; // this means we read up to EOF (see cIndex) Length = MAXFRAMESIZE; // this means we read up to EOF (see cIndex)
else if (Length > MAXFRAMESIZE) { else if (Length > MAXFRAMESIZE) {

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * 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 #ifndef __RECORDING_H
@ -207,7 +207,7 @@ public:
}; };
// The maximum size of a single frame (up to HDTV 1920x1080): // 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 // 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 // with a 40 bit 'unsigned int', which is 1TB. The actual maximum value