for (n = 0; n <= 64; n++) {
float pwr;
- idx = FFMAX(0, lrint((max - lpcs[n]) * irange) - 1);
+ idx = lrint((max - lpcs[n]) * irange - 1);
+ idx = FFMAX(0, idx);
pwr = wmavoice_denoise_power_table[s->denoise_strength][idx];
lpcs[n] = angle_mul * pwr;
/* 70.57 =~ 1/log10(1.0331663) */
- idx = (pwr * gain_mul - 0.0295) * 70.570526123;
+ idx = av_clipf((pwr * gain_mul - 0.0295) * 70.570526123, 0, INT_MAX / 2);
+
if (idx > 127) { // fall back if index falls outside table range
coeffs[n] = wmavoice_energy_table[127] *
powf(1.0331663, idx - 127);