提交 9806f846 编写于 作者: M Michael Niedermayer

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
上级 f781f748
......@@ -838,6 +838,14 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
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) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册