diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c index 0b88102c77..1d3a4ae64c 100644 --- a/libavcodec/libaomenc.c +++ b/libavcodec/libaomenc.c @@ -1295,8 +1295,12 @@ static int aom_encode(AVCodecContext *avctx, AVPacket *pkt, if (frame->duration > ULONG_MAX) { av_log(avctx, AV_LOG_WARNING, "Frame duration too large: %"PRId64"\n", frame->duration); - } else - duration = frame->duration ? frame->duration : avctx->ticks_per_frame; + } else if (frame->duration) + duration = frame->duration; + else if (avctx->framerate.num > 0 && avctx->framerate.den > 0) + duration = av_rescale_q(1, av_inv_q(avctx->framerate), avctx->time_base); + else + duration = avctx->ticks_per_frame ? avctx->ticks_per_frame : 1; switch (frame->color_range) { case AVCOL_RANGE_MPEG: