* [FFmpeg-devel] [PATCH] avcodec: add ACC_NON_HE decoder
@ 2023-01-31 16:34 Kristofer Björkström
2023-01-31 20:01 ` Lynne
2023-01-31 20:18 ` Andreas Rheinhardt
0 siblings, 2 replies; 5+ messages in thread
From: Kristofer Björkström @ 2023-01-31 16:34 UTC (permalink / raw)
To: ffmpeg-devel
As ACC decoder but with HE and HEv2 disabled.
Signed-off-by: Kristofer Björkström <kristofb@axis.com>
---
Changelog | 1 +
configure | 1 +
libavcodec/Makefile | 3 +++
libavcodec/aacdec.c | 21 +++++++++++++++++++++
libavcodec/aacdec_template.c | 8 ++++++++
libavcodec/aactab.c | 2 +-
libavcodec/aarch64/Makefile | 4 ++++
libavcodec/allcodecs.c | 1 +
libavcodec/arm/Makefile | 4 ++++
libavcodec/mips/Makefile | 4 ++++
libavcodec/version.h | 2 +-
libavcodec/x86/Makefile | 4 ++++
tests/checkasm/Makefile | 2 ++
tests/checkasm/checkasm.c | 2 +-
14 files changed, 56 insertions(+), 3 deletions(-)
diff --git a/Changelog b/Changelog
index aa0dad13a1..a9f5b54baa 100644
--- a/Changelog
+++ b/Changelog
@@ -35,6 +35,7 @@ version <next>:
- ffmpeg CLI new options: -enc_stats_pre[_fmt], -enc_stats_post[_fmt]
- hstack_vaapi, vstack_vaapi and xstack_vaapi filters
- XMD ADPCM decoder and demuxer
+- ACC NON HE decoder
version 5.1:
diff --git a/configure b/configure
index 47790d10f5..7a06c1a34c 100755
--- a/configure
+++ b/configure
@@ -2746,6 +2746,7 @@ rdft_select="fft"
# decoders / encoders
aac_decoder_select="adts_header mpeg4audio sinewin"
+aac_non_he_decoder_select="adts_header mpeg4audio sinewin"
aac_fixed_decoder_select="adts_header mpeg4audio"
aac_encoder_select="audio_frame_queue iirfilter lpc sinewin"
aac_latm_decoder_select="aac_decoder aac_latm_parser"
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 304c2bc2e3..43d86e1899 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -180,6 +180,9 @@ OBJS-$(CONFIG_A64MULTI5_ENCODER) += a64multienc.o elbg.o
OBJS-$(CONFIG_AAC_DECODER) += aacdec.o aactab.o aacsbr.o aacps_common.o aacps_float.o \
kbdwin.o \
sbrdsp.o aacpsdsp_float.o cbrt_data.o
+OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aacdec.o aactab.o aacsbr.o aacps_common.o aacps_float.o \
+ kbdwin.o \
+ sbrdsp.o aacpsdsp_float.o cbrt_data.o
OBJS-$(CONFIG_AAC_FIXED_DECODER) += aacdec_fixed.o aactab.o aacsbr_fixed.o aacps_common.o aacps_fixed.o \
kbdwin.o \
sbrdsp_fixed.o aacpsdsp_fixed.o cbrt_data_fixed.o
diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
index ca31540d3c..b55de9e180 100644
--- a/libavcodec/aacdec.c
+++ b/libavcodec/aacdec.c
@@ -571,6 +571,27 @@ const FFCodec ff_aac_decoder = {
.p.profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
};
+const FFCodec ff_aac_non_he_decoder = {
+ .p.name = "aac",
+ CODEC_LONG_NAME("AAC (Advanced Audio Coding)"),
+ .p.type = AVMEDIA_TYPE_AUDIO,
+ .p.id = AV_CODEC_ID_AAC,
+ .priv_data_size = sizeof(AACContext),
+ .init = aac_decode_init,
+ .close = aac_decode_close,
+ FF_CODEC_DECODE_CB(aac_decode_frame),
+ .p.sample_fmts = (const enum AVSampleFormat[]) {
+ AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE
+ },
+ .p.capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,
+ .caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
+ CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(aac_channel_layout)
+ .p.ch_layouts = aac_ch_layout,
+ .flush = flush,
+ .p.priv_class = &aac_decoder_class,
+ .p.profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
+};
+
/*
Note: This decoder filter is intended to decode LATM streams transferred
in MPEG transport streams which only contain one program.
diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c
index 444dc4fa9d..bdadecac54 100644
--- a/libavcodec/aacdec_template.c
+++ b/libavcodec/aacdec_template.c
@@ -93,6 +93,7 @@
#include "libavutil/thread.h"
#include "decode.h"
#include "internal.h"
+#include "config_components.h"
static VLC vlc_scalefactors;
static VLC vlc_spectral[11];
@@ -1019,7 +1020,14 @@ static int decode_audio_specific_config_gb(AACContext *ac,
*m4ac = m4ac_bak;
return AVERROR_INVALIDDATA;
}
+#if CONFIG_AAC_NON_HE_DECODER
+ if (m4ac->ps > 0 || m4ac->sbr > 0 || avctx->profile >= FF_PROFILE_AAC_HE) {
+ av_log(avctx, AV_LOG_ERROR, "HE-AAC is not supported\n");
+
+ return AVERROR_INVALIDDATA;
+ }
+#endif
skip_bits_long(gb, i);
switch (m4ac->object_type) {
diff --git a/libavcodec/aactab.c b/libavcodec/aactab.c
index 0f4941d5df..cf75904958 100644
--- a/libavcodec/aactab.c
+++ b/libavcodec/aactab.c
@@ -39,7 +39,7 @@
float ff_aac_pow2sf_tab[428];
float ff_aac_pow34sf_tab[428];
-#if CONFIG_AAC_ENCODER || CONFIG_AAC_DECODER
+#if CONFIG_AAC_ENCODER || CONFIG_AAC_DECODER || CONFIG_AAC_NON_HE_DECODER
#include "kbdwin.h"
#include "sinewin.h"
diff --git a/libavcodec/aarch64/Makefile b/libavcodec/aarch64/Makefile
index 02fb51c3ab..016371a166 100644
--- a/libavcodec/aarch64/Makefile
+++ b/libavcodec/aarch64/Makefile
@@ -17,6 +17,8 @@ OBJS-$(CONFIG_VP8DSP) += aarch64/vp8dsp_init_aarch64.o
# decoders/encoders
OBJS-$(CONFIG_AAC_DECODER) += aarch64/aacpsdsp_init_aarch64.o \
aarch64/sbrdsp_init_aarch64.o
+OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aarch64/aacpsdsp_init_aarch64.o \
+ aarch64/sbrdsp_init_aarch64.o
OBJS-$(CONFIG_DCA_DECODER) += aarch64/synth_filter_init.o
OBJS-$(CONFIG_OPUS_DECODER) += aarch64/opusdsp_init.o
OBJS-$(CONFIG_RV40_DECODER) += aarch64/rv40dsp_init_aarch64.o
@@ -36,6 +38,7 @@ ARMV8-OBJS-$(CONFIG_VIDEODSP) += aarch64/videodsp.o
# subsystems
NEON-OBJS-$(CONFIG_AAC_DECODER) += aarch64/sbrdsp_neon.o
+NEON-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aarch64/sbrdsp_neon.o
NEON-OBJS-$(CONFIG_FFT) += aarch64/fft_neon.o
NEON-OBJS-$(CONFIG_FMTCONVERT) += aarch64/fmtconvert_neon.o
NEON-OBJS-$(CONFIG_H264CHROMA) += aarch64/h264cmc_neon.o
@@ -56,6 +59,7 @@ NEON-OBJS-$(CONFIG_VP8DSP) += aarch64/vp8dsp_neon.o
# decoders/encoders
NEON-OBJS-$(CONFIG_AAC_DECODER) += aarch64/aacpsdsp_neon.o
+NEON-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aarch64/aacpsdsp_neon.o
NEON-OBJS-$(CONFIG_DCA_DECODER) += aarch64/synth_filter_neon.o
NEON-OBJS-$(CONFIG_OPUS_DECODER) += aarch64/opusdsp_neon.o
NEON-OBJS-$(CONFIG_VORBIS_DECODER) += aarch64/vorbisdsp_neon.o
diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
index ff82423a88..72ae363fbf 100644
--- a/libavcodec/allcodecs.c
+++ b/libavcodec/allcodecs.c
@@ -423,6 +423,7 @@ extern const FFCodec ff_zmbv_decoder;
/* audio codecs */
extern const FFCodec ff_aac_encoder;
extern const FFCodec ff_aac_decoder;
+extern const FFCodec ff_aac_non_he_decoder;
extern const FFCodec ff_aac_fixed_decoder;
extern const FFCodec ff_aac_latm_decoder;
extern const FFCodec ff_ac3_encoder;
diff --git a/libavcodec/arm/Makefile b/libavcodec/arm/Makefile
index 5d284bdc01..f813cdc65f 100644
--- a/libavcodec/arm/Makefile
+++ b/libavcodec/arm/Makefile
@@ -35,6 +35,8 @@ OBJS-$(CONFIG_VP8DSP) += arm/vp8dsp_init_arm.o
# decoders/encoders
OBJS-$(CONFIG_AAC_DECODER) += arm/aacpsdsp_init_arm.o \
arm/sbrdsp_init_arm.o
+OBJS-$(CONFIG_AAC_NON_HE_DECODER) += arm/aacpsdsp_init_arm.o \
+ arm/sbrdsp_init_arm.o
OBJS-$(CONFIG_DCA_DECODER) += arm/synth_filter_init_arm.o
OBJS-$(CONFIG_FLAC_DECODER) += arm/flacdsp_init_arm.o \
arm/flacdsp_arm.o
@@ -134,6 +136,8 @@ NEON-OBJS-$(CONFIG_VP8DSP) += arm/vp8dsp_init_neon.o \
# decoders/encoders
NEON-OBJS-$(CONFIG_AAC_DECODER) += arm/aacpsdsp_neon.o \
arm/sbrdsp_neon.o
+NEON-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += arm/aacpsdsp_neon.o \
+ arm/sbrdsp_neon.o
NEON-OBJS-$(CONFIG_LLAUDDSP) += arm/lossless_audiodsp_neon.o
NEON-OBJS-$(CONFIG_DCA_DECODER) += arm/synth_filter_neon.o
NEON-OBJS-$(CONFIG_HEVC_DECODER) += arm/hevcdsp_init_neon.o \
diff --git a/libavcodec/mips/Makefile b/libavcodec/mips/Makefile
index 05ed63bf3e..1070b5e77f 100644
--- a/libavcodec/mips/Makefile
+++ b/libavcodec/mips/Makefile
@@ -20,6 +20,10 @@ OBJS-$(CONFIG_AAC_DECODER) += mips/aacdec_mips.o \
mips/aacsbr_mips.o \
mips/sbrdsp_mips.o \
mips/aacpsdsp_mips.o
+OBJS-$(CONFIG_AAC_NON_HE_DECODER) += mips/aacdec_mips.o \
+ mips/aacsbr_mips.o \
+ mips/sbrdsp_mips.o \
+ mips/aacpsdsp_mips.o
MIPSDSP-OBJS-$(CONFIG_AAC_ENCODER) += mips/aaccoder_mips.o
MIPSFPU-OBJS-$(CONFIG_AAC_ENCODER) += mips/iirfilter_mips.o
OBJS-$(CONFIG_HEVC_DECODER) += mips/hevcdsp_init_mips.o \
diff --git a/libavcodec/version.h b/libavcodec/version.h
index 2ed4ef5547..499c6bb175 100644
--- a/libavcodec/version.h
+++ b/libavcodec/version.h
@@ -29,7 +29,7 @@
#include "version_major.h"
-#define LIBAVCODEC_VERSION_MINOR 60
+#define LIBAVCODEC_VERSION_MINOR 61
#define LIBAVCODEC_VERSION_MICRO 100
#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
diff --git a/libavcodec/x86/Makefile b/libavcodec/x86/Makefile
index 118daca333..64fec2ce59 100644
--- a/libavcodec/x86/Makefile
+++ b/libavcodec/x86/Makefile
@@ -41,6 +41,8 @@ OBJS-$(CONFIG_XMM_CLOBBER_TEST) += x86/w64xmmtest.o
# decoders/encoders
OBJS-$(CONFIG_AAC_DECODER) += x86/aacpsdsp_init.o \
x86/sbrdsp_init.o
+OBJS-$(CONFIG_AAC_NON_HE_DECODER) += x86/aacpsdsp_init.o \
+ x86/sbrdsp_init.o
OBJS-$(CONFIG_AAC_ENCODER) += x86/aacencdsp_init.o
OBJS-$(CONFIG_ADPCM_G722_DECODER) += x86/g722dsp_init.o
OBJS-$(CONFIG_ADPCM_G722_ENCODER) += x86/g722dsp_init.o
@@ -151,6 +153,8 @@ X86ASM-OBJS-$(CONFIG_VP8DSP) += x86/vp8dsp.o \
# decoders/encoders
X86ASM-OBJS-$(CONFIG_AAC_DECODER) += x86/aacpsdsp.o \
x86/sbrdsp.o
+X86ASM-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += x86/aacpsdsp.o \
+ x86/sbrdsp.o
X86ASM-OBJS-$(CONFIG_AAC_ENCODER) += x86/aacencdsp.o
X86ASM-OBJS-$(CONFIG_ADPCM_G722_DECODER) += x86/g722dsp.o
X86ASM-OBJS-$(CONFIG_ADPCM_G722_ENCODER) += x86/g722dsp.o
diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile
index a6f06c7007..dd8ac1f278 100644
--- a/tests/checkasm/Makefile
+++ b/tests/checkasm/Makefile
@@ -20,6 +20,8 @@ AVCODECOBJS-$(CONFIG_VIDEODSP) += videodsp.o
# decoders/encoders
AVCODECOBJS-$(CONFIG_AAC_DECODER) += aacpsdsp.o \
sbrdsp.o
+AVCODECOBJS-$(CONFIG_AAC_NON_HE_DECODER) += aacpsdsp.o \
+ sbrdsp.o
AVCODECOBJS-$(CONFIG_ALAC_DECODER) += alacdsp.o
AVCODECOBJS-$(CONFIG_DCA_DECODER) += synth_filter.o
AVCODECOBJS-$(CONFIG_EXR_DECODER) += exrdsp.o
diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
index e96d84a7da..8f7796ca3a 100644
--- a/tests/checkasm/checkasm.c
+++ b/tests/checkasm/checkasm.c
@@ -74,7 +74,7 @@ static const struct {
void (*func)(void);
} tests[] = {
#if CONFIG_AVCODEC
- #if CONFIG_AAC_DECODER
+ #if CONFIG_AAC_DECODER || CONFIG_AAC_NON_HE_DECODER
{ "aacpsdsp", checkasm_check_aacpsdsp },
{ "sbrdsp", checkasm_check_sbrdsp },
#endif
--
2.30.2
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avcodec: add ACC_NON_HE decoder
2023-01-31 16:34 [FFmpeg-devel] [PATCH] avcodec: add ACC_NON_HE decoder Kristofer Björkström
@ 2023-01-31 20:01 ` Lynne
2023-01-31 20:18 ` Andreas Rheinhardt
1 sibling, 0 replies; 5+ messages in thread
From: Lynne @ 2023-01-31 20:01 UTC (permalink / raw)
To: FFmpeg development discussions and patches
Jan 31, 2023, 17:34 by Kristofer.Bjorkstrom@axis.com:
> As ACC decoder but with HE and HEv2 disabled.
>
> Signed-off-by: Kristofer Björkström <kristofb@axis.com>
> ---
> Changelog | 1 +
> configure | 1 +
> libavcodec/Makefile | 3 +++
> libavcodec/aacdec.c | 21 +++++++++++++++++++++
> libavcodec/aacdec_template.c | 8 ++++++++
> libavcodec/aactab.c | 2 +-
> libavcodec/aarch64/Makefile | 4 ++++
> libavcodec/allcodecs.c | 1 +
> libavcodec/arm/Makefile | 4 ++++
> libavcodec/mips/Makefile | 4 ++++
> libavcodec/version.h | 2 +-
> libavcodec/x86/Makefile | 4 ++++
> tests/checkasm/Makefile | 2 ++
> tests/checkasm/checkasm.c | 2 +-
> 14 files changed, 56 insertions(+), 3 deletions(-)
>
> diff --git a/Changelog b/Changelog
> index aa0dad13a1..a9f5b54baa 100644
> --- a/Changelog
> +++ b/Changelog
> @@ -35,6 +35,7 @@ version <next>:
> - ffmpeg CLI new options: -enc_stats_pre[_fmt], -enc_stats_post[_fmt]
> - hstack_vaapi, vstack_vaapi and xstack_vaapi filters
> - XMD ADPCM decoder and demuxer
> +- ACC NON HE decoder
>
Why? Also, why a separate decoder rather than a --disable-he-aac config option?
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avcodec: add ACC_NON_HE decoder
2023-01-31 16:34 [FFmpeg-devel] [PATCH] avcodec: add ACC_NON_HE decoder Kristofer Björkström
2023-01-31 20:01 ` Lynne
@ 2023-01-31 20:18 ` Andreas Rheinhardt
2023-02-01 14:55 ` Kristofer Björkström
1 sibling, 1 reply; 5+ messages in thread
From: Andreas Rheinhardt @ 2023-01-31 20:18 UTC (permalink / raw)
To: ffmpeg-devel
Kristofer Björkström:
> As ACC decoder but with HE and HEv2 disabled.
>
> Signed-off-by: Kristofer Björkström <kristofb@axis.com>
> ---
> Changelog | 1 +
> configure | 1 +
> libavcodec/Makefile | 3 +++
> libavcodec/aacdec.c | 21 +++++++++++++++++++++
> libavcodec/aacdec_template.c | 8 ++++++++
> libavcodec/aactab.c | 2 +-
> libavcodec/aarch64/Makefile | 4 ++++
> libavcodec/allcodecs.c | 1 +
> libavcodec/arm/Makefile | 4 ++++
> libavcodec/mips/Makefile | 4 ++++
> libavcodec/version.h | 2 +-
> libavcodec/x86/Makefile | 4 ++++
> tests/checkasm/Makefile | 2 ++
> tests/checkasm/checkasm.c | 2 +-
> 14 files changed, 56 insertions(+), 3 deletions(-)
>
> diff --git a/Changelog b/Changelog
> index aa0dad13a1..a9f5b54baa 100644
> --- a/Changelog
> +++ b/Changelog
> @@ -35,6 +35,7 @@ version <next>:
> - ffmpeg CLI new options: -enc_stats_pre[_fmt], -enc_stats_post[_fmt]
> - hstack_vaapi, vstack_vaapi and xstack_vaapi filters
> - XMD ADPCM decoder and demuxer
> +- ACC NON HE decoder
What is the aim of this? Is it patents?
>
>
> version 5.1:
> diff --git a/configure b/configure
> index 47790d10f5..7a06c1a34c 100755
> --- a/configure
> +++ b/configure
> @@ -2746,6 +2746,7 @@ rdft_select="fft"
>
> # decoders / encoders
> aac_decoder_select="adts_header mpeg4audio sinewin"
> +aac_non_he_decoder_select="adts_header mpeg4audio sinewin"
> aac_fixed_decoder_select="adts_header mpeg4audio"
> aac_encoder_select="audio_frame_queue iirfilter lpc sinewin"
> aac_latm_decoder_select="aac_decoder aac_latm_parser"
> diff --git a/libavcodec/Makefile b/libavcodec/Makefile
> index 304c2bc2e3..43d86e1899 100644
> --- a/libavcodec/Makefile
> +++ b/libavcodec/Makefile
> @@ -180,6 +180,9 @@ OBJS-$(CONFIG_A64MULTI5_ENCODER) += a64multienc.o elbg.o
> OBJS-$(CONFIG_AAC_DECODER) += aacdec.o aactab.o aacsbr.o aacps_common.o aacps_float.o \
> kbdwin.o \
> sbrdsp.o aacpsdsp_float.o cbrt_data.o
> +OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aacdec.o aactab.o aacsbr.o aacps_common.o aacps_float.o \
> + kbdwin.o \
> + sbrdsp.o aacpsdsp_float.o cbrt_data.o
This will require keeping both these lists and all similar lists in all
arch-specific Makefiles in sync. This is maintainence work and prone to
fail; the usual way to achieve this aim is by making a decoder select
another one in configure.
> OBJS-$(CONFIG_AAC_FIXED_DECODER) += aacdec_fixed.o aactab.o aacsbr_fixed.o aacps_common.o aacps_fixed.o \
> kbdwin.o \
> sbrdsp_fixed.o aacpsdsp_fixed.o cbrt_data_fixed.o
> diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
> index ca31540d3c..b55de9e180 100644
> --- a/libavcodec/aacdec.c
> +++ b/libavcodec/aacdec.c
> @@ -571,6 +571,27 @@ const FFCodec ff_aac_decoder = {
> .p.profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
> };
>
> +const FFCodec ff_aac_non_he_decoder = {
> + .p.name = "aac",
> + CODEC_LONG_NAME("AAC (Advanced Audio Coding)"),
> + .p.type = AVMEDIA_TYPE_AUDIO,
> + .p.id = AV_CODEC_ID_AAC,
> + .priv_data_size = sizeof(AACContext),
> + .init = aac_decode_init,
> + .close = aac_decode_close,
> + FF_CODEC_DECODE_CB(aac_decode_frame),
> + .p.sample_fmts = (const enum AVSampleFormat[]) {
> + AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE
> + },
> + .p.capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,
> + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
> + CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(aac_channel_layout)
> + .p.ch_layouts = aac_ch_layout,
> + .flush = flush,
> + .p.priv_class = &aac_decoder_class,
> + .p.profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
> +};
> +
> /*
> Note: This decoder filter is intended to decode LATM streams transferred
> in MPEG transport streams which only contain one program.
> diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c
> index 444dc4fa9d..bdadecac54 100644
> --- a/libavcodec/aacdec_template.c
> +++ b/libavcodec/aacdec_template.c
> @@ -93,6 +93,7 @@
> #include "libavutil/thread.h"
> #include "decode.h"
> #include "internal.h"
> +#include "config_components.h"
>
> static VLC vlc_scalefactors;
> static VLC vlc_spectral[11];
> @@ -1019,7 +1020,14 @@ static int decode_audio_specific_config_gb(AACContext *ac,
> *m4ac = m4ac_bak;
> return AVERROR_INVALIDDATA;
> }
> +#if CONFIG_AAC_NON_HE_DECODER
> + if (m4ac->ps > 0 || m4ac->sbr > 0 || avctx->profile >= FF_PROFILE_AAC_HE) {
>
> + av_log(avctx, AV_LOG_ERROR, "HE-AAC is not supported\n");
> +
> + return AVERROR_INVALIDDATA;
> + }
> +#endif
1. This is completely wrong, as it does not distinguish between the
non-HE decoder and the ordinary decoders (i.e. it will cripple the
latter one).
2. Although you only add a floating-point non-HE decoder, you also add
this check to the fixed-point decoders (and cripple them in the process).
> skip_bits_long(gb, i);
>
> switch (m4ac->object_type) {
> diff --git a/libavcodec/aactab.c b/libavcodec/aactab.c
> index 0f4941d5df..cf75904958 100644
> --- a/libavcodec/aactab.c
> +++ b/libavcodec/aactab.c
> @@ -39,7 +39,7 @@
> float ff_aac_pow2sf_tab[428];
> float ff_aac_pow34sf_tab[428];
>
> -#if CONFIG_AAC_ENCODER || CONFIG_AAC_DECODER
> +#if CONFIG_AAC_ENCODER || CONFIG_AAC_DECODER || CONFIG_AAC_NON_HE_DECODER
> #include "kbdwin.h"
> #include "sinewin.h"
>
> diff --git a/libavcodec/aarch64/Makefile b/libavcodec/aarch64/Makefile
> index 02fb51c3ab..016371a166 100644
> --- a/libavcodec/aarch64/Makefile
> +++ b/libavcodec/aarch64/Makefile
> @@ -17,6 +17,8 @@ OBJS-$(CONFIG_VP8DSP) += aarch64/vp8dsp_init_aarch64.o
> # decoders/encoders
> OBJS-$(CONFIG_AAC_DECODER) += aarch64/aacpsdsp_init_aarch64.o \
> aarch64/sbrdsp_init_aarch64.o
> +OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aarch64/aacpsdsp_init_aarch64.o \
> + aarch64/sbrdsp_init_aarch64.o
> OBJS-$(CONFIG_DCA_DECODER) += aarch64/synth_filter_init.o
> OBJS-$(CONFIG_OPUS_DECODER) += aarch64/opusdsp_init.o
> OBJS-$(CONFIG_RV40_DECODER) += aarch64/rv40dsp_init_aarch64.o
> @@ -36,6 +38,7 @@ ARMV8-OBJS-$(CONFIG_VIDEODSP) += aarch64/videodsp.o
>
> # subsystems
> NEON-OBJS-$(CONFIG_AAC_DECODER) += aarch64/sbrdsp_neon.o
> +NEON-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aarch64/sbrdsp_neon.o
> NEON-OBJS-$(CONFIG_FFT) += aarch64/fft_neon.o
> NEON-OBJS-$(CONFIG_FMTCONVERT) += aarch64/fmtconvert_neon.o
> NEON-OBJS-$(CONFIG_H264CHROMA) += aarch64/h264cmc_neon.o
> @@ -56,6 +59,7 @@ NEON-OBJS-$(CONFIG_VP8DSP) += aarch64/vp8dsp_neon.o
>
> # decoders/encoders
> NEON-OBJS-$(CONFIG_AAC_DECODER) += aarch64/aacpsdsp_neon.o
> +NEON-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aarch64/aacpsdsp_neon.o
> NEON-OBJS-$(CONFIG_DCA_DECODER) += aarch64/synth_filter_neon.o
> NEON-OBJS-$(CONFIG_OPUS_DECODER) += aarch64/opusdsp_neon.o
> NEON-OBJS-$(CONFIG_VORBIS_DECODER) += aarch64/vorbisdsp_neon.o
> diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
> index ff82423a88..72ae363fbf 100644
> --- a/libavcodec/allcodecs.c
> +++ b/libavcodec/allcodecs.c
> @@ -423,6 +423,7 @@ extern const FFCodec ff_zmbv_decoder;
> /* audio codecs */
> extern const FFCodec ff_aac_encoder;
> extern const FFCodec ff_aac_decoder;
> +extern const FFCodec ff_aac_non_he_decoder;
> extern const FFCodec ff_aac_fixed_decoder;
> extern const FFCodec ff_aac_latm_decoder;
> extern const FFCodec ff_ac3_encoder;
> diff --git a/libavcodec/arm/Makefile b/libavcodec/arm/Makefile
> index 5d284bdc01..f813cdc65f 100644
> --- a/libavcodec/arm/Makefile
> +++ b/libavcodec/arm/Makefile
> @@ -35,6 +35,8 @@ OBJS-$(CONFIG_VP8DSP) += arm/vp8dsp_init_arm.o
> # decoders/encoders
> OBJS-$(CONFIG_AAC_DECODER) += arm/aacpsdsp_init_arm.o \
> arm/sbrdsp_init_arm.o
> +OBJS-$(CONFIG_AAC_NON_HE_DECODER) += arm/aacpsdsp_init_arm.o \
> + arm/sbrdsp_init_arm.o
> OBJS-$(CONFIG_DCA_DECODER) += arm/synth_filter_init_arm.o
> OBJS-$(CONFIG_FLAC_DECODER) += arm/flacdsp_init_arm.o \
> arm/flacdsp_arm.o
> @@ -134,6 +136,8 @@ NEON-OBJS-$(CONFIG_VP8DSP) += arm/vp8dsp_init_neon.o \
> # decoders/encoders
> NEON-OBJS-$(CONFIG_AAC_DECODER) += arm/aacpsdsp_neon.o \
> arm/sbrdsp_neon.o
> +NEON-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += arm/aacpsdsp_neon.o \
> + arm/sbrdsp_neon.o
> NEON-OBJS-$(CONFIG_LLAUDDSP) += arm/lossless_audiodsp_neon.o
> NEON-OBJS-$(CONFIG_DCA_DECODER) += arm/synth_filter_neon.o
> NEON-OBJS-$(CONFIG_HEVC_DECODER) += arm/hevcdsp_init_neon.o \
> diff --git a/libavcodec/mips/Makefile b/libavcodec/mips/Makefile
> index 05ed63bf3e..1070b5e77f 100644
> --- a/libavcodec/mips/Makefile
> +++ b/libavcodec/mips/Makefile
> @@ -20,6 +20,10 @@ OBJS-$(CONFIG_AAC_DECODER) += mips/aacdec_mips.o \
> mips/aacsbr_mips.o \
> mips/sbrdsp_mips.o \
> mips/aacpsdsp_mips.o
> +OBJS-$(CONFIG_AAC_NON_HE_DECODER) += mips/aacdec_mips.o \
> + mips/aacsbr_mips.o \
> + mips/sbrdsp_mips.o \
> + mips/aacpsdsp_mips.o
> MIPSDSP-OBJS-$(CONFIG_AAC_ENCODER) += mips/aaccoder_mips.o
> MIPSFPU-OBJS-$(CONFIG_AAC_ENCODER) += mips/iirfilter_mips.o
> OBJS-$(CONFIG_HEVC_DECODER) += mips/hevcdsp_init_mips.o \
> diff --git a/libavcodec/version.h b/libavcodec/version.h
> index 2ed4ef5547..499c6bb175 100644
> --- a/libavcodec/version.h
> +++ b/libavcodec/version.h
> @@ -29,7 +29,7 @@
>
> #include "version_major.h"
>
> -#define LIBAVCODEC_VERSION_MINOR 60
> +#define LIBAVCODEC_VERSION_MINOR 61
> #define LIBAVCODEC_VERSION_MICRO 100
>
> #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
> diff --git a/libavcodec/x86/Makefile b/libavcodec/x86/Makefile
> index 118daca333..64fec2ce59 100644
> --- a/libavcodec/x86/Makefile
> +++ b/libavcodec/x86/Makefile
> @@ -41,6 +41,8 @@ OBJS-$(CONFIG_XMM_CLOBBER_TEST) += x86/w64xmmtest.o
> # decoders/encoders
> OBJS-$(CONFIG_AAC_DECODER) += x86/aacpsdsp_init.o \
> x86/sbrdsp_init.o
> +OBJS-$(CONFIG_AAC_NON_HE_DECODER) += x86/aacpsdsp_init.o \
> + x86/sbrdsp_init.o
> OBJS-$(CONFIG_AAC_ENCODER) += x86/aacencdsp_init.o
> OBJS-$(CONFIG_ADPCM_G722_DECODER) += x86/g722dsp_init.o
> OBJS-$(CONFIG_ADPCM_G722_ENCODER) += x86/g722dsp_init.o
> @@ -151,6 +153,8 @@ X86ASM-OBJS-$(CONFIG_VP8DSP) += x86/vp8dsp.o \
> # decoders/encoders
> X86ASM-OBJS-$(CONFIG_AAC_DECODER) += x86/aacpsdsp.o \
> x86/sbrdsp.o
> +X86ASM-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += x86/aacpsdsp.o \
> + x86/sbrdsp.o
> X86ASM-OBJS-$(CONFIG_AAC_ENCODER) += x86/aacencdsp.o
> X86ASM-OBJS-$(CONFIG_ADPCM_G722_DECODER) += x86/g722dsp.o
> X86ASM-OBJS-$(CONFIG_ADPCM_G722_ENCODER) += x86/g722dsp.o
> diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile
> index a6f06c7007..dd8ac1f278 100644
> --- a/tests/checkasm/Makefile
> +++ b/tests/checkasm/Makefile
> @@ -20,6 +20,8 @@ AVCODECOBJS-$(CONFIG_VIDEODSP) += videodsp.o
> # decoders/encoders
> AVCODECOBJS-$(CONFIG_AAC_DECODER) += aacpsdsp.o \
> sbrdsp.o
> +AVCODECOBJS-$(CONFIG_AAC_NON_HE_DECODER) += aacpsdsp.o \
> + sbrdsp.o
> AVCODECOBJS-$(CONFIG_ALAC_DECODER) += alacdsp.o
> AVCODECOBJS-$(CONFIG_DCA_DECODER) += synth_filter.o
> AVCODECOBJS-$(CONFIG_EXR_DECODER) += exrdsp.o
> diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
> index e96d84a7da..8f7796ca3a 100644
> --- a/tests/checkasm/checkasm.c
> +++ b/tests/checkasm/checkasm.c
> @@ -74,7 +74,7 @@ static const struct {
> void (*func)(void);
> } tests[] = {
> #if CONFIG_AVCODEC
> - #if CONFIG_AAC_DECODER
> + #if CONFIG_AAC_DECODER || CONFIG_AAC_NON_HE_DECODER
> { "aacpsdsp", checkasm_check_aacpsdsp },
> { "sbrdsp", checkasm_check_sbrdsp },
> #endif
> --
> 2.30.2
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avcodec: add ACC_NON_HE decoder
2023-01-31 20:18 ` Andreas Rheinhardt
@ 2023-02-01 14:55 ` Kristofer Björkström
2023-02-01 15:19 ` Jean-Baptiste Kempf
0 siblings, 1 reply; 5+ messages in thread
From: Kristofer Björkström @ 2023-02-01 14:55 UTC (permalink / raw)
To: ffmpeg-devel
>Kristofer Björkström:
>> As ACC decoder but with HE and HEv2 disabled.
>>
>> Signed-off-by: Kristofer Björkström <kristofb@axis.com>>
>> ---
>> Changelog | 1 +
>> configure | 1 +
>> libavcodec/Makefile | 3 +++
>> libavcodec/aacdec.c | 21 +++++++++++++++++++++
>> libavcodec/aacdec_template.c | 8 ++++++++
>> libavcodec/aactab.c | 2 +-
>> libavcodec/aarch64/Makefile | 4 ++++
>> libavcodec/allcodecs.c | 1 +
>> libavcodec/arm/Makefile | 4 ++++
>> libavcodec/mips/Makefile | 4 ++++
>> libavcodec/version.h | 2 +-
>> libavcodec/x86/Makefile | 4 ++++
>> tests/checkasm/Makefile | 2 ++
>> tests/checkasm/checkasm.c | 2 +-
>> 14 files changed, 56 insertions(+), 3 deletions(-)
>>
>> diff --git a/Changelog b/Changelog
>> index aa0dad13a1..a9f5b54baa 100644
>> --- a/Changelog
>> +++ b/Changelog
>> @@ -35,6 +35,7 @@ version <next>>:
>> - ffmpeg CLI new options: -enc_stats_pre[_fmt], -enc_stats_post[_fmt]
>> - hstack_vaapi, vstack_vaapi and xstack_vaapi filters
>> - XMD ADPCM decoder and demuxer
>> +- ACC NON HE decoder
>
>What is the aim of this? Is it patents?
To avoid patents in AAC HE
>
>>
>>
>> version 5.1:
>> diff --git a/configure b/configure
>> index 47790d10f5..7a06c1a34c 100755
>> --- a/configure
>> +++ b/configure
>> @@ -2746,6 +2746,7 @@ rdft_select="fft"
>>
>> # decoders / encoders
>> aac_decoder_select="adts_header mpeg4audio sinewin"
>> +aac_non_he_decoder_select="adts_header mpeg4audio sinewin"
>> aac_fixed_decoder_select="adts_header mpeg4audio"
>> aac_encoder_select="audio_frame_queue iirfilter lpc sinewin"
>> aac_latm_decoder_select="aac_decoder aac_latm_parser"
>> diff --git a/libavcodec/Makefile b/libavcodec/Makefile
>> index 304c2bc2e3..43d86e1899 100644
>> --- a/libavcodec/Makefile
>> +++ b/libavcodec/Makefile
>> @@ -180,6 +180,9 @@ OBJS-$(CONFIG_A64MULTI5_ENCODER) += a64multienc.o elbg.o
>> OBJS-$(CONFIG_AAC_DECODER) += aacdec.o aactab.o aacsbr.o aacps_common.o aacps_float.o \
>> kbdwin.o \
>> sbrdsp.o aacpsdsp_float.o cbrt_data.o
>> +OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aacdec.o aactab.o aacsbr.o aacps_common.o aacps_float.o \
>> + kbdwin.o \
>> + sbrdsp.o aacpsdsp_float.o cbrt_data.o
>
>This will require keeping both these lists and all similar lists in all
>arch-specific Makefiles in sync. This is maintainence work and prone to
>fail; the usual way to achieve this aim is by making a decoder select
>another one in configure.
New patch "[PATCH] configure: add --disable-he-aac option" avoids this
>
>> OBJS-$(CONFIG_AAC_FIXED_DECODER) += aacdec_fixed.o aactab.o aacsbr_fixed.o aacps_common.o aacps_fixed.o \
>> kbdwin.o \
>> sbrdsp_fixed.o aacpsdsp_fixed.o cbrt_data_fixed.o
>> diff --git a/libavcodec/aacdec.c b/libavcodec/aacdec.c
>> index ca31540d3c..b55de9e180 100644
>> --- a/libavcodec/aacdec.c
>> +++ b/libavcodec/aacdec.c
>> @@ -571,6 +571,27 @@ const FFCodec ff_aac_decoder = {
>> .p.profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
>> };
>>
>> +const FFCodec ff_aac_non_he_decoder = {
>> + .p.name = "aac",
>> + CODEC_LONG_NAME("AAC (Advanced Audio Coding)"),
>> + .p.type = AVMEDIA_TYPE_AUDIO,
>> + .p.id = AV_CODEC_ID_AAC,
>> + .priv_data_size = sizeof(AACContext),
>> + .init = aac_decode_init,
>> + .close = aac_decode_close,
>> + FF_CODEC_DECODE_CB(aac_decode_frame),
>> + .p.sample_fmts = (const enum AVSampleFormat[]) {
>> + AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE
>> + },
>> + .p.capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,
>> + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
>> + CODEC_OLD_CHANNEL_LAYOUTS_ARRAY(aac_channel_layout)
>> + .p.ch_layouts = aac_ch_layout,
>> + .flush = flush,
>> + .p.priv_class = &aac_decoder_class,
>> + .p.profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
>> +};
>> +
>> /*
>> Note: This decoder filter is intended to decode LATM streams transferred
>> in MPEG transport streams which only contain one program.
>> diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c
>> index 444dc4fa9d..bdadecac54 100644
>> --- a/libavcodec/aacdec_template.c
>> +++ b/libavcodec/aacdec_template.c
>> @@ -93,6 +93,7 @@
>> #include "libavutil/thread.h"
>> #include "decode.h"
>> #include "internal.h"
>> +#include "config_components.h"
>>
>> static VLC vlc_scalefactors;
>> static VLC vlc_spectral[11];
>> @@ -1019,7 +1020,14 @@ static int decode_audio_specific_config_gb(AACContext *ac,
>> *m4ac = m4ac_bak;
>> return AVERROR_INVALIDDATA;
>> }
>> +#if CONFIG_AAC_NON_HE_DECODER
>> + if (m4ac->>ps >> 0 || m4ac->>sbr >> 0 || avctx->>profile >>= FF_PROFILE_AAC_HE) {
>>
>> + av_log(avctx, AV_LOG_ERROR, "HE-AAC is not supported\n");
>> +
>> + return AVERROR_INVALIDDATA;
>> + }
>> +#endif
>
>1. This is completely wrong, as it does not distinguish between the
>non-HE decoder and the ordinary decoders (i.e. it will cripple the
>latter one).
>2. Although you only add a floating-point non-HE decoder, you also add
>this check to the fixed-point decoders (and cripple them in the process).
>
>
Thanks for pointing that out. Hopefully better with new patch: "[PATCH] configure: add --disable-he-aac option"
>> skip_bits_long(gb, i);
>>
>> switch (m4ac->>object_type) {
>> diff --git a/libavcodec/aactab.c b/libavcodec/aactab.c
>> index 0f4941d5df..cf75904958 100644
>> --- a/libavcodec/aactab.c
>> +++ b/libavcodec/aactab.c
>> @@ -39,7 +39,7 @@
>> float ff_aac_pow2sf_tab[428];
>> float ff_aac_pow34sf_tab[428];
>>
>> -#if CONFIG_AAC_ENCODER || CONFIG_AAC_DECODER
>> +#if CONFIG_AAC_ENCODER || CONFIG_AAC_DECODER || CONFIG_AAC_NON_HE_DECODER
>> #include "kbdwin.h"
>> #include "sinewin.h"
>>
>> diff --git a/libavcodec/aarch64/Makefile b/libavcodec/aarch64/Makefile
>> index 02fb51c3ab..016371a166 100644
>> --- a/libavcodec/aarch64/Makefile
>> +++ b/libavcodec/aarch64/Makefile
>> @@ -17,6 +17,8 @@ OBJS-$(CONFIG_VP8DSP) += aarch64/vp8dsp_init_aarch64.o
>> # decoders/encoders
>> OBJS-$(CONFIG_AAC_DECODER) += aarch64/aacpsdsp_init_aarch64.o \
>> aarch64/sbrdsp_init_aarch64.o
>> +OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aarch64/aacpsdsp_init_aarch64.o \
>> + aarch64/sbrdsp_init_aarch64.o
>> OBJS-$(CONFIG_DCA_DECODER) += aarch64/synth_filter_init.o
>> OBJS-$(CONFIG_OPUS_DECODER) += aarch64/opusdsp_init.o
>> OBJS-$(CONFIG_RV40_DECODER) += aarch64/rv40dsp_init_aarch64.o
>> @@ -36,6 +38,7 @@ ARMV8-OBJS-$(CONFIG_VIDEODSP) += aarch64/videodsp.o
>>
>> # subsystems
>> NEON-OBJS-$(CONFIG_AAC_DECODER) += aarch64/sbrdsp_neon.o
>> +NEON-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aarch64/sbrdsp_neon.o
>> NEON-OBJS-$(CONFIG_FFT) += aarch64/fft_neon.o
>> NEON-OBJS-$(CONFIG_FMTCONVERT) += aarch64/fmtconvert_neon.o
>> NEON-OBJS-$(CONFIG_H264CHROMA) += aarch64/h264cmc_neon.o
>> @@ -56,6 +59,7 @@ NEON-OBJS-$(CONFIG_VP8DSP) += aarch64/vp8dsp_neon.o
>>
>> # decoders/encoders
>> NEON-OBJS-$(CONFIG_AAC_DECODER) += aarch64/aacpsdsp_neon.o
>> +NEON-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += aarch64/aacpsdsp_neon.o
>> NEON-OBJS-$(CONFIG_DCA_DECODER) += aarch64/synth_filter_neon.o
>> NEON-OBJS-$(CONFIG_OPUS_DECODER) += aarch64/opusdsp_neon.o
>> NEON-OBJS-$(CONFIG_VORBIS_DECODER) += aarch64/vorbisdsp_neon.o
>> diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
>> index ff82423a88..72ae363fbf 100644
>> --- a/libavcodec/allcodecs.c
>> +++ b/libavcodec/allcodecs.c
>> @@ -423,6 +423,7 @@ extern const FFCodec ff_zmbv_decoder;
>> /* audio codecs */
>> extern const FFCodec ff_aac_encoder;
>> extern const FFCodec ff_aac_decoder;
>> +extern const FFCodec ff_aac_non_he_decoder;
>> extern const FFCodec ff_aac_fixed_decoder;
>> extern const FFCodec ff_aac_latm_decoder;
>> extern const FFCodec ff_ac3_encoder;
>> diff --git a/libavcodec/arm/Makefile b/libavcodec/arm/Makefile
>> index 5d284bdc01..f813cdc65f 100644
>> --- a/libavcodec/arm/Makefile
>> +++ b/libavcodec/arm/Makefile
>> @@ -35,6 +35,8 @@ OBJS-$(CONFIG_VP8DSP) += arm/vp8dsp_init_arm.o
>> # decoders/encoders
>> OBJS-$(CONFIG_AAC_DECODER) += arm/aacpsdsp_init_arm.o \
>> arm/sbrdsp_init_arm.o
>> +OBJS-$(CONFIG_AAC_NON_HE_DECODER) += arm/aacpsdsp_init_arm.o \
>> + arm/sbrdsp_init_arm.o
>> OBJS-$(CONFIG_DCA_DECODER) += arm/synth_filter_init_arm.o
>> OBJS-$(CONFIG_FLAC_DECODER) += arm/flacdsp_init_arm.o \
>> arm/flacdsp_arm.o
>> @@ -134,6 +136,8 @@ NEON-OBJS-$(CONFIG_VP8DSP) += arm/vp8dsp_init_neon.o \
>> # decoders/encoders
>> NEON-OBJS-$(CONFIG_AAC_DECODER) += arm/aacpsdsp_neon.o \
>> arm/sbrdsp_neon.o
>> +NEON-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += arm/aacpsdsp_neon.o \
>> + arm/sbrdsp_neon.o
>> NEON-OBJS-$(CONFIG_LLAUDDSP) += arm/lossless_audiodsp_neon.o
>> NEON-OBJS-$(CONFIG_DCA_DECODER) += arm/synth_filter_neon.o
>> NEON-OBJS-$(CONFIG_HEVC_DECODER) += arm/hevcdsp_init_neon.o \
>> diff --git a/libavcodec/mips/Makefile b/libavcodec/mips/Makefile
>> index 05ed63bf3e..1070b5e77f 100644
>> --- a/libavcodec/mips/Makefile
>> +++ b/libavcodec/mips/Makefile
>> @@ -20,6 +20,10 @@ OBJS-$(CONFIG_AAC_DECODER) += mips/aacdec_mips.o \
>> mips/aacsbr_mips.o \
>> mips/sbrdsp_mips.o \
>> mips/aacpsdsp_mips.o
>> +OBJS-$(CONFIG_AAC_NON_HE_DECODER) += mips/aacdec_mips.o \
>> + mips/aacsbr_mips.o \
>> + mips/sbrdsp_mips.o \
>> + mips/aacpsdsp_mips.o
>> MIPSDSP-OBJS-$(CONFIG_AAC_ENCODER) += mips/aaccoder_mips.o
>> MIPSFPU-OBJS-$(CONFIG_AAC_ENCODER) += mips/iirfilter_mips.o
>> OBJS-$(CONFIG_HEVC_DECODER) += mips/hevcdsp_init_mips.o \
>> diff --git a/libavcodec/version.h b/libavcodec/version.h
>> index 2ed4ef5547..499c6bb175 100644
>> --- a/libavcodec/version.h
>> +++ b/libavcodec/version.h
>> @@ -29,7 +29,7 @@
>>
>> #include "version_major.h"
>>
>> -#define LIBAVCODEC_VERSION_MINOR 60
>> +#define LIBAVCODEC_VERSION_MINOR 61
>> #define LIBAVCODEC_VERSION_MICRO 100
>>
>> #define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \
>> diff --git a/libavcodec/x86/Makefile b/libavcodec/x86/Makefile
>> index 118daca333..64fec2ce59 100644
>> --- a/libavcodec/x86/Makefile
>> +++ b/libavcodec/x86/Makefile
>> @@ -41,6 +41,8 @@ OBJS-$(CONFIG_XMM_CLOBBER_TEST) += x86/w64xmmtest.o
>> # decoders/encoders
>> OBJS-$(CONFIG_AAC_DECODER) += x86/aacpsdsp_init.o \
>> x86/sbrdsp_init.o
>> +OBJS-$(CONFIG_AAC_NON_HE_DECODER) += x86/aacpsdsp_init.o \
>> + x86/sbrdsp_init.o
>> OBJS-$(CONFIG_AAC_ENCODER) += x86/aacencdsp_init.o
>> OBJS-$(CONFIG_ADPCM_G722_DECODER) += x86/g722dsp_init.o
>> OBJS-$(CONFIG_ADPCM_G722_ENCODER) += x86/g722dsp_init.o
>> @@ -151,6 +153,8 @@ X86ASM-OBJS-$(CONFIG_VP8DSP) += x86/vp8dsp.o \
>> # decoders/encoders
>> X86ASM-OBJS-$(CONFIG_AAC_DECODER) += x86/aacpsdsp.o \
>> x86/sbrdsp.o
>> +X86ASM-OBJS-$(CONFIG_AAC_NON_HE_DECODER) += x86/aacpsdsp.o \
>> + x86/sbrdsp.o
>> X86ASM-OBJS-$(CONFIG_AAC_ENCODER) += x86/aacencdsp.o
>> X86ASM-OBJS-$(CONFIG_ADPCM_G722_DECODER) += x86/g722dsp.o
>> X86ASM-OBJS-$(CONFIG_ADPCM_G722_ENCODER) += x86/g722dsp.o
>> diff --git a/tests/checkasm/Makefile b/tests/checkasm/Makefile
>> index a6f06c7007..dd8ac1f278 100644
>> --- a/tests/checkasm/Makefile
>> +++ b/tests/checkasm/Makefile
>> @@ -20,6 +20,8 @@ AVCODECOBJS-$(CONFIG_VIDEODSP) += videodsp.o
>> # decoders/encoders
>> AVCODECOBJS-$(CONFIG_AAC_DECODER) += aacpsdsp.o \
>> sbrdsp.o
>> +AVCODECOBJS-$(CONFIG_AAC_NON_HE_DECODER) += aacpsdsp.o \
>> + sbrdsp.o
>> AVCODECOBJS-$(CONFIG_ALAC_DECODER) += alacdsp.o
>> AVCODECOBJS-$(CONFIG_DCA_DECODER) += synth_filter.o
>> AVCODECOBJS-$(CONFIG_EXR_DECODER) += exrdsp.o
>> diff --git a/tests/checkasm/checkasm.c b/tests/checkasm/checkasm.c
>> index e96d84a7da..8f7796ca3a 100644
>> --- a/tests/checkasm/checkasm.c
>> +++ b/tests/checkasm/checkasm.c
>> @@ -74,7 +74,7 @@ static const struct {
>> void (*func)(void);
>> } tests[] = {
>> #if CONFIG_AVCODEC
>> - #if CONFIG_AAC_DECODER
>> + #if CONFIG_AAC_DECODER || CONFIG_AAC_NON_HE_DECODER
>> { "aacpsdsp", checkasm_check_aacpsdsp },
>> { "sbrdsp", checkasm_check_sbrdsp },
>> #endif
>> --
>> 2.30.2
>>
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Hi
Posted a new patch: [PATCH] configure: add --disable-he-aac option
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [FFmpeg-devel] [PATCH] avcodec: add ACC_NON_HE decoder
2023-02-01 14:55 ` Kristofer Björkström
@ 2023-02-01 15:19 ` Jean-Baptiste Kempf
0 siblings, 0 replies; 5+ messages in thread
From: Jean-Baptiste Kempf @ 2023-02-01 15:19 UTC (permalink / raw)
To: ffmpeg-devel
On Wed, 1 Feb 2023, at 15:55, Kristofer Björkström wrote:
>>What is the aim of this? Is it patents?
>
> To avoid patents in AAC HE
Patents? Which patents? Which country does this apply?
The whole FFmpeg is concerned probably with thousands of patents...
I don't see here the gain.
PS: There are patents in normal AAC too
--
Jean-Baptiste Kempf - President
+33 672 704 734
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-02-01 15:20 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-31 16:34 [FFmpeg-devel] [PATCH] avcodec: add ACC_NON_HE decoder Kristofer Björkström
2023-01-31 20:01 ` Lynne
2023-01-31 20:18 ` Andreas Rheinhardt
2023-02-01 14:55 ` Kristofer Björkström
2023-02-01 15:19 ` Jean-Baptiste Kempf
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git