From: Michael Niedermayer Date: Tue, 31 Jul 2007 15:06:27 +0000 (+0000) Subject: deal with the case where one of pts,dts has wrapped but the other has not X-Git-Tag: v0.5~8151 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=10a7571b0918b0233869b3cb832a5addc200929b;p=coroid%2Fffmpeg_saccubus.git deal with the case where one of pts,dts has wrapped but the other has not Originally committed as revision 9839 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavformat/utils.c b/libavformat/utils.c index 87025c13e..70b7ddcb1 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -595,6 +595,11 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, int num, den, presentation_delayed, delay, i; int64_t offset; + if(pkt->pts != AV_NOPTS_VALUE && pkt->dts != AV_NOPTS_VALUE && pkt->dts > pkt->pts && st->pts_wrap_bits<63 + /*&& pkt->dts-(1LL<pts_wrap_bits) < pkt->pts*/){ + pkt->dts -= 1LL<pts_wrap_bits; + } + if (pkt->duration == 0) { compute_frame_duration(&num, &den, st, pc, pkt); if (den && num) {