summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Petter Endresen <lars.petter.endresen@gmail.com>2018-11-12 12:03:53 +0100
committerTim-Philipp Müller <tim@centricular.com>2019-05-02 09:46:36 +0100
commit47786831fdb09d1b80b1aef6a8d1a29fcea03afd (patch)
tree77cc75c7e0fa45bbc616e8cc53be7a023701764f
parentd372a5144d751d785af08786b1aadc2990583af4 (diff)
downloadgstreamer-plugins-bad-47786831fdb09d1b80b1aef6a8d1a29fcea03afd.tar.gz
siren: Fix floating point invalid operation
Mix of single and double precision leads to zero-by-zero divide for upper 64-bit of the xmm register, even though they are not used.
-rw-r--r--gst/siren/common.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gst/siren/common.c b/gst/siren/common.c
index ee77c7026..2e0774857 100644
--- a/gst/siren/common.c
+++ b/gst/siren/common.c
@@ -62,7 +62,7 @@ static int siren_initialized = 0;
/*
STEPSIZE = 2.0 * log(sqrt(2));
*/
-#define STEPSIZE 0.3010299957
+#define STEPSIZE 0.3010299957f
void
siren_init (void)
@@ -77,9 +77,9 @@ siren_init (void)
region_size_inverse = 1.0f / region_size;
for (i = 0; i < 64; i++) {
- region_power = (float) pow (10, (i - 24) * STEPSIZE);
- standard_deviation[i] = (float) sqrt (region_power);
- deviation_inverse[i] = (float) 1.0 / standard_deviation[i];
+ region_power = powf (10.0f, (i - 24) * STEPSIZE);
+ standard_deviation[i] = sqrtf (region_power);
+ deviation_inverse[i] = 1.0f / standard_deviation[i];
}
for (i = 0; i < 63; i++)