summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2005-01-16 15:30:43 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2005-01-16 15:30:43 +0100
commit7276c54bafbcb5bac3371effb773918df84acc87 (patch)
tree345f49cb5931b44ac9d77b8a8f79d6bedec6783f
parent8c0981583fcd5e531ac955cd8184866dd4eaf9a2 (diff)
downloadvdr-7276c54bafbcb5bac3371effb773918df84acc87.tar.gz
vdr-7276c54bafbcb5bac3371effb773918df84acc87.tar.bz2
Extended some buffer sizes to allow handling HDTV streams
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY2
-rw-r--r--recording.h6
-rw-r--r--remux.c4
-rw-r--r--transfer.c4
5 files changed, 10 insertions, 7 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 987112f6..621ff12e 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -909,6 +909,7 @@ Reinhard Nissl <rnissl@gmx.de>
call from cDvbPlayer::Action()
for reporting a race condition in starting a thread
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>
for reporting freezing replay if a timer starts while in Transfer Mode from the
diff --git a/HISTORY b/HISTORY
index e6ac729b..27385077 100644
--- a/HISTORY
+++ b/HISTORY
@@ -3320,3 +3320,5 @@ Video Disk Recorder Revision History
cRemux::cRemux()
- Fixed a possible race condition in cDevice::Action() and cTSBuffer::Action()
(thanks to Stefan Huelswitt).
+- Extended some buffer sizes to allow handling HDTV streams (thanks to Reinhard
+ Nissl).
diff --git a/recording.h b/recording.h
index a0f864f3..be1a5c44 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 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
@@ -121,8 +121,8 @@ public:
//XXX+
#define FRAMESPERSEC 25
-// The maximum size of a single frame:
-#define MAXFRAMESIZE KILOBYTE(192)
+// The maximum size of a single frame (up to HDTV 1920x1080):
+#define MAXFRAMESIZE KILOBYTE(512)
// The maximum file size is limited by the range that can be covered
// with 'int'. 4GB might be possible (if the range is considered
diff --git a/remux.c b/remux.c
index e81909b5..307f7ab9 100644
--- a/remux.c
+++ b/remux.c
@@ -11,7 +11,7 @@
* The cDolbyRepacker code was originally written by Reinhard Nissl <rnissl@gmx.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"
@@ -324,7 +324,7 @@ int cDolbyRepacker::BreakAt(const uchar *Data, int Count)
#define ADAPT_FIELD 0x20
#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
diff --git a/transfer.c b/transfer.c
index 537bb8f7..b151971e 100644
--- a/transfer.c
+++ b/transfer.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* 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"
@@ -80,7 +80,7 @@ void cTransfer::Action(void)
//XXX To resolve this, the remuxer or PlayPes() should synchronize
//XXX audio with the video frames. 2004/09/09 Werner
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
continue;
}