r15641 - trunk/libavformat/utils.c
Author: michael Date: Sun Oct 19 03:02:48 2008 New Revision: 15641 Log: Check for pts==dts on I/P frames in the presence of non low delay decoding and discard these invalid timestamps. fixes issue171. Modified: trunk/libavformat/utils.c Modified: trunk/libavformat/utils.c ============================================================================== --- trunk/libavformat/utils.c (original) +++ trunk/libavformat/utils.c Sun Oct 19 03:02:48 2008 @@ -838,6 +838,14 @@ static void compute_pkt_fields(AVFormatC 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) { compute_frame_duration(&num, &den, st, pc, pkt); if (den && num) {
michael <subversion <at> mplayerhq.hu> writes:
Author: michael Date: Sun Oct 19 03:02:48 2008 New Revision: 15641
+ // 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 &&
Two possible samples are now in samples/ffmpeg-bugs/roundup/issue2437 presentation_delayed){
+ av_log(s, AV_LOG_ERROR, "invalid dts/pts combination\n"); + pkt->dts= pkt->pts= AV_NOPTS_VALUE;
Carl Eugen
participants (2)
-
cehoyos@ag.or.at -
subversion@mplayerhq.hu