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
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.

View File

@ -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) {

View File

@ -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