diff options
author | Stefan Kost <ensonic@users.sf.net> | 2011-03-10 14:12:01 +0200 |
---|---|---|
committer | Stefan Kost <ensonic@users.sf.net> | 2011-03-10 14:12:01 +0200 |
commit | f1785b0e4aafc014354f732cec9485fdfbcafe4b (patch) | |
tree | 60e29efb726a31226135ea685e37dd072462b7b4 /gst/spectrum | |
parent | 5bf267c485493db9912926044c4e590e83ccfe3d (diff) |
spectrum: only scale the vectors that we are processing
Phase is not produced by default, so lets not scale it unconditionally to save a
few cycles.
Diffstat (limited to 'gst/spectrum')
-rw-r--r-- | gst/spectrum/gstspectrum.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/gst/spectrum/gstspectrum.c b/gst/spectrum/gstspectrum.c index ecc8a29f8..d09fbbe2e 100644 --- a/gst/spectrum/gstspectrum.c +++ b/gst/spectrum/gstspectrum.c @@ -889,13 +889,17 @@ gst_spectrum_prepare_message_data (GstSpectrum * spectrum, guint i; guint bands = spectrum->bands; guint num_fft = spectrum->num_fft; - gfloat *spect_magnitude = cd->spect_magnitude; - gfloat *spect_phase = cd->spect_phase; /* Calculate average */ - for (i = 0; i < bands; i++) { - spect_magnitude[i] /= num_fft; - spect_phase[i] /= num_fft; + if (spectrum->message_magnitude) { + gfloat *spect_magnitude = cd->spect_magnitude; + for (i = 0; i < bands; i++) + spect_magnitude[i] /= num_fft; + } + if (spectrum->message_phase) { + gfloat *spect_phase = cd->spect_phase; + for (i = 0; i < bands; i++) + spect_phase[i] /= num_fft; } } |