Commit 9806f846 authored by Michael Niedermayer's avatar Michael Niedermayer
Browse files

Check for pts==dts on I/P frames in the presence of non low delay decoding and

discard these invalid timestamps.
fixes issue171.

Originally committed as revision 15641 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent f781f748
...@@ -838,6 +838,14 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, ...@@ -838,6 +838,14 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
pkt->dts -= 1LL<<st->pts_wrap_bits; pkt->dts -= 1LL<<st->pts_wrap_bits;
} }
// some mpeg2 in mpeg-ps lack dts (issue171 / input_file.mpg)
// we take the conservative approach and discard both
// Note, if this is misbehaving for a H.264 file then possibly presentation_delayed is not set correctly.
if(delay==1 && pkt->dts == pkt->pts && pkt->dts != AV_NOPTS_VALUE && presentation_delayed){
av_log(s, AV_LOG_ERROR, "invalid dts/pts combination\n");
pkt->dts= pkt->pts= AV_NOPTS_VALUE;
}
if (pkt->duration == 0) { if (pkt->duration == 0) {
compute_frame_duration(&num, &den, st, pc, pkt); compute_frame_duration(&num, &den, st, pc, pkt);
if (den && num) { if (den && num) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment