From 12b1512e855a423e2103968bfc0d763678a09ed8 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Fri, 24 Aug 2012 03:08:51 +0200 Subject: [PATCH] lavf/utils: Try to unwrap pts/dts so as to minimize wraps Based on code by: Andrey Utkin Signed-off-by: Michael Niedermayer --- libavformat/utils.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavformat/utils.c b/libavformat/utils.c index 0b462441d3..301528d99e 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -1021,7 +1021,10 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st, presentation_delayed = 1; if(pkt->pts != AV_NOPTS_VALUE && pkt->dts != AV_NOPTS_VALUE && pkt->dts - (1LL<<(st->pts_wrap_bits-1)) > pkt->pts && st->pts_wrap_bits<63){ - pkt->dts -= 1LL<pts_wrap_bits; + if(is_relative(st->cur_dts) || pkt->dts - (1LL<<(st->pts_wrap_bits-1)) > st->cur_dts) { + pkt->dts -= 1LL<pts_wrap_bits; + } else + pkt->pts += 1LL<pts_wrap_bits; } // some mpeg2 in mpeg-ps lack dts (issue171 / input_file.mpg)