1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Extended some buffer sizes to allow handling HDTV streams

This commit is contained in:
Klaus Schmidinger 2005-01-16 15:30:43 +01:00
parent 8c0981583f
commit 7276c54baf
5 changed files with 10 additions and 7 deletions

View File

@ -909,6 +909,7 @@ Reinhard Nissl <rnissl@gmx.de>
call from cDvbPlayer::Action() call from cDvbPlayer::Action()
for reporting a race condition in starting a thread for reporting a race condition in starting a thread
for implementing cDolbyRepacker for better handling of Dolby Digital PES packets for implementing cDolbyRepacker for better handling of Dolby Digital PES packets
for extending some buffer sizes to allow handling HDTV streams
Richard Robson <richard_robson@beeb.net> Richard Robson <richard_robson@beeb.net>
for reporting freezing replay if a timer starts while in Transfer Mode from the for reporting freezing replay if a timer starts while in Transfer Mode from the

View File

@ -3320,3 +3320,5 @@ Video Disk Recorder Revision History
cRemux::cRemux() cRemux::cRemux()
- Fixed a possible race condition in cDevice::Action() and cTSBuffer::Action() - Fixed a possible race condition in cDevice::Action() and cTSBuffer::Action()
(thanks to Stefan Huelswitt). (thanks to Stefan Huelswitt).
- Extended some buffer sizes to allow handling HDTV streams (thanks to Reinhard
Nissl).

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 1.33 2004/12/26 11:47:35 kls Exp $ * $Id: recording.h 1.34 2005/01/16 15:11:31 kls Exp $
*/ */
#ifndef __RECORDING_H #ifndef __RECORDING_H
@ -121,8 +121,8 @@ public:
//XXX+ //XXX+
#define FRAMESPERSEC 25 #define FRAMESPERSEC 25
// The maximum size of a single frame: // The maximum size of a single frame (up to HDTV 1920x1080):
#define MAXFRAMESIZE KILOBYTE(192) #define MAXFRAMESIZE KILOBYTE(512)
// 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 'int'. 4GB might be possible (if the range is considered // with 'int'. 4GB might be possible (if the range is considered

View File

@ -11,7 +11,7 @@
* The cDolbyRepacker code was originally written by Reinhard Nissl <rnissl@gmx.de>, * The cDolbyRepacker code was originally written by Reinhard Nissl <rnissl@gmx.de>,
* and adapted to the VDR coding style by Klaus.Schmidinger@cadsoft.de. * and adapted to the VDR coding style by Klaus.Schmidinger@cadsoft.de.
* *
* $Id: remux.c 1.25 2005/01/16 14:34:25 kls Exp $ * $Id: remux.c 1.26 2005/01/16 15:22:16 kls Exp $
*/ */
#include "remux.h" #include "remux.h"
@ -324,7 +324,7 @@ int cDolbyRepacker::BreakAt(const uchar *Data, int Count)
#define ADAPT_FIELD 0x20 #define ADAPT_FIELD 0x20
#define MAX_PLENGTH 0xFFFF // the maximum PES packet length (theoretically) #define MAX_PLENGTH 0xFFFF // the maximum PES packet length (theoretically)
#define MMAX_PLENGTH (8*MAX_PLENGTH) // some stations send PES packets that are extremely large, e.g. DVB-T in Finland #define MMAX_PLENGTH (64*MAX_PLENGTH) // some stations send PES packets that are extremely large, e.g. DVB-T in Finland or HDTV 1920x1080
#define IPACKS 2048 #define IPACKS 2048

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: transfer.c 1.23 2005/01/16 13:26:38 kls Exp $ * $Id: transfer.c 1.24 2005/01/16 15:12:58 kls Exp $
*/ */
#include "transfer.h" #include "transfer.h"
@ -80,7 +80,7 @@ void cTransfer::Action(void)
//XXX To resolve this, the remuxer or PlayPes() should synchronize //XXX To resolve this, the remuxer or PlayPes() should synchronize
//XXX audio with the video frames. 2004/09/09 Werner //XXX audio with the video frames. 2004/09/09 Werner
if (!GotBufferReserve) { if (!GotBufferReserve) {
if (ringBuffer->Available() < 3 * MAXFRAMESIZE / 2) { if (ringBuffer->Available() < 3 * KILOBYTE(192) / 2) { // used to be MAXFRAMESIZE, but the HDTV value of KILOBYTE(512) is way too much here
cCondWait::SleepMs(20); // allow the buffer to collect some reserve cCondWait::SleepMs(20); // allow the buffer to collect some reserve
continue; continue;
} }