From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 4F2E34A962 for ; Mon, 6 May 2024 09:31:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C7DF968D607; Mon, 6 May 2024 12:31:00 +0300 (EEST) Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2097.outbound.protection.outlook.com [40.92.89.97]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 887EE68D600 for ; Mon, 6 May 2024 12:30:54 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e+PDoer0K9Z5R4/8IApAsEJBhrLokIs+l6GIyU2yB5Z+nFVULRgIyt/Y4zHoifqte7SyUePaLwLhyjoC9lcM6BQFCcHamoz5KW0nUnWhM8M7/yLwlbAqwgc5LAz+LvUSz0B3HwKIAVNcVSBXGNCdWL/jFQV3CWCF5hgPgFyLKA1caye2J/qUk4SNimWGZs1BoqIY09wzI+aB96884HmUOpDQ8A/HLk/3tLMD5QA5Y0z2fKDVlpEO7CqD0xxIRfkmp+XNB/ydwA5SXCXvLhVEueuqqUV3C0Ab9Go88Wx4wi+QEMVuiWbCsdS0mrFpM/mssqiBgnivBH+H38XXJzGkPw== 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=KlGreozht8NGVLqA+gKRSydWXNEqOUlpf1hAIEwEL7M=; b=jXSTUZ3PPY3Z+OgsJ18t5Cj6Xljoim7EGULLEIvwDdgNgMg4nR6wjj73ilYAuevUA/sT+pveuUElb85ieOMiHtSq3275NHTUm1gr271NWFUwIQb26qqjcbbF8Z+tRxTuByWBOUWq+7F8lEiXiT0T4ES1l7/Y074k9HkvpOYJ2o9OTrtyTu33I4LWkD59FqxYj9m0vP5j4vLW6j2rlnh8rFfPMTz6ittCCs2t5dM8ozomxv3RIvg9mirGcpC9G5U09jTTIoZAs9ea3wQo3YVVcKU7oLXyjOmDAtmRee9whjvRrf+6B1Ws1oda4wu2DUpBa4re+QHfsm92ycpMLjSjlw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KlGreozht8NGVLqA+gKRSydWXNEqOUlpf1hAIEwEL7M=; b=YXowCoDy2cKDLZYUTiury+lxiDK67hyNOve6jiVF4iJZgAkz41umCbo0uVdFf2y9bOGKFYuXckwykKzF3rDqJIT3fclPQdIS0P7Ks7WGnjMA07ETX54j/JB0AijUyMiNFpjWIqf4LXJ8vi3c90PS9Z6PKhfPLp4Ix05GRI7Yf/reUiXNBl3/R4xud5zQgfMhkcrcsJC6adgEjy3hYmZb9JCNzhoeHL5TReSg+HN620yk+RzM8lJHwXktGE8Le9uuVCwDfASVkba28Ie/jEgt6np7xOA0dhuYX/BPcUL2I3eQdYmbwM/C38yTvwDq3faE/ljxi/89FgMqbkvaNTk5cg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AM8P250MB0376.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:32b::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.41; Mon, 6 May 2024 09:30:49 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614%7]) with mapi id 15.20.7544.029; Mon, 6 May 2024 09:30:49 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 6 May 2024 11:30:40 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [geLTTt0eWKc0a9/k6P2mhjYgA7mz1BWFpsVEM9JIYRI=] X-ClientProxiedBy: FR3P281CA0155.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a2::16) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240506093040.4157263-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AM8P250MB0376:EE_ X-MS-Office365-Filtering-Correlation-Id: 6440711f-f9f7-4c1d-2316-08dc6daf370c X-Microsoft-Antispam: BCL:0; ARA:14566002|461199019|440099019|3412199016|1710799017; X-Microsoft-Antispam-Message-Info: O9kmob/AOgEirU1WEc7mbsYWcBwqhE+WZsNS527EVzXO30Kfon8Ww1aB9fpQNNTR/iRw96He9hTZ3Ydt+0v9JF3DWjkf0K/+79MX57vtSy7d2+hOAPDX+dVSf+exO/pb/UVBOS1F13kNrfgxfRjji76WOhJhfkIFqTS/zUlLEFPZ6RF2zrd2nfEbEVrcQiteM572hiUiVibdTMtCB/mbblIHnRFhC6XsjJPGbl2XuamUx3nZ5nlTFdEiKK/orPh3JsQT3sMRG5tVZUG7N9dGIwb4t6OXZF35lX901fvVlVULonSx+Fb9KLh51RzsBpLf6CFOXbDuw448ixJiZ2fBJnDeSWJeO28mFNZLQ0AU/Qfy6ItyJT8qFqJ4UdtIfQ99lOo7ppngXpS9w9h97ACdmbb8ytw1Xlsm+WW71oT3wZzWQai+H7POwaOzeIiLwA4L4BO7V055rAK8yOW//nM51DBmiRHIxsE8JF8p0CEJ/ucHHBh3bKmurkWYGkuBvFhluQYBU/6xffbJz4VfknEo0Wm7Wr00qOlaVIf5Zi0eqMtCF4/lzh88tHavbbiXYOADAWCfn6q0NlidcZJXTg7uTdlQIlMi2veG/BdHHIvT4dxqwo1T8tA5vIoeRPNFYCVC X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ENKDBGS0MOMhQAawIdLW+2PqvG59nHFalRYhV1SM+aVxFrnt8dmm0Zu0fd2Y?= =?us-ascii?Q?5xOKPMcSEFjtzivQ0L4Esk6zGrOdlulXldSTYPk287u4k2t/Qu34ocgwVPjQ?= =?us-ascii?Q?JYL5j+0mtSfgBbzDQmBz/ELJrLz9asBXVIFhtFKWZ347tBEt7wRNhMIBCr9N?= =?us-ascii?Q?/TYUAxN4UgrchSaTM6odI91FIgey7zMjsJC/Bq7mbabXHdrpuZen0SQMXmIN?= =?us-ascii?Q?tmMV95wbib+6kf0D0m1BgzvYT7hf7J2r4bQvmjMNerq9kgM5PLoO7RBv6OP5?= =?us-ascii?Q?IMQiAcQuiRvsyR1xd6TeLcd9BYgcbsuTv4KD5GhF5daOEtdulJpt8D1+cld2?= =?us-ascii?Q?KHVIww9WqsuU58QT2D8O9a19EemwMB73Omto6Mb5re1yO3r3IXCiOUdTho7X?= =?us-ascii?Q?qf3+osKv5lhvBpFYccLn8McL+1NpxiMJ+aou87vbFgs5ZLOSmwxw01Wf6ucU?= =?us-ascii?Q?V/6tArvuNynIJzoJO2BpCVd8PnhEqWgpOljOfYnYAt8TE1SlN3bbsHkKnXV6?= =?us-ascii?Q?9WKjjsaE/PvphmtG3cHC0xPWEzwkIr9UP2wz1fhoI7xpuz8BoX4QOibPkflq?= =?us-ascii?Q?aoBrT+fCp8WhIY+iNlERLGXNy3F58dh4fWMKitdGsoJ5JYsNLIm4QhfApmv+?= =?us-ascii?Q?1/h7Bq1tSn3igQBi5KiJ//VddfY+VmiD7riC/pnDpajehdsLodoIwAuldwpa?= =?us-ascii?Q?qYpCr7IGuNlk9TRL5547wDh4B/ZcPzS9xiOUMAEdKFBIAIC+WvivDAM+n9cJ?= =?us-ascii?Q?fxdxSmq2O9kVkqC68ZCLduO6l9fc8AOc2qWRECPjvvy573iOfOvBMnQNgmIn?= =?us-ascii?Q?ccYUj7rZiy4kC/mS/WwnsaayZVE+UuirV1xspEn+FGjPDeMwKMWj0b8EOVIE?= =?us-ascii?Q?0JgqvaG1cpWRlnbnhBD11ZpXETq9agHyE3nFX8jEYkOozYo3VsqPA14dyqXL?= =?us-ascii?Q?ee8i5KWC2Of/iDdkB8bRnBkZ2T2Hhj6SaT9P/dlQrDokwDRVyUNFmz7hBDVh?= =?us-ascii?Q?SC2fnezQq5C+bl1AwICoc/L2nQw5IDpQIFOZ3hNa+PsKxfBDGTpvC7s50Yoi?= =?us-ascii?Q?5gXlenNt477M72ez7THZtCKNPkwGP1w4WY8E26tWGkdJWrLLKUV1rOO2aNps?= =?us-ascii?Q?gux3QIY2o3UG0P49YAylEVnJm7eG5F0L0klKHWdspLWt6bZFunlROEc3ByOj?= =?us-ascii?Q?WHoPt+FYL/mHKJIP0mmAEAb9BovkDekWHwy383hiOSYXYc7kI9YDGQ1UCDL/?= =?us-ascii?Q?VATxU1hTM4SnPvF+9JOxJ0oFmIB96UUvtZ2vaFID5g=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6440711f-f9f7-4c1d-2316-08dc6daf370c X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 May 2024 09:30:49.2388 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8P250MB0376 Subject: [FFmpeg-devel] [PATCH 3/3] avcodec/aac/aacdec: Fix linking errors with only one decoder enabled 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 Cc: Andreas Rheinhardt Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: The approach used here has the advantage not to rely on any DCE. Also improve certain the checks from 3390693bfb907765f833766f370e0ba8c7894f44 a bit. Signed-off-by: Andreas Rheinhardt --- libavcodec/aac/aacdec.c | 62 ++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/libavcodec/aac/aacdec.c b/libavcodec/aac/aacdec.c index c6b93e33a2..6a74b05168 100644 --- a/libavcodec/aac/aacdec.c +++ b/libavcodec/aac/aacdec.c @@ -63,6 +63,20 @@ #include "libavutil/version.h" #include "libavutil/thread.h" +#if CONFIG_AAC_DECODER && CONFIG_AAC_FIXED_DECODER +#define IS_FIXED(is_fixed) (is_fixed) +#define FIXED_OR_FLOAT(is_fixed, func_or_obj, func_args) \ + ((is_fixed) ? RENAME_FIXED(func_or_obj) func_args : (func_or_obj) func_args) +#elif CONFIG_AAC_DECODER +#define IS_FIXED(is_fixed) 0 +#define FIXED_OR_FLOAT(is_fixed, func_or_obj, func_args) \ + ((func_or_obj) func_args) +#else +#define IS_FIXED(is_fixed) 1 +#define FIXED_OR_FLOAT(is_fixed, func_or_obj, func_args) \ + (RENAME_FIXED(func_or_obj) func_args) +#endif + /* * supported tools * @@ -150,11 +164,8 @@ static av_cold int che_configure(AACDecContext *ac, return AVERROR_INVALIDDATA; if (che_pos) { if (!ac->che[type][id]) { - int ret; - if (ac->is_fixed) - ret = ff_aac_sbr_ctx_alloc_init_fixed(ac, &ac->che[type][id], type); - else - ret = ff_aac_sbr_ctx_alloc_init(ac, &ac->che[type][id], type); + int ret = FIXED_OR_FLOAT(ac->is_fixed, ff_aac_sbr_ctx_alloc_init, + (ac, &ac->che[type][id], type)); if (ret < 0) return ret; } @@ -171,10 +182,7 @@ static av_cold int che_configure(AACDecContext *ac, } } else { if (ac->che[type][id]) { - if (ac->is_fixed) - ff_aac_sbr_ctx_close_fixed(ac->che[type][id]); - else - ff_aac_sbr_ctx_close(ac->che[type][id]); + FIXED_OR_FLOAT(ac->is_fixed, ff_aac_sbr_ctx_close, (ac->che[type][id])); } av_freep(&ac->che[type][id]); } @@ -1122,8 +1130,7 @@ static av_cold int decode_close(AVCodecContext *avctx) { AACDecContext *ac = avctx->priv_data; int is_fixed = ac->is_fixed; - void (*sbr_close)(ChannelElement *che) = is_fixed ? ff_aac_sbr_ctx_close_fixed : - ff_aac_sbr_ctx_close; + void (*sbr_close)(ChannelElement *che) = FIXED_OR_FLOAT(is_fixed, ff_aac_sbr_ctx_close, ); for (int type = 0; type < FF_ARRAY_ELEMS(ac->che); type++) { for (int i = 0; i < MAX_ELEM_ID; i++) { @@ -1154,7 +1161,7 @@ static av_cold int decode_close(AVCodecContext *avctx) static av_cold int init_dsp(AVCodecContext *avctx) { AACDecContext *ac = avctx->priv_data; - int is_fixed = ac->is_fixed, ret; + int is_fixed = IS_FIXED(ac->is_fixed), ret; float scale_fixed, scale_float; const float *const scalep = is_fixed ? &scale_fixed : &scale_float; enum AVTXType tx_type = is_fixed ? AV_TX_INT32_MDCT : AV_TX_FLOAT_MDCT; @@ -1188,8 +1195,8 @@ static av_cold int init_dsp(AVCodecContext *avctx) if (ret < 0) return ret; - ac->dsp = is_fixed ? aac_dsp_fixed : aac_dsp; - ac->proc = is_fixed ? aac_proc_fixed : aac_proc; + ac->dsp = FIXED_OR_FLOAT(is_fixed, aac_dsp, ); + ac->proc = FIXED_OR_FLOAT(is_fixed, aac_proc, ); return ac->dsp.init(ac); } @@ -1315,9 +1322,9 @@ static void decode_ltp(AACDecContext *ac, LongTermPrediction *ltp, int sfb; ltp->lag = get_bits(gb, 11); - if (CONFIG_AAC_FIXED_DECODER && ac->is_fixed) + if (IS_FIXED(ac->is_fixed)) ltp->coef_fixed = Q30(ff_ltp_coef[get_bits(gb, 3)]); - else if (CONFIG_AAC_DECODER) + else ltp->coef = ff_ltp_coef[get_bits(gb, 3)]; for (sfb = 0; sfb < FFMIN(max_sfb, MAX_LTP_LONG_SFB); sfb++) @@ -1626,9 +1633,9 @@ static int decode_tns(AACDecContext *ac, TemporalNoiseShaping *tns, tmp2_idx = 2 * coef_compress + coef_res; for (i = 0; i < tns->order[w][filt]; i++) { - if (CONFIG_AAC_FIXED_DECODER && ac->is_fixed) + if (IS_FIXED(ac->is_fixed)) tns->coef_fixed[w][filt][i] = Q31(ff_tns_tmp2_map[tmp2_idx][get_bits(gb, coef_len)]); - else if (CONFIG_AAC_DECODER) + else tns->coef[w][filt][i] = ff_tns_tmp2_map[tmp2_idx][get_bits(gb, coef_len)]; } } @@ -1977,11 +1984,8 @@ static int decode_extension_payload(AACDecContext *ac, GetBitContext *gb, int cn ac->avctx->profile = AV_PROFILE_AAC_HE; } - if (CONFIG_AAC_FIXED_DECODER && ac->is_fixed) - res = ff_aac_sbr_decode_extension_fixed(ac, che, gb, crc_flag, cnt, elem_type); - else if (CONFIG_AAC_DECODER) - res = ff_aac_sbr_decode_extension(ac, che, gb, crc_flag, cnt, elem_type); - + res = FIXED_OR_FLOAT(ac->is_fixed, ff_aac_sbr_decode_extension, + (ac, che, gb, crc_flag, cnt, elem_type)); if (ac->oc[1].m4ac.ps == 1 && !ac->warned_he_aac_mono) { av_log(ac->avctx, AV_LOG_VERBOSE, "Treating HE-AAC mono as stereo.\n"); @@ -2090,14 +2094,10 @@ static void spectral_to_sample(AACDecContext *ac, int samples) ac->dsp.update_ltp(ac, &che->ch[1]); } if (ac->oc[1].m4ac.sbr > 0) { - if (CONFIG_AAC_FIXED_DECODER && ac->is_fixed) - ff_aac_sbr_apply_fixed(ac, che, type, - (void *)che->ch[0].output, - (void *)che->ch[1].output); - else if (CONFIG_AAC_DECODER) - ff_aac_sbr_apply(ac, che, type, - (void *)che->ch[0].output, - (void *)che->ch[1].output); + FIXED_OR_FLOAT(ac->is_fixed,ff_aac_sbr_apply, + (ac, che, type, + (void *)che->ch[0].output, + (void *)che->ch[1].output)); } } if (type <= TYPE_CCE) -- 2.40.1 _______________________________________________ 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".