From 0df18f29ae218f30b3ecff7c930176b8ebee56aa Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 3 May 2022 05:37:15 +0200 Subject: [PATCH] avfilter/af_afir: Only keep DSP stuff in header Only the AudioFIRDSPContext and the functions for its initialization are needed outside of lavfi/af_afir.c. Also rename the header to af_afirdsp.h to reflect the change. Signed-off-by: Andreas Rheinhardt --- libavfilter/af_afir.c | 71 +++++++++++++++++++++- libavfilter/af_afir.h | 108 --------------------------------- libavfilter/af_afirdsp.h | 34 +++++++++++ libavfilter/x86/af_afir_init.c | 2 +- tests/checkasm/af_afir.c | 2 +- 5 files changed, 106 insertions(+), 111 deletions(-) delete mode 100644 libavfilter/af_afir.h create mode 100644 libavfilter/af_afirdsp.h diff --git a/libavfilter/af_afir.c b/libavfilter/af_afir.c index 72e77eda19..d7ae468428 100644 --- a/libavfilter/af_afir.c +++ b/libavfilter/af_afir.c @@ -30,8 +30,11 @@ #include "libavutil/channel_layout.h" #include "libavutil/common.h" #include "libavutil/float_dsp.h" +#include "libavutil/frame.h" #include "libavutil/intreadwrite.h" +#include "libavutil/log.h" #include "libavutil/opt.h" +#include "libavutil/rational.h" #include "libavutil/xga_font_data.h" #include "audio.h" @@ -39,7 +42,73 @@ #include "filters.h" #include "formats.h" #include "internal.h" -#include "af_afir.h" +#include "af_afirdsp.h" + +typedef struct AudioFIRSegment { + int nb_partitions; + int part_size; + int block_size; + int fft_length; + int coeff_size; + int input_size; + int input_offset; + + int *output_offset; + int *part_index; + + AVFrame *sumin; + AVFrame *sumout; + AVFrame *blockin; + AVFrame *blockout; + AVFrame *buffer; + AVFrame *coeff; + AVFrame *input; + AVFrame *output; + + AVTXContext **tx, **itx; + av_tx_fn tx_fn, itx_fn; +} AudioFIRSegment; + +typedef struct AudioFIRContext { + const AVClass *class; + + float wet_gain; + float dry_gain; + float length; + int gtype; + float ir_gain; + int ir_format; + float max_ir_len; + int response; + int w, h; + AVRational frame_rate; + int ir_channel; + int minp; + int maxp; + int nb_irs; + int selir; + + float gain; + + int eof_coeffs[32]; + int have_coeffs; + int nb_taps; + int nb_channels; + int nb_coef_channels; + int one2many; + + AudioFIRSegment seg[1024]; + int nb_segments; + + AVFrame *in; + AVFrame *ir[32]; + AVFrame *video; + int min_part_size; + int64_t pts; + + AudioFIRDSPContext afirdsp; + AVFloatDSPContext *fdsp; +} AudioFIRContext; static void fcmul_add_c(float *sum, const float *t, const float *c, ptrdiff_t len) { diff --git a/libavfilter/af_afir.h b/libavfilter/af_afir.h deleted file mode 100644 index cf00dbfc66..0000000000 --- a/libavfilter/af_afir.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2017 Paul B Mahol - * - * This file is part of FFmpeg. - * - * FFmpeg is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * FFmpeg is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with FFmpeg; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef AVFILTER_AFIR_H -#define AVFILTER_AFIR_H - -#include -#include - -#include "libavutil/tx.h" -#include "libavutil/float_dsp.h" -#include "libavutil/frame.h" -#include "libavutil/log.h" -#include "libavutil/rational.h" - -typedef struct AudioFIRSegment { - int nb_partitions; - int part_size; - int block_size; - int fft_length; - int coeff_size; - int input_size; - int input_offset; - - int *output_offset; - int *part_index; - - AVFrame *sumin; - AVFrame *sumout; - AVFrame *blockin; - AVFrame *blockout; - AVFrame *buffer; - AVFrame *coeff; - AVFrame *input; - AVFrame *output; - - AVTXContext **tx, **itx; - av_tx_fn tx_fn, itx_fn; -} AudioFIRSegment; - -typedef struct AudioFIRDSPContext { - void (*fcmul_add)(float *sum, const float *t, const float *c, - ptrdiff_t len); -} AudioFIRDSPContext; - -typedef struct AudioFIRContext { - const AVClass *class; - - float wet_gain; - float dry_gain; - float length; - int gtype; - float ir_gain; - int ir_format; - float max_ir_len; - int response; - int w, h; - AVRational frame_rate; - int ir_channel; - int minp; - int maxp; - int nb_irs; - int selir; - - float gain; - - int eof_coeffs[32]; - int have_coeffs; - int nb_taps; - int nb_channels; - int nb_coef_channels; - int one2many; - - AudioFIRSegment seg[1024]; - int nb_segments; - - AVFrame *in; - AVFrame *ir[32]; - AVFrame *video; - int min_part_size; - int64_t pts; - - AudioFIRDSPContext afirdsp; - AVFloatDSPContext *fdsp; - -} AudioFIRContext; - -void ff_afir_init(AudioFIRDSPContext *s); -void ff_afir_init_x86(AudioFIRDSPContext *s); - -#endif /* AVFILTER_AFIR_H */ diff --git a/libavfilter/af_afirdsp.h b/libavfilter/af_afirdsp.h new file mode 100644 index 0000000000..f72ab7cd02 --- /dev/null +++ b/libavfilter/af_afirdsp.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2017 Paul B Mahol + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef AVFILTER_AFIRDSP_H +#define AVFILTER_AFIRDSP_H + +#include + +typedef struct AudioFIRDSPContext { + void (*fcmul_add)(float *sum, const float *t, const float *c, + ptrdiff_t len); +} AudioFIRDSPContext; + +void ff_afir_init(AudioFIRDSPContext *s); +void ff_afir_init_x86(AudioFIRDSPContext *s); + +#endif /* AVFILTER_AFIRDSP_H */ diff --git a/libavfilter/x86/af_afir_init.c b/libavfilter/x86/af_afir_init.c index c37212c381..e53817b9c0 100644 --- a/libavfilter/x86/af_afir_init.c +++ b/libavfilter/x86/af_afir_init.c @@ -20,7 +20,7 @@ #include "libavutil/attributes.h" #include "libavutil/cpu.h" #include "libavutil/x86/cpu.h" -#include "libavfilter/af_afir.h" +#include "libavfilter/af_afirdsp.h" void ff_fcmul_add_sse3(float *sum, const float *t, const float *c, ptrdiff_t len); diff --git a/tests/checkasm/af_afir.c b/tests/checkasm/af_afir.c index b8a845db82..08c55dacfc 100644 --- a/tests/checkasm/af_afir.c +++ b/tests/checkasm/af_afir.c @@ -21,7 +21,7 @@ #include #include -#include "libavfilter/af_afir.h" +#include "libavfilter/af_afirdsp.h" #include "libavutil/internal.h" #include "libavutil/mem_internal.h" #include "checkasm.h"