gst/replaygain/rganalysis.c: Avoid slowdown from denormals when processing near-silen...
authorRené Stadler <mail@renestadler.de>
Mon, 12 Nov 2007 21:07:31 +0000 (21:07 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Mon, 12 Nov 2007 21:07:31 +0000 (21:07 +0000)
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler dot de>
* gst/replaygain/rganalysis.c: (yule_filter):
Avoid slowdown from denormals when processing near-silence input data.
Spotted by Gabriel Bouvigne. Fixes #494499.

gst/replaygain/rganalysis.c

index 70fa24c..147eef8 100644 (file)
@@ -246,7 +246,10 @@ static inline void
 yule_filter (const gfloat * input, gfloat * output,
     const gfloat * a, const gfloat * b)
 {
-  output[0] = input[0] * b[0]
+  /* 1e-10 is added below to avoid running into denormals when operating on
+   * near silence. */
+
+  output[0] = 1e-10 + input[0] * b[0]
       + input[-1] * b[1] - output[-1] * a[1]
       + input[-2] * b[2] - output[-2] * a[2]
       + input[-3] * b[3] - output[-3] * a[3]