From patchwork Sun Sep 25 15:06:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 38287 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp1725250pzh; Sun, 25 Sep 2022 08:07:05 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6UZvLScT8qcBs/hscujnVG/SnuKiaMOKk30teFYxHiNoVOPQ0me/RmkLU/DKi6YBeiMBOt X-Received: by 2002:a17:907:320c:b0:741:1e55:7a69 with SMTP id xg12-20020a170907320c00b007411e557a69mr14953564ejb.740.1664118424642; Sun, 25 Sep 2022 08:07:04 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id q21-20020a170906771500b0078183bdcafbsi11265525ejm.164.2022.09.25.08.07.04; Sun, 25 Sep 2022 08:07:04 -0700 (PDT) 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=@outlook.com header.s=selector1 header.b=Ga33o5MY; 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=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1696568BC10; Sun, 25 Sep 2022 18:06:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2050.outbound.protection.outlook.com [40.92.90.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1EE7368B3EC for ; Sun, 25 Sep 2022 18:06:53 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Mm7NouvqGbS0ycdWrFzdWgvST0QkwzJCeD5+JOcuBtU9f6FoUWyMTFnH1b3AKXhQ+0PFlWfH0qD+Oq6Q5yRQygcNUblF0pN/8GpEHIJTdicH+cmQT77SaHJVL/6Hy0jQUhzCHZJHsCwOIm/tDLvYKhNzEwOTfzqVOxAyJS8GlfhOiEFwcK0Vy7lQW3beAZe8gsQc440oIQsBRM9r6oojTkrbmGn5Rvke4D1KnSodUsbYdVLLMzxqYdRDqkp+sM5ywL/yHUshZSbLdLsS4haeUOu6JMAgZzSJwhmwwMQxHiruj1BJJPNYhvf6zEcY/jzIw1Sv1HP0pHMIOgE7HiS90Q== 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=F04j80I4nRMmARnOLepHDeZgS7fh0S4k/F/bAw5VYbs=; b=coZAB+C4LAhwtn2bHmAyZeJPBhGNCSi0g1mGbgiD+z3JIBYym3D5HtZBjGePbnK+IrFGRcxxNPVz7BJZD9bKeLg6eA0t2+OCb4iLUg08gyQYla5SXVb/3Bb5lOclbgdfylZiFuoYB3V18kSGdQfoLCJwSqCC+WcWcDq+JiwjApY+l11RRsCOlp5F65gaO8L8x9DZOK2EiwIJLdPHJcw7Vm6YLZMF5xAQArHm/lDAaQOGxT9A58OHVdaH9Fv2ei7xOG97Oe87DOeoOOEZ7G9QI0PCKoKnaL3eY9T6QYZqcYQtcmVs2xJY3URDXq7UY9vhRk6kEfxBe1AU7TWhBmIYbQ== 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=F04j80I4nRMmARnOLepHDeZgS7fh0S4k/F/bAw5VYbs=; b=Ga33o5MY9+/IV0DLv17WTjvOWDW3IzikMDRiKP8WxabC27c45z2e64AUwQa9HWZyFLyho4xM6XZf/zFKrXyqI93ER6+YNEuRP8Gg6iGXf2upxzTqF3BTElYDMOcFA9P8SFJiyeJMQdrwXYNS8D0nwQgMKQpmUxho8MJzYBmyfNO8nFWXnOoAczKs8OZG323gAGNYg6x5L5Ga8Vz3muL3cm4PLt7FCoNcVnOvROmiOD7VRdNbwl0XLlSoTEfGr+YHkNa8bpDwydO4KjtGtfz4uH86XiltVGQoC70N6ucqcDWWOc18YTsC8HMbEFf3YJUprc4Jl066GTxsZoJ79JS0GA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by PR3P250MB0241.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:17c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.24; Sun, 25 Sep 2022 15:06:52 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::85ac:1b92:90f:dc18]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::85ac:1b92:90f:dc18%4]) with mapi id 15.20.5654.016; Sun, 25 Sep 2022 15:06:52 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 25 Sep 2022 17:06:44 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [ngFM4h/cNvxkYSXAKRDRXIaPJKPQsOgpKg/KA+8PcXo=] X-ClientProxiedBy: ZR0P278CA0028.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1c::15) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20220925150644.2832447-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|PR3P250MB0241:EE_ X-MS-Office365-Filtering-Correlation-Id: e0d8817a-a7ad-4896-d91a-08da9f0793d1 X-MS-Exchange-SLBlob-MailProps: EgT5Wr3QDKxLc5tmG8wxoTilkTeNb8efEUCiTxXkZDAKokRNhS1wztoKTxoIWmJI0Icrbc6d9ahEwsdNRi3gsqvrP+0lxJQmZYM2ix5TU3XZ1j+j6teNhIV1pIalNWR8A1Dgdt2ZPjhZAx1HWbsthZlVODT71NjQB+IXpLX1XR1n6HbOX+thfFXXfBbd9NP3/lRQ71XCwlmf0IahwvtpzXugQgMOZg97VVFikM1j+4LLyoK348BkMQ+RF9lmJU4qG9KdQIAw5POsNnKDW3rdXfqxStROecA8rbCR4MSRjHD4k5PY8fs/YNccmqW/4MB20QlP8Lbru1DoIFds19FHTvGsOfm7ouJaqKHhA/gMtEa9nHgjCuzENUgbnac4c7Pu0eFMisPDnz25z5PqtynZvvah2mDRGNJEnfJbSvyFysb8pLVuct1E2iHGQGERFibFqiNoTK+XB5VdadDmH/rUQOPIXsz4pWP9DOF9A6IOFgHSlfFwPtoCxVf53OUDiErg+2zEHFV/wdnfhzAQ5+rh+xE8fYf/4hyZCu2S+l6JvRjfZ+fOXeg2zs3qy2m0VtZWDZ49FtBhJTDNSJnDE9QhDG3GwYG9S72YDzL6yzB8WrXBDml4cKb2XSvJAlf7hzPNmUzGs4l8fOXW6raHAw0pe+UrjhA2nqZg+12iubnXAEq5te8hcFFPOZwXWB6Cv52bWkEIZFiajEPOKbWJSHSbWKgF9IqoboAYtrieKlbryAY= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EAP8C8LD7aaMpJkXT3Plhxw0o7FsnSws19aIGt565fI5y9qj2pHF6VReN3fuFBZ4nc5CHvK6tp/30X1s8EEWD3BVthy0YuiFmZ1K0hG1cG/f8wVYy8rla0W+qer+h6ljMLZ75Ejhgmmpe2W5j0CAQih3m9OpRl5p4hordi+xaEtqU5GXj0sq6/qO5KWcz8EWioGzaHZtpxKW8K5eZKngYMe9qCyP2IFU8WOpI6HimNPU1yKdO6DZrRU1mym3q8VfwHC+aOuqB9BORe7PtdiL1agMpsEK1zk9kRc57O7KX9j1Pa520rjeZM1ZPCa96Y6EKpXwxEKRpYdgR7yhkqA0r3SFBSyDSRocN2SVGcha0KlWmEG007XiEudUAS8QhM54kXeiHx6pRaGAPq6ayZZAahSDO/5HZ2kLErStQu106j55FjB0S8CVDO4a59PMfvFpO1G7DQ4A6qq18Xj/EJE69ogM9rV0ijRy60MZllgjgm11bv+fG523poPRPC40skwxVRzpR+7HmN0ee6mq5T1+sS1JPaQ/WRHWMPz+K6ws4NbMXN79ZIzVaJj+jgxsrM194/ABbwmvC1g2KcRAmZp8FkecE16nJlus0FTB1GfKENpzK+BPUV0YvKYX8Q1DiEScLUmSjX49W1tyTZXcAdwBSg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1eCvqUaQkNVnxL0c0esLo8c+pDKdThnIjleF8oas9fjdHpDIXi9CwM957+nLd9B84PyugtInCXYiMXGbp06Qwz1E8vNM5LfH5u9+8hNih2rLcK6ytImxhUbLvCkImo2p4rakVFBejnyi13R8bbDPTFP9abJzGwAnApnDwLJ9oPoEMibQKkd2p0s1qCVn6ILvxZbLdumVoKq6MWJk8jx+Hy1AASbcCwy6QdcyHAF2cvr3B0pFRuobPlVLJVZHcvWZa3SEe+md4LO4sGcw6dzrdYTtFZ+h+R1SE89UuSS6ChFU/ssONOc+/h8kzLVoCyhF7BUXxqg48wXT1W9Dj/1LbRGObl8zEZlSEwRHois+nwlW7qR2e28SSNU6AAioPfGG3La5MHRriqyzNmgDj7cMHq/Q2Q+oVCvDsqOFIveD/3fxUB1v3dwypXqbkFl/Yr3Oh5sXi+FH8rpJUbV/b9vaa650CGkSHAi54fIYRdYYXriFq79Umo6FEEWXBhewHqph6fit+lYpmUhafRMNxg9nS7bNkwtwxJpHp6NrKCRGk18xu/B7DH9d3Vg4n9cxH1zu/lRz3x8uShOYL3zT2WTL/58LtKQv6nxFYo8jsiXQ3IGysI8ZlF2nu8XfdiBqkFDw4IXXEdqCcjB6H4NMZGjOFH2yx2N7abs7Sij1hLYZZgbMxF4M9VjlnKs+mW64Fm6cnQyC9sVlZOOEnjgMyvx2MbjDHfM/4Ub+05y8VSPiak+pQF5e1MO4Khb2CI/KEtvWyt7htGgBtHERtNQOU5FpfAgXNG3I/Bo2NgnOmYikbU83ZB69ysz0kzmuNemrLvKqeFD4boJda3k9oF9eFyfbf+3cSw4j9RX4UZ/dPo92xH72NgPYtpKGSIAsp1USxkB84i5c6jzt4QlMRG84pxWSj7gSzibo25I9V1Getv4tPyAUkqKD6qoeqr1rn/MfsTVgMW1LDWkblk9XaAVhI/JfnQxTot4RxVXrvSXqQrBe2HwWlHBqiG2QJOy5u00HL0VKxdMp6mpRJfEO0+k4wLb6/g/QwQcFhUuGQOTzibpQa4HJPL4zPqU3i42bPz0uSrfyJaa9bKlC+soAdEES+3ri0+Z2esTcIUSFka7NbTpDp0oCkHezMfYc/EByuhXMtrd6RYuJLgCL56j/nnhZsZDceAjgSzl3j/qhputQHuWcnrckQavg8BhtCJIkpB385VuN9R+xUZ7ZYeyhp0oVuYT2oLvLfmf/OLllkTN2FXyzWBB+KSx7GCV/MP3TsZe0IC/+gPw2XQ3V4lMn/RHyMfGppuR7MFvRPZHniUPntmXuWgIVW9F5ZNkuqpMrFRqC0D4S X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0d8817a-a7ad-4896-d91a-08da9f0793d1 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2022 15:06:52.1655 (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: PR3P250MB0241 Subject: [FFmpeg-devel] [PATCH 3/3] avcodec/lsp: Make ff_lsp2polyf() static 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: hTXMa9d41ZJU Possible since 48ac225db2563fe534b1d9e999bf8e70d5a577f8. Furthermore, the current code would not work on mips in case ff_lsp2polyf() were used outside of lsp.c, because it is not compiled on mips since commit 3827a86eacd04d9d7b356f769be553f7b8cca361 at all; instead it is overridden with a static av_always_inline function which only works for the callers in lsp.c. Signed-off-by: Andreas Rheinhardt --- libavcodec/lsp.c | 24 +++++++++++++++++------- libavcodec/lsp.h | 12 ------------ libavcodec/mips/lsp_mips.h | 12 ++++++------ 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/libavcodec/lsp.c b/libavcodec/lsp.c index 9536d8078b..275984097d 100644 --- a/libavcodec/lsp.c +++ b/libavcodec/lsp.c @@ -124,8 +124,18 @@ static void lsp2poly(int* f, const int16_t* lsp, int lp_half_order) } } -#ifndef ff_lsp2polyf -void ff_lsp2polyf(const double *lsp, double *f, int lp_half_order) +#ifndef lsp2polyf +/** + * Compute the Pa / (1 + z(-1)) or Qa / (1 - z(-1)) coefficients + * needed for LSP to LPC conversion. + * We only need to calculate the 6 first elements of the polynomial. + * + * @param lsp line spectral pairs in cosine domain + * @param[out] f polynomial input/output as a vector + * + * TIA/EIA/IS-733 2.4.3.3.5-1/2 + */ +static void lsp2polyf(const double *lsp, double *f, int lp_half_order) { f[0] = 1.0; f[1] = -2 * lsp[0]; @@ -138,7 +148,7 @@ void ff_lsp2polyf(const double *lsp, double *f, int lp_half_order) f[1] += val; } } -#endif /* ff_lsp2polyf */ +#endif /* lsp2polyf */ void ff_acelp_lsp2lpc(int16_t* lp, const int16_t* lsp, int lp_half_order) { @@ -172,8 +182,8 @@ void ff_amrwb_lsp2lpc(const double *lsp, float *lp, int lp_order) qa[-1] = 0.0; - ff_lsp2polyf(lsp , pa, lp_half_order ); - ff_lsp2polyf(lsp + 1, qa, lp_half_order - 1); + lsp2polyf(lsp , pa, lp_half_order ); + lsp2polyf(lsp + 1, qa, lp_half_order - 1); for (i = 1, j = lp_order - 1; i < lp_half_order; i++, j--) { double paf = pa[i] * (1 + lsp[lp_order - 1]); @@ -214,8 +224,8 @@ void ff_acelp_lspd2lpc(const double *lsp, float *lpc, int lp_half_order) av_assert2(lp_half_order <= MAX_LP_HALF_ORDER); - ff_lsp2polyf(lsp, pa, lp_half_order); - ff_lsp2polyf(lsp + 1, qa, lp_half_order); + lsp2polyf(lsp, pa, lp_half_order); + lsp2polyf(lsp + 1, qa, lp_half_order); while (lp_half_order--) { double paf = pa[lp_half_order+1] + pa[lp_half_order]; diff --git a/libavcodec/lsp.h b/libavcodec/lsp.h index 621ebeaebe..26b1382eda 100644 --- a/libavcodec/lsp.h +++ b/libavcodec/lsp.h @@ -115,16 +115,4 @@ void ff_acelp_lspd2lpc(const double *lsp, float *lpc, int lp_half_order); */ void ff_sort_nearly_sorted_floats(float *vals, int len); -/** - * Compute the Pa / (1 + z(-1)) or Qa / (1 - z(-1)) coefficients - * needed for LSP to LPC conversion. - * We only need to calculate the 6 first elements of the polynomial. - * - * @param lsp line spectral pairs in cosine domain - * @param[out] f polynomial input/output as a vector - * - * TIA/EIA/IS-733 2.4.3.3.5-1/2 - */ -void ff_lsp2polyf(const double *lsp, double *f, int lp_half_order); - #endif /* AVCODEC_LSP_H */ diff --git a/libavcodec/mips/lsp_mips.h b/libavcodec/mips/lsp_mips.h index c69f8b770c..2d67403888 100644 --- a/libavcodec/mips/lsp_mips.h +++ b/libavcodec/mips/lsp_mips.h @@ -61,7 +61,7 @@ #include "libavutil/attributes.h" #include "libavutil/mips/asmdefs.h" -static av_always_inline void ff_lsp2polyf_mips(const double *lsp, double *f, int lp_half_order) +static av_always_inline void lsp2polyf_mips(const double *lsp, double *f, int lp_half_order) { int i, j = 0; double * p_fi = f; @@ -88,8 +88,8 @@ static av_always_inline void ff_lsp2polyf_mips(const double *lsp, double *f, int "addiu %[j], %[i], -2 \n\t" "ldc1 %[f_j_2], -8(%[p_f]) \n\t" "sdc1 %[tmp], 16(%[p_f]) \n\t" - "beqz %[j], ff_lsp2polyf_lp_j_end%= \n\t" - "ff_lsp2polyf_lp_j%=: \n\t" + "beqz %[j], lsp2polyf_lp_j_end%= \n\t" + "lsp2polyf_lp_j%=: \n\t" "add.d %[tmp], %[f_j], %[f_j_2] \n\t" "madd.d %[tmp], %[tmp], %[f_j_1], %[val] \n\t" "mov.d %[f_j], %[f_j_1] \n\t" @@ -98,8 +98,8 @@ static av_always_inline void ff_lsp2polyf_mips(const double *lsp, double *f, int "ldc1 %[f_j_2], -16(%[p_f]) \n\t" "sdc1 %[tmp], 8(%[p_f]) \n\t" PTR_ADDIU "%[p_f], -8 \n\t" - "bgtz %[j], ff_lsp2polyf_lp_j%= \n\t" - "ff_lsp2polyf_lp_j_end%=: \n\t" + "bgtz %[j], lsp2polyf_lp_j%= \n\t" + "lsp2polyf_lp_j_end%=: \n\t" : [f_j_2]"=&f"(f_j_2), [f_j_1]"=&f"(f_j_1), [val]"+f"(val), [tmp]"=&f"(tmp), [f_j]"=&f"(f_j), [p_f]"+r"(p_f), @@ -110,7 +110,7 @@ static av_always_inline void ff_lsp2polyf_mips(const double *lsp, double *f, int f[1] += val; } } -#define ff_lsp2polyf ff_lsp2polyf_mips +#define lsp2polyf lsp2polyf_mips #endif /* !HAVE_MIPS32R6 && !HAVE_MIPS64R6 */ #endif /* HAVE_MIPSFPU && HAVE_INLINE_ASM */ #endif /* AVCODEC_MIPS_LSP_MIPS_H */