]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/dnxhdenc.c
AAC: Unswitch loop over window groups in decode_spectrum_and_dequant()
[ffmpeg] / libavcodec / dnxhdenc.c
index db0f09dd78605adc751b7827eeab7c9ceebcc309..a52fe8684ed5fb8cd5c2717158763e7f8df0ea90 100644 (file)
@@ -574,9 +574,11 @@ static int dnxhd_encode_rdo(AVCodecContext *avctx, DNXHDEncContext *ctx)
             last_higher = FFMAX(lambda, last_higher);
             if (last_lower != INT_MAX)
                 lambda = (lambda+last_lower)>>1;
+            else if ((int64_t)lambda + up_step > INT_MAX)
+                return -1;
             else
                 lambda += up_step;
-            up_step *= 5;
+            up_step = FFMIN((int64_t)up_step*5, INT_MAX);
             down_step = 1<<LAMBDA_FRAC_BITS;
         }
     }