Avoid division by zero that caused noise, typically at the beginning or
authorFrank Barchard <fbarchard@google.com>
Wed, 2 Jun 2010 16:09:19 +0000 (16:09 +0000)
committerCarl Eugen Hoyos <cehoyos@rainbow.studorg.tuwien.ac.at>
Wed, 2 Jun 2010 16:09:19 +0000 (16:09 +0000)
end of a file.

Patch by Frank Barchard, fbarchard google

Originally committed as revision 23426 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/vorbis_enc.c

index 01d1b85..b18f653 100644 (file)
@@ -681,7 +681,7 @@ static void floor_fit(vorbis_enc_context *venc, vorbis_enc_floor *fc,
         float average = averages[i];
         int j;
 
-        average *= pow(tot_average / average, 0.5) * pow(1.25, position/200.); // MAGIC!
+        average = sqrt(tot_average * average) * pow(1.25f, position*0.005f); // MAGIC!
         for (j = 0; j < range - 1; j++)
             if (ff_vorbis_floor1_inverse_db_table[j * fc->multiplier] > average)
                 break;