mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed handling frame detection buffer length
This commit is contained in:
parent
6d59e2866b
commit
4cd251fc48
@ -3254,6 +3254,7 @@ Thomas Reufer <thomas@reufer.ch>
|
||||
Eike Sauer <EikeSauer@t-online.de>
|
||||
for reporting a problem with channels that need more than 5 TS packets for detecting
|
||||
frame borders
|
||||
for reporting a problem in handling the frame detection buffer length
|
||||
|
||||
Christian Paulick <cpaulick@xeatre.tv>
|
||||
for reporting a problem with frame detection in MPEG-2 streams that have "bottom fields"
|
||||
|
1
HISTORY
1
HISTORY
@ -8201,3 +8201,4 @@ Video Disk Recorder Revision History
|
||||
transponders with many PAT entries (reported by Mariusz Bialonczyk).
|
||||
- Fixed the replay progress display for very long recordings.
|
||||
- Fixed detecting broken video data streams when recording.
|
||||
- Fixed handling frame detection buffer length (reported by Eike Sauer).
|
||||
|
8
remux.c
8
remux.c
@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: remux.c 3.2 2014/01/28 11:07:59 kls Exp $
|
||||
* $Id: remux.c 3.3 2014/02/21 11:51:55 kls Exp $
|
||||
*/
|
||||
|
||||
#include "remux.h"
|
||||
@ -1153,8 +1153,7 @@ int cMpeg2Parser::Parse(const uchar *Data, int Length, int Pid)
|
||||
break;
|
||||
}
|
||||
if (tsPayload.AtPayloadStart() // stop at any new payload start to have the buffer refilled if necessary
|
||||
|| (tsPayload.Available() < MIN_TS_PACKETS_FOR_FRAME_DETECTOR * TS_SIZE // stop if the available data is below the limit...
|
||||
&& (tsPayload.Available() <= 0 || tsPayload.AtTsStart()))) // ...but only if there is no more data at all, or if we are at a TS boundary
|
||||
|| tsPayload.Eof()) // or if we're out of data
|
||||
break;
|
||||
}
|
||||
return tsPayload.Used();
|
||||
@ -1305,8 +1304,7 @@ int cH264Parser::Parse(const uchar *Data, int Length, int Pid)
|
||||
}
|
||||
}
|
||||
if (tsPayload.AtPayloadStart() // stop at any new payload start to have the buffer refilled if necessary
|
||||
|| (tsPayload.Available() < MIN_TS_PACKETS_FOR_FRAME_DETECTOR * TS_SIZE // stop if the available data is below the limit...
|
||||
&& (tsPayload.Available() <= 0 || tsPayload.AtTsStart()))) // ...but only if there is no more data at all, or if we are at a TS boundary
|
||||
|| tsPayload.Eof()) // or if we're out of data
|
||||
break;
|
||||
}
|
||||
return tsPayload.Used();
|
||||
|
Loading…
Reference in New Issue
Block a user