[FFmpeg-devel] [PATCH 09/13] libaomenc: use AVCodecContext.framerate when available

Anton Khirnov anton at khirnov.net
Sun May 7 16:32:51 EEST 2023


---
 libavcodec/libaomenc.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

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:
-- 
2.39.2



More information about the ffmpeg-devel mailing list