From 730945d941aec27d40c51d74850166228cec9ea1 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sat, 3 Dec 2011 15:03:49 +0100 Subject: [PATCH] ffmpeg: use standard duration calculation code in the stream copy case. Fixes a.mkv non monotonic timestamps Signed-off-by: Michael Niedermayer --- ffmpeg.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index 3158bb4874e..f0135315b96 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -2053,8 +2053,10 @@ static int output_packet(InputStream *ist, ist->st->codec->sample_rate; break; case AVMEDIA_TYPE_VIDEO: - if (ist->st->codec->time_base.num != 0) { - int ticks = ist->st->parser ? ist->st->parser->repeat_pict+1 : ist->st->codec->ticks_per_frame; + if (pkt->duration) { + ist->next_pts += av_rescale_q(pkt->duration, ist->st->time_base, AV_TIME_BASE_Q); + } else if(ist->st->codec->time_base.num != 0) { + int ticks= ist->st->parser ? ist->st->parser->repeat_pict+1 : ist->st->codec->ticks_per_frame; ist->next_pts += ((int64_t)AV_TIME_BASE * ist->st->codec->time_base.num * ticks) / ist->st->codec->time_base.den; -- 2.39.2