[gst-cvs] gst-plugins-good: spectrum only aggregate magnitude/ phase if user asks for it
Stefan Kost
ensonic at kemper.freedesktop.org
Mon Sep 6 00:42:35 PDT 2010
Module: gst-plugins-good
Branch: master
Commit: 77fe8c151a623efcc6982040c7345948a2ff2a05
URL: http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=77fe8c151a623efcc6982040c7345948a2ff2a05
Author: Stefan Kost <ensonic at users.sf.net>
Date: Wed Aug 11 15:48:18 2010 +0300
spectrum only aggregate magnitude/phase if user asks for it
---
gst/spectrum/gstspectrum.c | 30 +++++++++++++++++-------------
1 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/gst/spectrum/gstspectrum.c b/gst/spectrum/gstspectrum.c
index 6e91af8..9e82829 100644
--- a/gst/spectrum/gstspectrum.c
+++ b/gst/spectrum/gstspectrum.c
@@ -623,21 +623,25 @@ gst_spectrum_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
gst_fft_f32_fft (fft_ctx, input_tmp, freqdata);
spectrum->num_fft++;
- /* Calculate magnitude in db */
- for (i = 0; i < bands; i++) {
- gdouble val = 0.0;
- val = freqdata[i].r * freqdata[i].r;
- val += freqdata[i].i * freqdata[i].i;
- val /= nfft * nfft;
- val = 10.0 * log10 (val);
- if (val < threshold)
- val = threshold;
- spect_magnitude[i] += val;
+ if (spectrum->message_magnitude) {
+ gdouble val;
+ /* Calculate magnitude in db */
+ for (i = 0; i < bands; i++) {
+ val = freqdata[i].r * freqdata[i].r;
+ val += freqdata[i].i * freqdata[i].i;
+ val /= nfft * nfft;
+ val = 10.0 * log10 (val);
+ if (val < threshold)
+ val = threshold;
+ spect_magnitude[i] += val;
+ }
}
- /* Calculate phase */
- for (i = 0; i < bands; i++)
- spect_phase[i] += atan2 (freqdata[i].i, freqdata[i].r);
+ if (spectrum->message_phase) {
+ /* Calculate phase */
+ for (i = 0; i < bands; i++)
+ spect_phase[i] += atan2 (freqdata[i].i, freqdata[i].r);
+ }
}
/* Do we have the FFTs for one interval? */
More information about the Gstreamer-commits
mailing list