mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 14:26:43 +00:00
spectrum: avoid unneccesary extra fft runs
Before it was possible that we run an extra fft when the time for sending a new message is due. Only do this if we have not run the fft for the interval at all.
This commit is contained in:
parent
f1785b0e4a
commit
1a32265b51
1 changed files with 6 additions and 8 deletions
|
@ -986,10 +986,9 @@ gst_spectrum_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
|
|||
);
|
||||
|
||||
/* If we have enough frames for an FFT or we have all frames required for
|
||||
* the interval run an FFT. In the last case we probably take the
|
||||
* FFT of frames that we already handled.
|
||||
*/
|
||||
if ((spectrum->num_frames % nfft == 0) || have_full_interval) {
|
||||
* the interval and we haven't run a FFT, then run an FFT */
|
||||
if ((spectrum->num_frames % nfft == 0) ||
|
||||
(have_full_interval && !spectrum->num_fft)) {
|
||||
gst_spectrum_run_fft (spectrum, cd, input_pos);
|
||||
spectrum->num_fft++;
|
||||
}
|
||||
|
@ -1050,10 +1049,9 @@ gst_spectrum_transform_ip (GstBaseTransform * trans, GstBuffer * buffer)
|
|||
);
|
||||
|
||||
/* If we have enough frames for an FFT or we have all frames required for
|
||||
* the interval run an FFT. In the last case we probably take the
|
||||
* FFT of frames that we already handled.
|
||||
*/
|
||||
if ((spectrum->num_frames % nfft == 0) || have_full_interval) {
|
||||
* the interval and we haven't run a FFT, then run an FFT */
|
||||
if ((spectrum->num_frames % nfft == 0) ||
|
||||
(have_full_interval && !spectrum->num_fft)) {
|
||||
for (c = 0; c < channels; c++) {
|
||||
cd = &spectrum->channel_data[c];
|
||||
gst_spectrum_run_fft (spectrum, cd, input_pos);
|
||||
|
|
Loading…
Reference in a new issue