Commit 5d85b7bfb2 for ffmpeg

commit 5d85b7bfb2b024fd367ae3a938b4ac46a39e3a26
Author: Michael Niedermayer <michael@niedermayer.cc>
Date:   Sun Oct 25 05:48:24 2026 +0100

    avcodec/dovi_rpuenc: compute the pixel rate without overflow

    Fixes: o7gcsAIJJTmP/testcase/dovi_pps_overflow.c
    Fixes: o7gcsAIJJTmP
    Fixes: signed integer overflow
    Signed integer overflow Replicated through API with UBSAN

    Found during the review of PR 25408.

    Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>

diff --git a/libavcodec/dovi_rpuenc.c b/libavcodec/dovi_rpuenc.c
index 2e567ad751..219283eca7 100644
--- a/libavcodec/dovi_rpuenc.c
+++ b/libavcodec/dovi_rpuenc.c
@@ -182,12 +182,9 @@ static av_cold int dovi_configure_ext(DOVIContext *s, enum AVCodecID codec_id,
         }
     }

-    pps = width * height;
-    if (framerate.num > 0 && framerate.den > 0) {
-        pps = pps * framerate.num / framerate.den;
-    } else {
-        pps *= 25; /* sanity fallback */
-    }
+    if (framerate.num <= 0 || framerate.den <= 0)
+        framerate = (AVRational){ 25, 1 }; /* sanity fallback */
+    pps = av_rescale_rnd((int64_t)width * height, framerate.num, framerate.den, AV_ROUND_DOWN);

     dv_level = 0;
     for (int i = 1; i < FF_ARRAY_ELEMS(dv_levels); i++) {