From 78e84c054a2a04edeea25e9ee54d0fb172cd7053 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 5 May 2023 18:46:28 +0200 Subject: fftools/ffmpeg: fix computing video frame duration from repeat_pict This field contains the number of _field_ durations by which the standard frame duration should be extended. --- fftools/ffmpeg.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 5cf6a00f50..9920f946dc 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -990,10 +990,10 @@ static int64_t video_duration_estimate(const InputStream *ist, const AVFrame *fr return frame->duration; if (ist->dec_ctx->framerate.den && ist->dec_ctx->framerate.num) { - int ticks = frame->repeat_pict >= 0 ? - frame->repeat_pict + 1 : - ist->dec_ctx->ticks_per_frame; - codec_duration = av_rescale_q(ticks, av_inv_q(ist->dec_ctx->framerate), + int fields = frame->repeat_pict + 2; + AVRational field_rate = av_mul_q(ist->dec_ctx->framerate, + (AVRational){ 2, 1 }); + codec_duration = av_rescale_q(fields, av_inv_q(field_rate), ist->st->time_base); } -- cgit v1.2.1