[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