]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/aacsbr.c
avcodec/jpeg2000: replace naive pow call with smarter exp2fi
[ffmpeg] / libavcodec / aacsbr.c
index 81f19028224b833b3f12d0b0bbe49faa5e331c9f..f7c9b22d7f81da097748599ed8126282e56ddb5a 100644 (file)
@@ -93,13 +93,10 @@ static void sbr_dequant(SpectralBandReplication *sbr, int id_aac)
         }
         for (e = 1; e <= sbr->data[0].bs_num_noise; e++) {
             for (k = 0; k < sbr->n_q; k++) {
-                float temp1 = exp2f(NOISE_FLOOR_OFFSET - sbr->data[0].noise_facs[e][k] + 1);
-                float temp2 = exp2f(12 - sbr->data[1].noise_facs[e][k]);
+                float temp1 = exp2f(NOISE_FLOOR_OFFSET - sbr->data[0].noise_facs_q[e][k] + 1);
+                float temp2 = exp2f(12 - sbr->data[1].noise_facs_q[e][k]);
                 float fac;
-                if (temp1 > 1E20) {
-                    av_log(NULL, AV_LOG_ERROR, "envelope scalefactor overflow in dequant\n");
-                    temp1 = 1;
-                }
+                av_assert0(temp1 <= 1E20);
                 fac = temp1 / (1.0f + temp2);
                 sbr->data[0].noise_facs[e][k] = fac;
                 sbr->data[1].noise_facs[e][k] = fac * temp2;
@@ -121,7 +118,7 @@ static void sbr_dequant(SpectralBandReplication *sbr, int id_aac)
             for (e = 1; e <= sbr->data[ch].bs_num_noise; e++)
                 for (k = 0; k < sbr->n_q; k++)
                     sbr->data[ch].noise_facs[e][k] =
-                        exp2f(NOISE_FLOOR_OFFSET - sbr->data[ch].noise_facs[e][k]);
+                        exp2f(NOISE_FLOOR_OFFSET - sbr->data[ch].noise_facs_q[e][k]);
         }
     }
 }