From patchwork Sun Apr 7 21:09:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47904 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:24a8:b0:1a3:b6bb:3029 with SMTP id m40csp2147270pzd; Sun, 7 Apr 2024 14:11:04 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVLl9M+Z9REogKgfmfrZujXShLeRY6ZJ84FmEiuU4XPZFsHAKgbyun5vyTZVVy5cjDOknOAnOQH6UiNKpvL1138HiQ8ium7XlDAIg== X-Google-Smtp-Source: AGHT+IH3HqwdvrXLfRxEeYloS0uaBTrhVwb37cVFgJNsMFnphhRfgcjToZvPWtJKAVmDAhKWWXxe X-Received: by 2002:a19:f70a:0:b0:513:e14d:15e1 with SMTP id z10-20020a19f70a000000b00513e14d15e1mr5035481lfe.57.1712524264117; Sun, 07 Apr 2024 14:11: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 qb34-20020a1709077ea200b00a4f92b9ecb9si3099860ejc.925.2024.04.07.14.11.03; Sun, 07 Apr 2024 14:11: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="qAd/8qlp"; 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 C54E968D1A1; Mon, 8 Apr 2024 00:09:58 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01olkn2083.outbound.protection.outlook.com [40.92.64.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8A20868D1FC for ; Mon, 8 Apr 2024 00:09:50 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QwyCoIiDFOeFvwPfu05JC8te+iR7PSgw4l+c8nwQqKjr6MssmsFSnYItBoPLSbP4NIO/KCOviMbKjK3v8NRXE/7zZzlq6n3UEKxDC/N48Kb4cnpQMoSETTVcVLybZUZKAZLUvLllufLLpDiD3lmQGlQYoHBsKU5s5sngsAklWGdKQUEUcAgzQQ8iTezUeHgLbH9Vt6Kku9TIH1ybOiWQgCIjWRQv0qrkpC3oATGjLq34GkmqynYcH4qKmdNWmpEHJtkOjcn+e9BABHPY7AJT9vIWwTAxu9iy++R9bYQ/1y0dffHUU4UinYH565/UTfMewbm5Jc/gsyd4MTuKqOC5Kw== 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=IY7CaAz2X3IpAK29njgd21gyOlVowQjPpBSHX+wTXwc=; b=I6c+vXV+T1yj3aU3O6Bh7koUYg7bI/dLYEo94CRzYpxqKWRyVH0qGKL752qSIM+CEq+DTxP34bxgdK7TUM0s6MlSW02qMZe4bY1z2MS8DL2PD4n4khOxOcoLHwykOanL9s/2ydKzh/On8Y7pjVn+/vTkadvOIE/D/2MnoJIreG+SM0BdvkZkfIGtQnc0W8s9Bwprqs/1wh2GH5WYAH6W2Z1Uq/HY5PRaOxj30AOIYX5zIC7jOFB0viaMlAlpeN+n00VWvDgHra4aFBxjK48oo7aKugJ9ALmxpVeQ5MYIKYvS4f5jplKXLZD+WN65dKHfhCAo096kxlFSkGJWF+Ytyg== 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=IY7CaAz2X3IpAK29njgd21gyOlVowQjPpBSHX+wTXwc=; b=qAd/8qlptw1WEM5NO+rnfgQx7Yx6D4Mw238ehrKYheje+lWx12BRp6xoA2lpj4CwTvjlPTXvheignIAXxnC5MGIdKVl1CRSkB7dl7i7YSYvPrpfwR1omANGg8jXqIYZrEcTcQW+mBiLkzOtyho8E5PXab+3ArlpRF1jk4nXZenz2BSBbfolT11QWCP6BqhJsWjyo0jGIm8ulVh0H2WAnxL4Ap3aM1QIUCCn/tgbz52T1e5daHizdKu5dp/qfnx07JjlhEGqC2DYIOI3eClJQAdCTjnLskMxAuAwspZSbWHttcRM8Kp+KnLiFkYk8cC8+sZs8SbplvyoF9CJcdKJ9gA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0234.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:379::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.55; Sun, 7 Apr 2024 21:09:43 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.042; Sun, 7 Apr 2024 21:09:43 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sun, 7 Apr 2024 23:09:12 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [9Jv6JCFJc71aL63MeA6li+QAwbVG5qfDF9oRgavZV58=] X-ClientProxiedBy: ZR0P278CA0038.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::7) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240407210915.895619-13-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0234:EE_ X-MS-Office365-Filtering-Correlation-Id: 04718342-64d7-4f83-3734-08dc57470c1b X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnpOxDCcKCE3ew6GouC7ydNhRxL5N15o06XEGJCM6YXe3AA4WI+tpH+p52jdpX1ai5KXKIQpefgYGKXo8mvD8lJWOz8nA1DmHPfbzc7l46LbYjA1p+Q7LJyv0tapYNmpHNYI/LgHz+4u0EFoZY7ccQHGm9CWYxYG1zSE/gCX+gmP8UpkR8r34ld/NDAVB+XhG0Jjg6SDezgmIEatTsgp9WhSLmRF7Wr/QFAV/Qa0Ag63lBOHHende46Vs/y8rJfd6hisO+LxYp2yB5RWnoL8GlTT+Ktn4coKQJiDLsGajPvvwCICygl6XkVv2kDNakU/O6BijQunn2pwIYuvKa2+niiyYd2Bk1ib5Yle5hI1NNIYnA7gSFhCMLDZIJpwIEpSfCIPk+1SBiJJOLazvCazLfwPT7osyP0k1Q1n+EvA4aY7UP0fyFFVLX/CS7Qw3SEjbgFsy1R1kdk0r9wJFuUAd84K4unyR8sFDA/V1j9pfD8i9oJwdFyLbMDxHk2puvskTVGiaLT65h1MHV8GHbz9kS8Tu519iD2jyYNRmZm96/OnXq4HkeA4QAU3Y/n+wzzpz8fJukM/xdKgfQG+t3CUe73ZNWRr864LshC9ZpLQquDKErqBxdQVYHk3dV55kNq2ZTQ56Lca+tEcywmL/PY1r3BiSH3JQDwBa2PrAjnci33QT/IcBiJomm+nxHXhFReB6Xat9MKjbM/EIXR8tD7nJKlJPKo51u6kt4QkSDTg37LmjrKV5Cn4hS/LDWshUxUcnPc= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EMKVPra1w1UQ/J6XMFQ+EvAIanOL1CxrTWzhDfkEXH3j11zgLdkmblSNPZgS9cQUNF1ADDiZgK8LQ7SSbrgMGjHFTK+yNlSihNjGE7HkGFLHGohIKNyX4b43UNAfpxl4yQ6RM6oGExiGKDRXSvx3uY+9gGU5uxWkuUH9cpogQMDpTL55LrDiPLqkkc8bVSvPmSNmWLA5hTdA7rNTQ22J9uKm9FTJ513KpFSgSNY3z25wcfFjPCIn9DzXdgU2KYL0N/OUA3YXveSln5SUvSe4Xfhkb0UK1bYp5eKxkA83nozb74oUXPXq4yAi5XLOLhFrGgcMIajQ3NTLVocOUYuC+X9m4pjlekRieVDIFmGhHwDhRfxhMGU7lyOSxvrvfbs+KZjSQSTndCpcQevk9cK/BuQZ3peXyUuFSiaPqLT2+sXYhQOFlJHeWirRifaujukHxKe42/wNRKtN5YiDnGU24GLVrWtT7TZq0HvHkis0oXHGuq4dXVPO+rGph2lpPHNWV0OW+hJFv1KkDm41H/nVx8ilrDsJ39N+uwv72ngU/bItMvOhEXZxoHYnsBX+fecOKYFYYpUGSYnjQFfk93pJDNg2kcintdyIl1L7+INNireW+d3m7ZeUVQWX+DKqFJa3 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8RvTKe8VpHI+9BEqtbqp1EgBmTtOBl14c+qWxsxws0v73hG1wlya5Jc5ovWLvoZRWwc66hhNEKLadPjyCRmaSdm+t/Fe0QjTkGeHf4JART04AJ8g5nK5dath8K4TKY7auJdkIDPs3wLlRG6Leu2CA9GnZyg6+r9AXCzook7MIDIIfh5n3LX8cAMR4ogWqofvwXTVYyd1/mM29gcQqX9A48X82JQj+R7IhSqb7aaFuGYvFn/Vo58hquPAhjmF6TLkn22Opskx0hqP3V/mV+ytvvaJ/nrSQzy0pA/yvfLVzn870cXFUl4wWP4CPBDIdQBpr0Or6OLZ/CrBdZjzHpzIeSFe40B+jNNfrl/JclupuQp9mWd9LPGPUydSneiqdhvIMxR6KevFicwgVSZYbSiVmNUvZSVYfqVtxt10lM1Wo+d6p+iqF4mBp9aQuR+E5HNaQvwayuF7lR/WnEsttXvaovQJo8/qv9+dwy8VXvNGQee82zpBWQn3tYR4DDS0uefm7exlb38Yvc/xh6Mlb4+kXUUh4qp6E7vismRS5/kXWbWqI5V3K+fJstKlE4neBcXmZnT1EfZM06FsoiVtY4kGh3BxL50yXLRRvaSAqwenM+qDIMa3kr9UMy/D6TMx2Zuu96DnrHXFXlo2NYKdhZyglQKcmcx5R8eGBwAMnXSN2Q36EPe5hpn1LXpSwWAfEH7aZRzszC7Xy+b7mpaUetys0ucHXZtcyqphS2IFTHhg6U7ZGuWM1YSVhY0SmMkywzNzo67PB7d8HgRNRui7dT8fOpCnwEKT/5DLpvAISSzjekA+8NpxOoGLn9wAA5tl9ASnKxWMWWsPTXEUV0GbsUKs+TpKxdMxu9xlwAdOuTXamAsGClgAB6AHqwwuC/KMsucNinxIfl3Hp/j+ISxy4mTZxPvVu8Q8jr0RVffbtH89HCHYuvDOBG/VnuP3iH+egq4GUqk6Pgcb9m49Pvr6LG7wVD+P/Dznu8pNLH0WIiEp8jje0ctIH51BXWJLWCisXc6zhMopC0cQxUFDbZa9HYbU6fSS/DmN1msMU01Kna7q0Fs/CjUsNvYSg/rWzBhomkzgW7YmqnJl7V6SoX/NMe+jZPmZPL4ARAOD/AfzlW46uvv+mMQgTjk8SDYfKPPlB+ji8RecWftr9Q6VmLLtKmvob8U2E+R9WnJ7XAKY4kHbq5jSvqPoKNghY2TH7VVREeLHXpnb7n6Ltz6EVzwOE8CUUiy74LECPSWHgAVGOwGK6OWw/LMWOxwczuGAVuRMADOUAGv8cmemnfbPVCqC+uMobg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04718342-64d7-4f83-3734-08dc57470c1b X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2024 21:09:43.8632 (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: AS8P250MB0234 Subject: [FFmpeg-devel] [PATCH 14/17] avcodec/ac3enc: Avoid function pointers to initialize MDCT 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: CqSz0udcZNd0 Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 4 ---- libavcodec/ac3enc.h | 3 --- libavcodec/ac3enc_fixed.c | 12 +++++++++--- libavcodec/ac3enc_float.c | 7 ++++++- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 7adb1c444a..8ad89b6a84 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -2589,10 +2589,6 @@ av_cold int ff_ac3_encode_init(AVCodecContext *avctx) bit_alloc_init(s); - ret = s->mdct_init(s); - if (ret) - return ret; - ret = allocate_buffers(s); if (ret) return ret; diff --git a/libavcodec/ac3enc.h b/libavcodec/ac3enc.h index 271f0eb8eb..227744d27f 100644 --- a/libavcodec/ac3enc.h +++ b/libavcodec/ac3enc.h @@ -257,9 +257,6 @@ typedef struct AC3EncodeContext { /** fixed vs. float function pointers */ void (*encode_frame)(struct AC3EncodeContext *s); - /* fixed vs. float function pointers */ - int (*mdct_init)(struct AC3EncodeContext *s); - /* AC-3 vs. E-AC-3 function pointers */ void (*output_frame_header)(struct AC3EncodeContext *s); } AC3EncodeContext; diff --git a/libavcodec/ac3enc_fixed.c b/libavcodec/ac3enc_fixed.c index b8a4d88a42..d2f4cecd72 100644 --- a/libavcodec/ac3enc_fixed.c +++ b/libavcodec/ac3enc_fixed.c @@ -74,7 +74,7 @@ static CoefType calc_cpl_coord(CoefSumType energy_ch, CoefSumType energy_cpl) * @param s AC-3 encoder private context * @return 0 on success, negative error code on failure */ -static av_cold int ac3_fixed_mdct_init(AC3EncodeContext *s) +static av_cold int ac3_fixed_mdct_init(AVCodecContext *avctx, AC3EncodeContext *s) { float fwin[AC3_BLOCK_SIZE]; const float scale = -1.0f; @@ -89,7 +89,7 @@ static av_cold int ac3_fixed_mdct_init(AC3EncodeContext *s) s->mdct_window = iwin; - s->fdsp = avpriv_alloc_fixed_dsp(s->avctx->flags & AV_CODEC_FLAG_BITEXACT); + s->fdsp = avpriv_alloc_fixed_dsp(avctx->flags & AV_CODEC_FLAG_BITEXACT); if (!s->fdsp) return AVERROR(ENOMEM); @@ -101,9 +101,15 @@ static av_cold int ac3_fixed_mdct_init(AC3EncodeContext *s) static av_cold int ac3_fixed_encode_init(AVCodecContext *avctx) { AC3EncodeContext *s = avctx->priv_data; + int ret; + s->fixed_point = 1; s->encode_frame = encode_frame; - s->mdct_init = ac3_fixed_mdct_init; + + ret = ac3_fixed_mdct_init(avctx, s); + if (ret < 0) + return ret; + return ff_ac3_encode_init(avctx); } diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index cbe87dc5fe..cfd233da09 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -102,12 +102,17 @@ static av_cold int ac3_float_mdct_init(AC3EncodeContext *s) av_cold int ff_ac3_float_encode_init(AVCodecContext *avctx) { AC3EncodeContext *s = avctx->priv_data; + int ret; s->encode_frame = encode_frame; - s->mdct_init = ac3_float_mdct_init; s->fdsp = avpriv_float_dsp_alloc(avctx->flags & AV_CODEC_FLAG_BITEXACT); if (!s->fdsp) return AVERROR(ENOMEM); + + ret = ac3_float_mdct_init(s); + if (ret < 0) + return ret; + return ff_ac3_encode_init(avctx); }