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 C5A1648F42 for ; Fri, 1 Mar 2024 03:02:58 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E0F4868D232; Fri, 1 Mar 2024 05:02:54 +0200 (EET) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2085.outbound.protection.outlook.com [40.92.91.85]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7252668D1B4 for ; Fri, 1 Mar 2024 05:02:48 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LKlYzl/13G6hZbkvCuiULjPDUfHeVOFVsRRh2U1OZuk4MshwsugKtJ5Cf7zAcIXWRQtNa/2H248MaZh3QM1EyaBdIBB+ueRiaIn7LAmrgRTGrusMpyz+oI/+tPwEIcgvpMV7VTEepuj6ff/slh5gqNuiWdvVGPegJEO6+Jb8D/8aA0iiCeFnyehgLvwX0X7h8dAiXUntrUay/lNaUEVEKjVMc8CjQ7f3jNiDpBQH9IpeOmrPb/XOyEZuU3KwyFaKXWz46jpoujMZXkrUGOLRgbUu/BkaV3o4JgaC+1G+KbBoiI2UU+ZZYwAiwrNmK+Yh7FjtY5vjd/aHGmysj6qj1w== 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=jpnpGxR2adUF12flp1oPOzoITuW4t3AhCRBkFmcQUe8=; b=nc6J3sqPJPFdHHTBMQtNdkQLivKhtl6Ltq+nwphg35IzzltPi3Fv8ye//3b+Eu/1ht3vvaBctyWpzydkVq3wwe5f/qnDKsgITF0W35m4St38F9d5lNRoZRSJDuFEgA++edy4A2VebykA+yzGqXAEvEPKK/xzLVSQQqKtpm4kyJ3F8vEGvSvdrHwHeW1Z0fCsHOMQ/FtYtCJfdR5faTIlCEnKWP1JKOu4lj5GEZP6/s+fhilAeCEUzydiumzVNzvGNVjvtYsY6n50gg95wIEf+CtryQ8nUY/KiUUe5oeVWobBgwjE33r+kx8YdZ+TSw0JWd0PbgWl/ltbdvBl+0SjtQ== 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=jpnpGxR2adUF12flp1oPOzoITuW4t3AhCRBkFmcQUe8=; b=iq0eW5e9iFAK4etmywzT682VQLGKEFJy6hWp17p/I8eqj0WlMAY+xeOCCET0xMKM2jyTWniNGNNmMcV1/NK6fUYkzQTNdRB07iwIRJ489JELKDA/7OAspHRtBqXsgOzD0cONFuH1d/cW8Ijy6M7hgxKObki8fMTayKowJQvDTjg/CI+GkGJaMZxAaW+DRqZ+qt3NUT4UHE+Q0knYkNIP13WFiZeO586uomguzGrXdZGBnIBipZn2K8gKtjhe7EEtHEcA8Kn+SoFLaM6RSIn4TZB3uE0e88fOSnaQa2+64trmRrJG3Rm4VsNSF/ftnJHF8qsg4eg+UB0AmTCmbtrM7Q== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0150.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:175::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7316.39; Fri, 1 Mar 2024 03:02:46 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7316.023; Fri, 1 Mar 2024 03:02:46 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 1 Mar 2024 04:04:36 +0100 Message-ID: X-Mailer: git-send-email 2.40.1 X-TMN: [hCmp9+3k1fb3cANly/IN3UYbWa81M+y+9JlshCuJWFY=] X-ClientProxiedBy: ZR0P278CA0005.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:16::15) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240301030439.2960804-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0150:EE_ X-MS-Office365-Filtering-Correlation-Id: c79aba4c-f813-4787-ea46-08dc399c1224 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: alADygREnkrAFGAql2gVM6TZhv2oh88Ez0CwSQkqxQ4WD1T06tNAISc8c5+Ts8JEReMY23GX/2IGfXVnn9vKnbXSY/ZCgH+APy2OKxOyf+exllfIe75bIooZ0gw9q5LB0QiHdDa1hv92gwzWcLoZ1eRL15Vg2yBalJAFrl98Zc+p0mf9l8G43utTKoRXNsz/U8ROh4q1hGouEL55TAFUx9fpv52N/MJy9+trmkxQUOgGdeYRGsXMdq9sneB6u2TSTmqGh2NTqQyczCXiCH4WwGWLq5ec3OimqCov+G2UtJhS1aIxzLBSUpH94iMpKeilueyVA8P/kqQb26E6hK4iesdQMKTt9zvNlNJeBhPvZVSqfjI+MtP+RgUZeDmk8iWD1KapKcSUpT5JVG7gHv/leFei68yJGVCGIHMdy6mVpyctcbPtlUFnoiEcTkUDubETjni6lCYRMFF8uzCy5CjeQaukdKT5W3ze478LWm+KqFYM3jKsBKyRxFfQUGr5Z9rvHyjwxsFVcCLHohESfO/rtWstBBryYD2fWeTTkc/jkQDUY7TgO0o97cAuiYjvSTQOoBgiGjlPOr7o7liNFY/49/Sw9Z2m0o9gnH7/8r77o1j6ovwCo6smOS9dZ/5HBeAB X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ieIL317kLM4jxopRJ9/lTSpAPK88tdkeHnCFY3Tj9Ws1goWIVCFRZOrufPYu?= =?us-ascii?Q?KnK9TsijfvEf7viZ3jmPuzrFAYegZBLNbK/KWfMgqdwMSszH1oh7UEvwlJxH?= =?us-ascii?Q?CZaHufTArj4DUqKVRz45ovPXTNbJY0eerwA93fTGOc75S9GhUDjtYhdLvwES?= =?us-ascii?Q?OJlzew7TTFPTfjdWU3mxJs2iTdYxwjPY6k0c8uADVEdbODhRn71Qc48WdhlJ?= =?us-ascii?Q?M8u77Ys2pEnpVcX7K1qzh06yCwHUH4t0AS7Ko6ca4aoOugCLZnoTYx2ZgjI7?= =?us-ascii?Q?6f8PWu6eQmAds2ndvncidclZquOWySIv0PokuEjRkAhaWwn1St/2sF56Nzjp?= =?us-ascii?Q?IHji/xVeHFfqtGPYgeD5cg+slXXcgdPOaed5TJg+GNk35PcHWy6mMmRrhD/f?= =?us-ascii?Q?4SV0E2BMP6iKRlCgsqRXik5dTfH4SgW7vEW437ZLG+OLL1YeDx0l2v1aCFEk?= =?us-ascii?Q?kjPK48Lc4/M8KC2kESm/rGh2+0c+KYCT/R9vEXYDx1WK65FHSRSkq9ZiIZYE?= =?us-ascii?Q?qWJrqR50UlkG/eVjDqm+MPdkua0OQ3VZeNCPXh27Np4tfroRPfUMEXbpgvh2?= =?us-ascii?Q?4F6hkWTJeOazC5Hz9moJLUaeZ9VLfG60q2hU3U0NTHMIUOmftQWVRpG/pvVf?= =?us-ascii?Q?zdG5PLmAJWndp1nenUX1iu3hJSNYoTTqGk1PJ7UDOJEbPc587QhVSoYXDRBM?= =?us-ascii?Q?ERrTeztalOiUlT32Y0Uw0o+M5St18E6RlPyH7bx+TOntSAjGQ2axozINS1Ln?= =?us-ascii?Q?CF/FTuQGLhUAJsIUetihVgaN91Ck3Yw3WKlz8RUk5zY7ir14DaP3Kekotw8l?= =?us-ascii?Q?F8jPelZYr6u9Mlrr20nSRJBLB/98cov80XF8B4IS4wsThBtgOSFa8oKv5OlZ?= =?us-ascii?Q?++EkzQeDwc9qaXF9FJt/Y4/ApDJmp71mdFYnhbkwlWbBjIXwTdeqSK5tj4xx?= =?us-ascii?Q?8ml/pT31/TZ32lgbogDJzjwDccAUsgw7tyig0GnXs9a4khnVuPf/Qb6HZfaq?= =?us-ascii?Q?aKM7ePLSpa3kzSI1VuYQ8LTuhA/h4di3ItIwWWW1mKll5iqQNtt1pKxTE9Lw?= =?us-ascii?Q?RVHv3V+zKL5ZICOukZAheqxwLUZmJbfVA0UTxodIKrl+71qpJqLp7aVOE0QC?= =?us-ascii?Q?PTYAawmjqWpdO5hkH57TSino1uf8Uuvhj4BuUutKU8raEwzKI4m7ehVrDKvh?= =?us-ascii?Q?SBbPc7nu7yI/BA6p5cgYhZ0Mk8jLB6+ZnIROjXL/PBm0l7QlDDmAZ/pQ+rhr?= =?us-ascii?Q?lYlm5TguibhZoX/LOcSSuqQbHIAmHi4YnBrmC3V9GQ=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c79aba4c-f813-4787-ea46-08dc399c1224 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2024 03:02:46.3769 (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: PR3P250MB0150 Subject: [FFmpeg-devel] [PATCH 1/4] avcodec/lpc: Don't use AAC defines directly 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: It leads to defines for the AAC decoder being included outside of the AAC decoder. Signed-off-by: Andreas Rheinhardt --- libavcodec/aac_defines.h | 11 +++++++++-- libavcodec/aacdec_fixed.c | 2 +- libavcodec/aacdec_template.c | 2 +- libavcodec/lpc.h | 27 ++++++++++++++++++--------- 4 files changed, 29 insertions(+), 13 deletions(-) diff --git a/libavcodec/aac_defines.h b/libavcodec/aac_defines.h index 59528f1f0d..8765939731 100644 --- a/libavcodec/aac_defines.h +++ b/libavcodec/aac_defines.h @@ -71,7 +71,15 @@ typedef int AAC_SIGNE; ((int64_t)(y) * (z)) + \ 0x40000000) >> 31) #define AAC_HALF_SUM(x, y) (((x) >> 1) + ((y) >> 1)) -#define AAC_SRA_R(x, y) (int)(((x) + (1 << ((y) - 1))) >> (y)) + +#ifdef LPC_USE_FIXED +#error aac_defines.h must be included before lpc.h for fixed point decoder +#endif + +#define LPC_USE_FIXED 1 +#define LPC_MUL26(x, y) AAC_MUL26((x), (y)) +#define LPC_FIXR(x) FIXR(x) +#define LPC_SRA_R(x, y) (int)(((x) + (1 << ((y) - 1))) >> (y)) #else @@ -103,7 +111,6 @@ typedef unsigned AAC_SIGNE; (c) * (d) - (e) * (f)) #define AAC_MSUB31_V3(x, y, z) ((x) - (y)) * (z) #define AAC_HALF_SUM(x, y) ((x) + (y)) * 0.5f -#define AAC_SRA_R(x, y) (x) #endif /* USE_FIXED */ diff --git a/libavcodec/aacdec_fixed.c b/libavcodec/aacdec_fixed.c index 57d3fc8bab..08343bf157 100644 --- a/libavcodec/aacdec_fixed.c +++ b/libavcodec/aacdec_fixed.c @@ -66,7 +66,6 @@ #include "avcodec.h" #include "codec_internal.h" #include "get_bits.h" -#include "lpc.h" #include "kbdwin.h" #include "sinewin_fixed_tablegen.h" @@ -76,6 +75,7 @@ #include "aacdectab.h" #include "adts_header.h" #include "cbrt_data.h" +#include "lpc.h" #include "sbr.h" #include "aacsbr.h" #include "mpeg4audio.h" diff --git a/libavcodec/aacdec_template.c b/libavcodec/aacdec_template.c index 72c6e206a6..fb3a954aad 100644 --- a/libavcodec/aacdec_template.c +++ b/libavcodec/aacdec_template.c @@ -2516,7 +2516,7 @@ static void apply_tns(INTFLOAT coef_param[1024], TemporalNoiseShaping *tns, continue; // tns_decode_coef - AAC_RENAME(compute_lpc_coefs)(tns->coef[w][filt], order, lpc, 0, 0, 0); + compute_lpc_coefs(tns->coef[w][filt], order, lpc, 0, 0, 0); start = ics->swb_offset[FFMIN(bottom, mmm)]; end = ics->swb_offset[FFMIN( top, mmm)]; diff --git a/libavcodec/lpc.h b/libavcodec/lpc.h index 0200baea5c..907fab7508 100644 --- a/libavcodec/lpc.h +++ b/libavcodec/lpc.h @@ -26,7 +26,6 @@ #include #include "libavutil/avassert.h" #include "libavutil/lls.h" -#include "aac_defines.h" #define ORDER_METHOD_EST 0 #define ORDER_METHOD_2LEVEL 1 @@ -117,10 +116,20 @@ void ff_lpc_init_x86(LPCContext *s); */ void ff_lpc_end(LPCContext *s); -#if USE_FIXED +#ifndef LPC_USE_FIXED +#define LPC_USE_FIXED 0 +#endif + +#if LPC_USE_FIXED typedef int LPC_TYPE; typedef unsigned LPC_TYPE_U; #else +#ifndef LPC_SRA_R +#define LPC_SRA_R(x, y) (x) +#define LPC_MUL26(x, y) ((x) * (y)) +#define LPC_FIXR(x) ((float)(x)) +#endif + #ifdef LPC_USE_DOUBLE typedef double LPC_TYPE; typedef double LPC_TYPE_U; @@ -145,7 +154,7 @@ static inline void compute_ref_coefs(const LPC_TYPE *autoc, int max_order, gen0[i] = gen1[i] = autoc[i + 1]; err = autoc[0]; - ref[0] = -gen1[0] / ((USE_FIXED || err) ? err : 1); + ref[0] = -gen1[0] / ((LPC_USE_FIXED || err) ? err : 1); err += gen1[0] * ref[0]; if (error) error[0] = err; @@ -154,7 +163,7 @@ static inline void compute_ref_coefs(const LPC_TYPE *autoc, int max_order, gen1[j] = gen1[j + 1] + ref[i - 1] * gen0[j]; gen0[j] = gen1[j + 1] * ref[i - 1] + gen0[j]; } - ref[i] = -gen1[0] / ((USE_FIXED || err) ? err : 1); + ref[i] = -gen1[0] / ((LPC_USE_FIXED || err) ? err : 1); err += gen1[0] * ref[i]; if (error) error[i] = err; @@ -165,7 +174,7 @@ static inline void compute_ref_coefs(const LPC_TYPE *autoc, int max_order, * Levinson-Durbin recursion. * Produce LPC coefficients from autocorrelation data. */ -static inline int AAC_RENAME(compute_lpc_coefs)(const LPC_TYPE *autoc, int max_order, +static inline int compute_lpc_coefs(const LPC_TYPE *autoc, int max_order, LPC_TYPE *lpc, int lpc_stride, int fail, int normalize) { @@ -182,7 +191,7 @@ static inline int AAC_RENAME(compute_lpc_coefs)(const LPC_TYPE *autoc, int max_o return -1; for(i=0; i>1; j++) { LPC_TYPE f = lpc_last[ j]; LPC_TYPE b = lpc_last[i-1-j]; - lpc[ j] = f + (LPC_TYPE_U)AAC_MUL26(r, b); - lpc[i-1-j] = b + (LPC_TYPE_U)AAC_MUL26(r, f); + lpc[ j] = f + (LPC_TYPE_U)LPC_MUL26(r, b); + lpc[i-1-j] = b + (LPC_TYPE_U)LPC_MUL26(r, f); } if (fail && err < 0) -- 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".