diff options
author | René Stadler <mail@renestadler.de> | 2007-11-12 21:07:31 +0000 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2007-11-12 21:07:31 +0000 |
commit | 14c0991fb96413193ddb197cbcc8e84b82763b11 (patch) | |
tree | 5c36f5daab9335deff5ae6c4957ac0acccb03d90 /gst | |
parent | 72221ceb5e353ea9193c737e87e4daff6a0accec (diff) | |
download | gst-plugins-bad-14c0991fb96413193ddb197cbcc8e84b82763b11.tar.gz gst-plugins-bad-14c0991fb96413193ddb197cbcc8e84b82763b11.tar.bz2 gst-plugins-bad-14c0991fb96413193ddb197cbcc8e84b82763b11.zip |
gst/replaygain/rganalysis.c: Avoid slowdown from denormals when processing near-silence input data.
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.
Diffstat (limited to 'gst')
-rw-r--r-- | gst/replaygain/rganalysis.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gst/replaygain/rganalysis.c b/gst/replaygain/rganalysis.c index 70fa24c5..147eef85 100644 --- a/gst/replaygain/rganalysis.c +++ b/gst/replaygain/rganalysis.c @@ -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] |