From patchwork Tue Jan 31 16:34:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Kristofer_Bj=C3=B6rkstr=C3=B6m?= X-Patchwork-Id: 40198 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3ca3:b0:b9:1511:ac2c with SMTP id b35csp189186pzj; Tue, 31 Jan 2023 08:34:53 -0800 (PST) X-Google-Smtp-Source: AK7set+X6jJ704kprj2P9HNuFqrWP6iI0bmHolICXi6RqNj8x7YjNjCf0RUTtZe0EQdtbHiCDILm X-Received: by 2002:a17:906:11c5:b0:881:f614:44ed with SMTP id o5-20020a17090611c500b00881f61444edmr14139533eja.30.1675182893662; Tue, 31 Jan 2023 08:34:53 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id up18-20020a170907cc9200b008712e3633f6si17919528ejc.594.2023.01.31.08.34.39; Tue, 31 Jan 2023 08:34:53 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@axis.com header.s=axis-central1 header.b=DHsICE+D; dkim=neutral (body hash did not verify) header.i=@axis365.onmicrosoft.com header.s=selector2-axis365-onmicrosoft-com header.b=ZD3eYKAp; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=axis.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5603E68BE18; Tue, 31 Jan 2023 18:34:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtp2.axis.com (smtp2.axis.com [195.60.68.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2FF7468B9B7 for ; Tue, 31 Jan 2023 18:34:28 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis.com; q=dns/txt; s=axis-central1; t=1675182873; x=1706718873; h=from:to:subject:date:message-id:mime-version; bh=nB0yMN4O3WV1oOZkYQOlGfUPfI/JJRfEQcS3momMvw8=; b=DHsICE+DL+y+JvuUUdJd/93e4wsGX4UipMsP6lBc2UbWtqxAG/3MAK8h 5tliBESkViRkrcrKl5HtKkde0l/uVxZcGJSRPlknYf8kdkkBcZFfHu7Y8 UWB0TQfTsk7pg7GWQy/FGB7eMtCr1mpR57D0pkZOKsjLoEr63BzMoq+jf iztbzTRNADfD6DfqdXkJAilc7zOwLyZm6kzAd7U4rm0Cq1qpueLbjgo3F uhcWnQ/OJHNHZGlgAfi3lSNBa8pl4rNC2bC15S/rDIIrZXMHtS4m33ixG h3RD8qd+qbh9eqN7kwdf+rFEbgqyx6q+po3CSoQ3/+tm5NHhHCjS+O2Aw g==; ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JDZOD4HNTR7O8nQe/nGYSR/MWArF971n8edNlzhr9zliS9oUVqzW5ZpSzKjtbE2IhL16ORaNKXsA0Q3bQ/iGEGOi6rGACtW8Frg0qh3HeHKO8BMG7GyUFHsvaNFwRyJOtpeus2yd4w2ebOeUw1ZWB3OJX4LIVYFLP8QLL9sR4BP+ATDRQzYLWHC65Dpqp8AbrWP+1P32gTC1YfJprWpbr4gabdU05z9KdwvUfCTE63WeN+z9NiWSSS8XpnFhfc7oHbWeq8vUCpx/AdqD5G3R55fsRKxI8oUZSDtHkYP8/E4k2qi7mWj69kRvu2h42pOjAi6d+eMs/RDUZHXjuj4Lrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=nB0yMN4O3WV1oOZkYQOlGfUPfI/JJRfEQcS3momMvw8=; b=YvPIk5GNmcJI9sE8Lc2Xx5mrViflKQUxW2rrzYxjpsYDL1rCIuXKneSLMghZWI4WrF4L9VrGaKUpk4qudFtsdAH2B10fwGcCfCCpVOuXeRROxWQUIXuMmOpNiVIWQsGuIzRFK0CKVe3tHZAqX88Qixu4jVZytw3jF/77sDs7XVlFNo6nITcJg5zxrdqgN1OjJMuucu4SJewcVKfFt5mjFHdKEGQCXKc8FPJ3rR8QzoheI9VIX2hDbJ+xPChXn87WN4JxBYReLW6cfUDkPffXcJcKBEabSWYCOGtiRZ/82dgdJp9aF3YgAKcjoQDrTIrJPUmDfBumi7HCGqGvaAihFg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=axis.com; dmarc=pass action=none header.from=axis.com; dkim=pass header.d=axis.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=axis365.onmicrosoft.com; s=selector2-axis365-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nB0yMN4O3WV1oOZkYQOlGfUPfI/JJRfEQcS3momMvw8=; b=ZD3eYKApbZ2VK7Ax8vGsW19hVk9V6Wf3D7TrB5xtNfMrrGR+yqXL6/e8g6Bswzv4lmhCUxrxISEizftkZr/ZRagsmb3T2w816y9EU4UIEQMEaDK/pVQGFocSY6JK7NZaJd8at3JZiGhdnHv7scnuB4USxAYF+GZb8fK4wumXklE= From: =?iso-8859-1?q?Kristofer_Bj=F6rkstr=F6m?= To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [PATCH] avcodec: add ACC_NON_HE decoder Thread-Index: AQHZNZFr/kNhfBHr/0GxNn8IVHIRTQ== Date: Tue, 31 Jan 2023 16:34:25 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=axis.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DU0PR02MB9171:EE_|AM7PR02MB6052:EE_ x-ms-office365-filtering-correlation-id: 59a789e5-13bf-4011-75dc-08db03a903fc x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Yl8eoQvWdNNQXLjv/VxWaNQhP4u8PNJWwMaXI90EvO82ZjSXo/T4rahtbRmZDs373C67yRpaeKvT+gpigxpScpoD/vDyuDkpQYFUjnEl0LYSU1GafVzsB3gTExcktllLEQKtzJbfLIQy4jEWj/WUDTeoa6l4I57j9Lp9vtuXiiCbns31N/0lh5GpyYhjKEoWuuYVo0e2LJ6ylh9CEkN6UwEfW9pkJMQB031rGeHFTWjPKemTsYShDGdfqkv5SJs6SH0PxxAU+HNXId0SNWoRwzMIWp8j4tZ8MSVAUqFt3rP25wawe14xyq2RMfDpUy6E16fT9DZj6LIBrYwAxKdvXVwXF2AIRQDR0KAXLUhZliIzHsWnDGfXUpFZcwGaecw59tujY8jWyXJTGBtEGfBC+lEGOAWtorXr+FX2KnYeJ2pR9p66sUJj+XlDamURwW3aK4Zq+jaGUt4bo7/8UAFv5Nbt+ciLUPZuS4I4gUS1sC/dpuJK436jMg9MXpbpkhxje9HGb5JcQU+p7gKquO75akGnKOvwkzOtULupYHl+djX9rgFEkVfGXa27Vwt5t+JA8E6mCrpWVoakZFieIcCQ6sLNyIyttHnJY4ArJwmJCNma5svhVZiqmrLfRgBhKBkWqBuyxNWN7JlMKcz0X2bQAGY050YT+GiKQTYC/XltSZACmTR5/2eIyWRSOqfQKBDMXw7/3eCX1QGhRGHXmTbavA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR02MB9171.eurprd02.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(4636009)(366004)(136003)(376002)(346002)(396003)(39850400004)(451199018)(55016003)(2906002)(5660300002)(316002)(41300700001)(33656002)(52536014)(6506007)(9686003)(186003)(26005)(66574015)(38100700002)(83380400001)(66556008)(66946007)(66446008)(38070700005)(66476007)(76116006)(478600001)(7696005)(8676002)(86362001)(6916009)(91956017)(30864003)(71200400001)(122000001)(64756008)(8936002)(19627405001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?WGqAy9SMUamgseXsm1tZoqM?= =?iso-8859-1?q?b19mSW1ONcgYmPXTSe/VIsnUrJGdaPGcltw4ORE7hUl5vDT9e5LSel9n8Qiv?= =?iso-8859-1?q?AFSRPkhAbcGhdl/1ZfULx6wNhZ8w/iV/H9KfJWq7h7zDfNc3W9UUACS3KwAH?= =?iso-8859-1?q?xt1YouKwTe2v1ZbrOJfPF69+eUljdrkGRqmkwU8m++vzd9TKu6xCq/v2oNAi?= =?iso-8859-1?q?iTwndJTV7LW8X25UJXpg04TxB6PqhKWCDha70Jn8g6a5YhNWpO8i+zNNiv+z?= =?iso-8859-1?q?qG18V7MyXhijdPqRJ9DuVUlll44AeI/pcAFg1yvID4pn2935iIiSfMm3EEwP?= =?iso-8859-1?q?vTIfLtOvJZT6OL/KhP4x08UHttA4+/9a4wXf9Aq9pNTOOrKhMXqoSTCAzuZV?= =?iso-8859-1?q?6Z0J7w4fCzZjRzxKTSRHl7Iguapi1QCf+07LTIi/6YfWkJMtofUn0sNS+Aqu?= =?iso-8859-1?q?r9SIchEgXUGGxS7QSIcIICD+lX7xMrbBjoHzvy+UxvH+4Iy6Lhyr9/OdkEYi?= =?iso-8859-1?q?DAHWrGf/gdyJFbI57ITfFXx6iGFGVRwr02s6E0exyb9h6K0mao98p7N5Amf1?= =?iso-8859-1?q?iUH4iSPfJx7Aly1ufBqDr9YM8rVl5ah/EO7u/q6497TNo6l7SIOajYqxlpsX?= =?iso-8859-1?q?CTo2MyYrPdlvScIZQutrjdhU42skkFo3Kq7sGYM95Ije7K18DelqiFhoXQrs?= =?iso-8859-1?q?IUX0ey3ALqhNW/w54eNEGF3cz05nYxJ7D1F9VaTBpnn0P/94SLHTKRfwr0AK?= =?iso-8859-1?q?/76Vt1bHIR2lLtZIFcCZoBxsnYGv1NsD9jNcQRgHnxWMGqCPnu/E4ot40v9Q?= =?iso-8859-1?q?4jt1gkzNOVk/RqyID/6WN2ENawJcJ7Sx6v0N1Vl9Fj4bAe1OG5fvtzGbAy+u?= =?iso-8859-1?q?8qb9CG6tGlHFOiVpXMhikgZf29cWb5YmrqxlGziWAUjbyWaDFJD7FbdTzOf8?= =?iso-8859-1?q?T9VgqcihdLrFduu8OdwN+mp9UQCEjS7tUh0GvaiBQNDiPyouwb2z4yGlnQUb?= =?iso-8859-1?q?6RJv/fzuGmTOvzzCppbN8miin/JObb5jTfeWJSCQVvneP5D4h4zdX+/rIG/V?= =?iso-8859-1?q?ShAi4eZSvdMxKiuzO/fhrDBni5ovcn4TRIaXoE4LLBjuNGmH9KPSphznbqj7?= =?iso-8859-1?q?Ovum4excWni4SiFOUYBCGUExf3ZprPMjeQ5XE1xE8pFcP3F+XIaWCG6L0g7V?= =?iso-8859-1?q?YULdhI12lLot84AJHvmPr+nR7crsSuE+pL7Ut57WnCXu4tccf2YoJyN+JwJg?= =?iso-8859-1?q?wcf1EvjMU0TjwdUvHfa63j5loxPf9SNKCdGafyBKidfsI6OgJ/i6Z8OdsLv/?= =?iso-8859-1?q?IHU42zGkD4aX1f0YBij/JlZOUNRZixq0MHQmTlRwCH4fuJPqBgfoTXQ+08x9?= =?iso-8859-1?q?PN6kv1LIJrdWkKTQ3XasiiR1O8slJjioAMTzSh8OwdRwXaJlWz9gGOcj0T0r?= =?iso-8859-1?q?JZFzw5njubahdUiWobQ25Ut1w85Xf5eir7bK7vGMd31trICCY+RgPmI6KeJZ?= =?iso-8859-1?q?5YLzNSV1aGI4so+2L15SQnqKyGyjBgkkjnPORl898JDNMhnRvMZFVR0WxPFc?= =?iso-8859-1?q?mvOJ/2Lold++LUApK/+Rz23niNmWmJygbcwa0pUA5HV6BuJd1wwH6J98=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DU0PR02MB9171.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59a789e5-13bf-4011-75dc-08db03a903fc X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Jan 2023 16:34:25.4134 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 78703d3c-b907-432f-b066-88f7af9ca3af X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: Hpgtyd/vbhKfMwN5Oloic7krHEVP+wru8wfhCdsHPxX7EF4ZSlvOJSKt0IRsrqg8unaRSLkhvELSG7NzSGPFxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR02MB6052 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] avcodec: add ACC_NON_HE decoder X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: LQn7XYwJj6XS As ACC decoder but with HE and HEv2 disabled. Signed-off-by: Kristofer Björkström --- 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(-) -- 2.30.2 diff --git a/Changelog b/Changelog index aa0dad13a1..a9f5b54baa 100644 --- a/Changelog +++ b/Changelog @@ -35,6 +35,7 @@ version : - 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