From 3e402514e5e36ab5426afbe88d3df18a3b06daab Mon Sep 17 00:00:00 2001 From: James Almer Date: Thu, 28 May 2026 00:01:37 -0300 Subject: [PATCH] avcodec/aacencdsp: move init methods outside of the header Signed-off-by: James Almer --- libavcodec/Makefile | 2 +- libavcodec/aacencdsp.c | 60 ++++++++++++++++++++++++++++++++++++++++++ libavcodec/aacencdsp.h | 43 +----------------------------- 3 files changed, 62 insertions(+), 43 deletions(-) create mode 100644 libavcodec/aacencdsp.c diff --git a/libavcodec/Makefile b/libavcodec/Makefile index c6b878207b..ac3c4d1978 100644 --- a/libavcodec/Makefile +++ b/libavcodec/Makefile @@ -203,7 +203,7 @@ OBJS-$(CONFIG_AAC_FIXED_DECODER) += aactab.o \ sbrdsp_fixed.o aacpsdsp_fixed.o cbrt_data_fixed.o \ $(if $(!CONFIG_HARDCODED_TABLES), cbrt_tablegen_common.o) OBJS-$(CONFIG_AAC_ENCODER) += aacenc.o aaccoder.o aacenctab.o \ - aacpsy.o aactab.o \ + aacpsy.o aactab.o aacencdsp.o \ aacenc_is.o \ aacenc_tns.o \ psymodel.o kbdwin.o \ diff --git a/libavcodec/aacencdsp.c b/libavcodec/aacencdsp.c new file mode 100644 index 0000000000..fb809405f7 --- /dev/null +++ b/libavcodec/aacencdsp.c @@ -0,0 +1,60 @@ +/* + * 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 + */ + +#include + +#include "config.h" + +#include "libavutil/macros.h" +#include "aacencdsp.h" + +static void abs_pow34_v(float *out, const float *in, const int size) +{ + for (int i = 0; i < size; i++) { + float a = fabsf(in[i]); + out[i] = sqrtf(a * sqrtf(a)); + } +} + +static void quantize_bands(int *out, const float *in, const float *scaled, + int size, int is_signed, int maxval, const float Q34, + const float rounding) +{ + for (int i = 0; i < size; i++) { + float qc = scaled[i] * Q34; + int tmp = (int)FFMIN((float)(qc + rounding), (float)maxval); + if (is_signed && in[i] < 0.0f) { + tmp = -tmp; + } + out[i] = tmp; + } +} + +void ff_aacenc_dsp_init(AACEncDSPContext *s) +{ + s->abs_pow34 = abs_pow34_v; + s->quant_bands = quantize_bands; + +#if ARCH_RISCV + ff_aacenc_dsp_init_riscv(s); +#elif ARCH_X86 && HAVE_X86ASM + ff_aacenc_dsp_init_x86(s); +#elif ARCH_AARCH64 + ff_aacenc_dsp_init_aarch64(s); +#endif +} diff --git a/libavcodec/aacencdsp.h b/libavcodec/aacencdsp.h index 77aa133691..6d9ae221d1 100644 --- a/libavcodec/aacencdsp.h +++ b/libavcodec/aacencdsp.h @@ -19,12 +19,6 @@ #ifndef AVCODEC_AACENCDSP_H #define AVCODEC_AACENCDSP_H -#include - -#include "config.h" - -#include "libavutil/macros.h" - typedef struct AACEncDSPContext { void (*abs_pow34)(float *out, const float *in, const int size); void (*quant_bands)(int *out, const float *in, const float *scaled, @@ -32,44 +26,9 @@ typedef struct AACEncDSPContext { const float rounding); } AACEncDSPContext; +void ff_aacenc_dsp_init(AACEncDSPContext *s); void ff_aacenc_dsp_init_riscv(AACEncDSPContext *s); void ff_aacenc_dsp_init_x86(AACEncDSPContext *s); void ff_aacenc_dsp_init_aarch64(AACEncDSPContext *s); -static inline void abs_pow34_v(float *out, const float *in, const int size) -{ - for (int i = 0; i < size; i++) { - float a = fabsf(in[i]); - out[i] = sqrtf(a * sqrtf(a)); - } -} - -static inline void quantize_bands(int *out, const float *in, const float *scaled, - int size, int is_signed, int maxval, const float Q34, - const float rounding) -{ - for (int i = 0; i < size; i++) { - float qc = scaled[i] * Q34; - int tmp = (int)FFMIN((float)(qc + rounding), (float)maxval); - if (is_signed && in[i] < 0.0f) { - tmp = -tmp; - } - out[i] = tmp; - } -} - -static inline void ff_aacenc_dsp_init(AACEncDSPContext *s) -{ - s->abs_pow34 = abs_pow34_v; - s->quant_bands = quantize_bands; - -#if ARCH_RISCV - ff_aacenc_dsp_init_riscv(s); -#elif ARCH_X86 && HAVE_X86ASM - ff_aacenc_dsp_init_x86(s); -#elif ARCH_AARCH64 - ff_aacenc_dsp_init_aarch64(s); -#endif -} - #endif