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>
|
Eike Sauer <EikeSauer@t-online.de>
|
||||||
for reporting a problem with channels that need more than 5 TS packets for detecting
|
for reporting a problem with channels that need more than 5 TS packets for detecting
|
||||||
frame borders
|
frame borders
|
||||||
|
for reporting a problem in handling the frame detection buffer length
|
||||||
|
|
||||||
Christian Paulick <cpaulick@xeatre.tv>
|
Christian Paulick <cpaulick@xeatre.tv>
|
||||||
for reporting a problem with frame detection in MPEG-2 streams that have "bottom fields"
|
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).
|
transponders with many PAT entries (reported by Mariusz Bialonczyk).
|
||||||
- Fixed the replay progress display for very long recordings.
|
- Fixed the replay progress display for very long recordings.
|
||||||
- Fixed detecting broken video data streams when recording.
|
- 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
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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"
|
#include "remux.h"
|
||||||
@ -1153,8 +1153,7 @@ int cMpeg2Parser::Parse(const uchar *Data, int Length, int Pid)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (tsPayload.AtPayloadStart() // stop at any new payload start to have the buffer refilled if necessary
|
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.Eof()) // or if we're out of data
|
||||||
&& (tsPayload.Available() <= 0 || tsPayload.AtTsStart()))) // ...but only if there is no more data at all, or if we are at a TS boundary
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return tsPayload.Used();
|
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
|
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.Eof()) // or if we're out of data
|
||||||
&& (tsPayload.Available() <= 0 || tsPayload.AtTsStart()))) // ...but only if there is no more data at all, or if we are at a TS boundary
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return tsPayload.Used();
|
return tsPayload.Used();
|
||||||
|
Loading…
Reference in New Issue
Block a user