diff options
author | Sebastian Dröge <slomo@circular-chaos.org> | 2007-11-06 12:23:35 +0000 |
---|---|---|
committer | Sebastian Dröge <slomo@circular-chaos.org> | 2007-11-06 12:23:35 +0000 |
commit | 1407259dbc44b0cf23c9e72770c990e5f8cac680 (patch) | |
tree | b9dd5dd88cf2b3f51dc6353b9b713eb60ebc7605 /gst/spectrum/gstspectrum.c | |
parent | 209d6105d73bcdb01f20432035fc58436caa26b7 (diff) | |
download | gst-plugins-bad-1407259dbc44b0cf23c9e72770c990e5f8cac680.tar.gz gst-plugins-bad-1407259dbc44b0cf23c9e72770c990e5f8cac680.tar.bz2 gst-plugins-bad-1407259dbc44b0cf23c9e72770c990e5f8cac680.zip |
gst/spectrum/demo-audiotest.c: Use autoaudiosink instead of alsasink and use a sine wave.
Original commit message from CVS:
* gst/spectrum/demo-audiotest.c: (main):
Use autoaudiosink instead of alsasink and use a sine wave.
* gst/spectrum/gstspectrum.c:
Fix the magnitude calculation.
Diffstat (limited to 'gst/spectrum/gstspectrum.c')
-rw-r--r-- | gst/spectrum/gstspectrum.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/gst/spectrum/gstspectrum.c b/gst/spectrum/gstspectrum.c index d9899b49..f2f654a6 100644 --- a/gst/spectrum/gstspectrum.c +++ b/gst/spectrum/gstspectrum.c @@ -517,10 +517,12 @@ process_s##width (GstSpectrum *spectrum, const gint##width *samples) \ \ /* Calculate magnitude in db */ \ for (i = 0; i < spectrum->bands; i++) { \ - gdouble val = (gdouble) freqdata[i].r * (gdouble) freqdata[i].r \ - + (gdouble) freqdata[i].i * (gdouble) freqdata[i].i; \ - val = sqrt (val); \ - val = 20.0 * log10 (val / max); \ + gdouble val; \ + val = (gdouble) freqdata[i].r * (gdouble) freqdata[i].r; \ + val += (gdouble) freqdata[i].i * (gdouble) freqdata[i].i; \ + val *= nfft; \ + val /= max*max; \ + val = 10.0 * log10 (val); \ if (val > spectrum->threshold) \ val -= spectrum->threshold; \ else \ @@ -583,9 +585,11 @@ process_f##width (GstSpectrum *spectrum, const g##type *samples) \ \ /* Calculate magnitude in db */ \ for (i = 0; i < spectrum->bands; i++) { \ - gdouble val = freqdata[i].r * freqdata[i].r + freqdata[i].i * freqdata[i].i; \ - val = sqrt (val); \ - val = 20.0 * log10 (val / nfft); \ + gdouble val; \ + val = freqdata[i].r * freqdata[i].r; \ + val += freqdata[i].i * freqdata[i].i; \ + val /= nfft; \ + val = 10.0 * log10 (val); \ if (val > spectrum->threshold) \ val -= spectrum->threshold; \ else \ |