convolver: small cleanups

Remove unused field.
We can also remove the ifft and reuse the fft.
This commit is contained in:
Wim Taymans 2026-04-22 16:01:52 +02:00
parent aabcbf1261
commit 3e7e61dcb7

View file

@ -6,7 +6,6 @@
#include "convolver.h" #include "convolver.h"
#include <math.h>
#include <math.h> #include <math.h>
#include <pthread.h> #include <pthread.h>
#include <semaphore.h> #include <semaphore.h>
@ -27,7 +26,6 @@ struct partition {
int time_size; int time_size;
int freq_size; int freq_size;
void *fft; void *fft;
void *ifft;
float *freq; float *freq;
int n_segments; int n_segments;
@ -44,7 +42,6 @@ struct partition {
struct convolver struct convolver
{ {
struct spa_fga_dsp *dsp; struct spa_fga_dsp *dsp;
struct convolver *conv;
int min_size; int min_size;
int max_size; int max_size;
@ -114,8 +111,6 @@ static void partition_free(struct spa_fga_dsp *dsp, struct partition *part)
} }
if (part->fft) if (part->fft)
spa_fga_dsp_fft_free(dsp, part->fft); spa_fga_dsp_fft_free(dsp, part->fft);
if (part->ifft)
spa_fga_dsp_fft_free(dsp, part->ifft);
free(part->segments); free(part->segments);
free(part->ir); free(part->ir);
spa_fga_dsp_fft_memfree(dsp, part->freq); spa_fga_dsp_fft_memfree(dsp, part->freq);
@ -147,9 +142,6 @@ static struct partition *partition_new(struct convolver *conv, int block,
part->fft = spa_fga_dsp_fft_new(dsp, part->time_size, true); part->fft = spa_fga_dsp_fft_new(dsp, part->time_size, true);
if (part->fft == NULL) if (part->fft == NULL)
goto error; goto error;
part->ifft = spa_fga_dsp_fft_new(dsp, part->time_size, true);
if (part->ifft == NULL)
goto error;
part->segments = calloc(part->n_segments, sizeof(float*)); part->segments = calloc(part->n_segments, sizeof(float*));
part->freq = spa_fga_dsp_fft_memalloc(dsp, part->freq_size, false); part->freq = spa_fga_dsp_fft_memalloc(dsp, part->freq_size, false);
@ -228,7 +220,7 @@ static int partition_run(struct spa_fga_dsp *dsp, struct partition *part, const
r->segments[j], r->segments[j],
part->freq_size); part->freq_size);
} }
spa_fga_dsp_fft_run(dsp, part->ifft, -1, part->freq, r->time_buffer[idx]); spa_fga_dsp_fft_run(dsp, part->fft, -1, part->freq, r->time_buffer[idx]);
dst = output ? output[i]: r->precalc[pc_idx]; dst = output ? output[i]: r->precalc[pc_idx];
if (dst) if (dst)