From patchwork Mon Mar 29 17:08:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26640 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 4C91F449256 for ; Mon, 29 Mar 2021 20:08:53 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1CB02689BDC; Mon, 29 Mar 2021 20:08:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-oln040092067016.outbound.protection.outlook.com [40.92.67.16]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 06A4C687F27 for ; Mon, 29 Mar 2021 20:08:47 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dcE7yoWNyfaSKcI007rKxQnXzvekqjiHwcWgdtXyjvxMuFUN6MUNjF1UChme3yl8nvZelUVbwrQKik2WzFDqdPofdc1b6HNIX1+DTUvOD763CUGL9zJpbbhF5VsMhX6AY2WN1MmpcMmU6N+J17dzGiBkR+2eAk8YWP4rkslLTGoPiBhceuyiDe0GI6jjnmZAxYKu/ja8E56xqei9az6WEAk+PnpC0v/NsxzIG6JtuMaiR/Fw6Bgz7bmCCNYmQMfSoQVm86YjpA04RjyskyuSpwqCH/S0fLm6dvqt+YO9f1+1ZObmcpGx+XCuSScEvVbsALDn8Y6K6C6nAlX8HvvAng== 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-SenderADCheck; bh=Q5f3GgxkbTfclwAEM2zcFfXDKzi867smw1gy6QNHRpQ=; b=IjJvcOSs1eDSR5bV9ujnZLVxcaOXqXxmQP62elttqgVGVtXR5VGjsL6WhrZxFcOlSwAQ8c4eLh65DrmCTw2gjwINhj0v7vtOw26hgohSlkxFS/LgqPJumU/dZUoDx3b49fAjUckYa3GZ9dHdtcncNfFxWcykevpGPCTh4+pBN3d3PMpkNa9/ayc+Cmw9VNNvBBWFT3Y5b0HGAGfYkF0NPndQSq7ZMu6FKvXiCc9YJ2qBa8RVg5+Vc0AvtBxphQHfBz2w6Kq0R+fichUw0D4sK6xUbiaEUY0VrUTJzlwiiNJu/53ydtUbNMN31R7D0WhDe98CGNjqCvTYg/gDAflOoQ== 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=Q5f3GgxkbTfclwAEM2zcFfXDKzi867smw1gy6QNHRpQ=; b=fbIcdGgL29zJFG2kgKxmD3d0+CeusMIW8dIjEQnk2GLb3ypPnanQjBL+HHD0Sm8AJlbMpxZLjOTyc4LBB8kAdxhRDJSA2fUi2YjRRdsQMp1v8C271sLbyCOHjqS2xqwrwlTW9nOWGpIIWhqS0DWBgTP6mUs26YpUHa7IXv4iI/5OL6VpyEKhNBLqhhScnKnWknHJP96eh/2Z9PyPw1tnO4TqMoRNNndvjcBh1rs1maRKIjNMHISTRX/CzaFbZeh0450/dcMpGXpcaIdtmFchMF4NbTOSXzCS1a2IgBNaSrS+KS5FGTH6GJdektdqJENaFFvqDBXmqFJiT5UB/HuIzw== Received: from VE1EUR02FT052.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1e::4d) by VE1EUR02HT014.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1e::144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.29; Mon, 29 Mar 2021 17:08:45 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e1e::53) by VE1EUR02FT052.mail.protection.outlook.com (2a01:111:e400:7e1e::402) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.25 via Frontend Transport; Mon, 29 Mar 2021 17:08:45 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:4C12805ADDF1B5B1B2D35BA15C4AC4DC898CDDB926E97A061EFA95268D1DEBF6; UpperCasedChecksum:3B26BBEC2B4C4934553E0FD10F34352FEBF022A7CEE34A4F0094B6B08899A30F; SizeAsReceived:7403; Count:46 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21%3]) with mapi id 15.20.3977.033; Mon, 29 Mar 2021 17:08:45 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 29 Mar 2021 19:08:32 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 X-TMN: [3tIKaHOtthHqINVELZamOW6h9hdBEXon] X-ClientProxiedBy: ZR0P278CA0068.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:21::19) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210329170833.718310-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.137.96) by ZR0P278CA0068.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:21::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.24 via Frontend Transport; Mon, 29 Mar 2021 17:08:44 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 23e5f66a-50f7-43c4-1d35-08d8f2d54f82 X-MS-Exchange-SLBlob-MailProps: mBRmoEB1kyJI6Ri+2w4enWz2jr7dr09BOl/V/EYvrtPhKI5Axp1qOz13jCJxXeNVcIdsJKb5pro3mr8EXWNxP6GBD+fmcO70THMEUZMjByXyOjSSsH09V1iqg6H0otB7wz/Woo//gGGdUTdpzSAJIDFu8ITlZcrledNe58/cM3M1o0QK6umvW7C4A3ofnVFeu1vXQFCdAIuv2YlF/oKYT2wM9kq/nChb7gLfBIMHC9c+OIjWT5tjVJPB9oWu/aGKRVwK0hMxvDtvnbGs+g+lArwwuW+cOL/hO5ow7MwO3BXGPhHKqCBWs+IUhyvSooANs4KKTNADN/Fp3RIUb3ECDWfhiy1Hcabvu3DJHmSFsAAzk1cK61NqLJkHijlK9bhyYjZ+KHwcorYY+g8dEYK3tctIyqKUN7ze+If42jv2WA+g2rZEyEm3281nYARxVrI46FC4PIphKQvPs/GT4Gy81EnLbAul6hIKdsVQZQso3+vP0TkSfozI0hSW4M1t9BG9MKKlOL6hn3zxCY8LLU62lpIm7ENkBdluH8Qreyhk46IeGP6ac+8aIVyA2lI+JkurTYtXCsKSqda7SNdAlHkfTTY15yt/Uui6DlNNRxILu9iiTJPZX79Ool0q5lhnY55/vZ9PmSddQfMf7An0DMQabA/wuSL5UdZmmL9sLLb17duUGmhN5JbzkWcsUT952xu2l5NYnvAb0wAffgwMrx8nQLaS+ShMIOFtT4gjO2odWc8whI//PSWiKkBXPpyFm6zzOSkZ/1bRAdM= X-MS-TrafficTypeDiagnostic: VE1EUR02HT014: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wbY4YKLbD9jQUxPPCOg2TSkBBijnAAFR2Ay83qVHD2lF9ZkPyx3tQSfrbfFF0eJJh87C0lLUlGaZdlRJHDOgkk6a4FFByBWlh+ET2uKt758N/XzNQoR285bRCfWw5ZrmkUxw0U4uXsrTlJL38l0aqYRUqGoDxgiv+gtASXpL2cy3TRi9J6IGVch3WjH1yJ8c6SsB+710tBHSd0KBDxjI9seh2ZezmPGyZWAyNjb/X4iOdULy6Fb5/WCmffzFASzNn4cRN8Xk5PRF4ggx2VMvBht6DdXu0U+pl73PC3Y1l/l5pEDRJJaW39yNLZDT8TlBb7eGLX5rMHIGmUHfjyDmVM+X5i1nqsvA2Gj03Mh5LkrASfyQ1hHA8/2rVtxxYJeuYdndqNNEwvaNMuyouRyDaw== X-MS-Exchange-AntiSpam-MessageData: 7khZi3yX2swGAv61OFuMGiUTKY9OS4B68exrmWa+1CDa0y9irn6EIK7ZQsumdsqUfcjOiYrJ/OUCOsuLPzgbCH4yFrwmw77D1dzInWLhBOjXLYho39MgFLbdUYOZi30Ca1QgDyBDoAC1wLLYB4HWHA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23e5f66a-50f7-43c4-1d35-08d8f2d54f82 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2021 17:08:45.2466 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VE1EUR02FT052.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR02HT014 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/ac3enc: Use actual size of buffer in init_put_bits() X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" Since the very beginning (since de6d9b6404bfd1c589799142da5a95428f146edd) the AC-3 encoder used AC3_MAX_CODED_FRAME_SIZE (namely 3840) for the size of the output buffer (without any check at all). This causes problems when encoding EAC-3 for which the maximum is too small, smaller than the actual size of the buffer: One can run into asserts used by the PutBits API. Ticket #8513 is about such a case and this commit fixes it by using the real size of the buffer. Signed-off-by: Andreas Rheinhardt --- Not checking the size of the output buffer seems to have been wrong when it was added; yet commit 0ecca7a49f8e254c12a3a1de048d738bfbb614c6 added a FF_MIN_BUFFER_SIZE of 16384, thereby legitimizing this behaviour. This number (renamed to AV_INPUT_BUFFER_MIN_SIZE) still exists and it is used by a few encoders, yet not by any allocation function at all. It seems to me that there is no reason why this constant should be public (if it should exist at all). libavcodec/ac3.h | 1 - libavcodec/ac3enc.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/libavcodec/ac3.h b/libavcodec/ac3.h index f8f6a81f45..e358f8d9e3 100644 --- a/libavcodec/ac3.h +++ b/libavcodec/ac3.h @@ -27,7 +27,6 @@ #ifndef AVCODEC_AC3_H #define AVCODEC_AC3_H -#define AC3_MAX_CODED_FRAME_SIZE 3840 /* in bytes */ #define EAC3_MAX_CHANNELS 16 /**< maximum number of channels in EAC3 */ #define AC3_MAX_CHANNELS 7 /**< maximum number of channels, including coupling channel */ #define CPL_CH 0 /**< coupling channel index */ diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 8044e6dcd0..4cfd0afe12 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -1729,7 +1729,7 @@ static void ac3_output_frame(AC3EncodeContext *s, unsigned char *frame) { int blk; - init_put_bits(&s->pb, frame, AC3_MAX_CODED_FRAME_SIZE); + init_put_bits(&s->pb, frame, s->frame_size); s->output_frame_header(s); From patchwork Mon Mar 29 17:12:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26642 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 6A9B444ACAD for ; Mon, 29 Mar 2021 20:12:47 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3F06A688162; Mon, 29 Mar 2021 20:12:47 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-oln040092069029.outbound.protection.outlook.com [40.92.69.29]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1A1BB680942 for ; Mon, 29 Mar 2021 20:12:41 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W37dThAEhDaRjsmIjACCgVkEW+0JuN95bdf/gtiei/1dreWkmQ+hvzaz5f4A1Gbpdby7UNYDlGSYiB4hUKPDR2nRNYxigzIR0bFxeADWtjjH7z7TSEVfFX4b+7zx6V1/pOMgTeSaA7jPQ7zMVePxqMYfaMvS8m8SkNy/2tRK7z3ugrOVTeBki3O+ezSRzM/CUc+OsLPLaDUOI2UX4E9aPdSUm/rRPetfARPGn3v2QluJx0gjAipoONjCqvAy5zvJPitmz+UFfZDPRyGVwUFscGyRDapYQiCuK2XR8gktZGi681NStBdOz48aF5hTm0PP0OoCe+vs7W10d4kxYZm4ng== 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-SenderADCheck; bh=RrbEIR6MbS71mNQ67IPL9gnnlyiunHQGR3emRaLhrcU=; b=PK8IY0s28Sx8Kr6V+KI4SC0ESrQWY2sp4j5e/vzlY1lHpWPe1j/W2+wE4YV0nFtOONkNhIQA6K2QVwAvpd2wEHbR/yis3vhb+j46CE0SvmDxy1eIpnmZmwOJrYscDdWFAZbcac9cRhZi8b/4ncFV2H8/KeUvJCiGIOcOmOq5cA9eY6Doo8KcfTp6coWHOh5AlP47UprT3ZU54vO2AEuF1R1M8Wql05Q6z7Rv7d/LjCyUAF0hMBlEpfncI3Kd+elJ4zHgx26/I1V3kgLsqkns2Aw68zR2qaDmxDtaTjS2D3fUKtzD8Ip111GZzrf150+06v1txbBAp+1BJEOlzG0z9Q== 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=RrbEIR6MbS71mNQ67IPL9gnnlyiunHQGR3emRaLhrcU=; b=fI155ja78S7Apvv2kR+/uAquXeL6Zz12LQcw/ejzCYAKSZAWWYzAOWQQ6I4zyk5F1K9E/VuddEkqgP5Ep+Iq6LS3EXHrPZDDXRUHmcPqV+mk5jm45WFRA0ycZmaRu7l7r4sjudJFSdbKAKhnC8GotXZksyeiudQx/AEZYNVN0un0RIoPkurD89URp/5buYElCBoANEqLwbTFyr8V3c323H0ll7sy8CxsvXSVpLcD6XGNWNDIgV00394+jah3we7WkVJQzxn/hw3Xhxv00IhkHBjtOTv4qoH4h3CsTOhmnBoIAdGvooYuCe6mci3YSzLVAv7+M6vp2r1yvtWtqzjGoQ== Received: from VE1EUR02FT052.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1e::52) by VE1EUR02HT128.eop-EUR02.prod.protection.outlook.com (2a01:111:e400:7e1e::409) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.29; Mon, 29 Mar 2021 17:12:40 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e1e::53) by VE1EUR02FT052.mail.protection.outlook.com (2a01:111:e400:7e1e::402) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.25 via Frontend Transport; Mon, 29 Mar 2021 17:12:40 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:8532AF9D6C065CA010A153D8286DFCEAB5D20A94059E2F71EF3C65A328C43960; UpperCasedChecksum:924293A98651C3EDD0C87725A044BB2256810E4C2576F44F810131652104AF9D; SizeAsReceived:7599; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21%3]) with mapi id 15.20.3977.033; Mon, 29 Mar 2021 17:12:40 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 29 Mar 2021 19:12:28 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [67/TyZvjFUZR3kmWkPbkcBpfJCYk8Fht] X-ClientProxiedBy: ZR0P278CA0111.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:20::8) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210329171228.754337-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.137.96) by ZR0P278CA0111.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:20::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.25 via Frontend Transport; Mon, 29 Mar 2021 17:12:39 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 35743c93-f26e-4c23-b590-08d8f2d5dba6 X-MS-Exchange-SLBlob-MailProps: mBRmoEB1kyJI6Ri+2w4enWz2jr7dr09BHRkODM4jaNitN0lg9+1q/VUX0T4/TDd29hTCdfrWwa7Xw4R7JeOV32PGRwq8rvy49bZaK0ywv6cirYPOSuiNySx2+3sHXzTwkbcpxiK7Vniwp9bsJ6fvZMgnC2wxxYCD+q7hePX1+AUxduvDVuCGm/jsTT0XIX58yZCp4MsTGTJMNFqYzT/pRmcFUvBtNxcSS26sI4w5KsAcNWOd3SREvg9arFoqGuJWinrNNlTA6VRFBfX9NOZVVV2jfuKzA2i46eFyvgZfhVKqHu733Vl81fISI2uE3SpB6yuvU9DwjZq8i1Q0u/sV78WlP8N/v/Jo5GVld7XtfkYd1nIX6KjclwZI5Xv26+X3LQ+pDFl6SqFXaW6gPrb8/4U41W8cV9SFCXXlHyy1GO+J1wrabmuDB3KhjKRdcqAOjFhocnkdsOQX6IVe4MvhKxCBVJOOaG5GuD3/xlZD5owS+SBZeJ2qI9JfH9AkcM/PTOxPZ89NYtoBwJlZq0Ftxc0/QGuAk1IvboVQbDXpwL/YvNvuWDK7a1KbTYkbvtIX7uH8Hn979xJTOWO3YaYdfxKHgs6P+CdRIIVmX5mrkoyeVYfGFVTfrlkYGostnbm8PWln4ZoVNyZcfCoPizMzYeSFfaAy03Oraug8I82KzXPDyD+IBsx2dfTBoi4MjOtQAKtpnOc5SGOhgZq+i54wXTBy+C1gYvvOpXFVyOlDtSc1VxSfJeTweuiJpqBxpGyVAe9QS0I/peo= X-MS-TrafficTypeDiagnostic: VE1EUR02HT128: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4Y4E2SwZEulqlzYB4fqay7aXBmCe+Cix52NCvYF+UyMVVnE0uSQJoNs+1oWwuBXnAyIfxLIDEYv9KMJBufNe/zaJnQPxq2bzGT4PZ0mI0A5+ViOIDEQZHk5ZJncW7pA2YPi+Y/HftVtPyRbM07xiEDBs0JuUsoRmZHNJO96N8tenF3YnsC6KbFqr5w9mcTrLJoYLqVpJMJluGgqsnO+yyQbKMUQG6M+MSpyV0ebrHPgWdlV+IZpTc1EQcVrpi7VpDpXxpKmCDQm2cFY0yrO2JHPp+VIU9F3AhFtnvcEUwy2JamGL1K1Vdv5ipZFkedyJVhJ/htSmdXZNfZWN7Oo/X8H+bTM0/tAy0u/Pzrg9izJPfFqAKDcB47jdykq/kvauoDo4zHjcBuzcNyM4UvqGPQ== X-MS-Exchange-AntiSpam-MessageData: rAypz5qzzFDx6kBBc1G/+3gwufbaMUBvgmYCCxPX6j4DVFVju5WbFuQA+wSPZyHu862ee5N2gBX8DsRnNjrht7Gv39IM+BEVcc3K5h9jr4G5tCi0sQqsvkCqiewCMirXQBTLBgSyGUJltZPiLm1+8g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 35743c93-f26e-4c23-b590-08d8f2d5dba6 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Mar 2021 17:12:40.2175 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VE1EUR02FT052.eop-EUR02.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR02HT128 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/ac3enc: Avoid needlessly copying encoded packets around X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" AC-3 and EAC-3 are codecs whose packet sizes are known in advance, so one can use the min_size parameter of ff_alloc_packet2() to allocate exactly this amount. This avoids a memcpy later in av_packet_make_refcounted() in encode_simple_internal(). Signed-off-by: Andreas Rheinhardt --- Is there actually a reason not to use av_new_packet() (or ff_get_encode_buffer()) directly? libavcodec/ac3enc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 4cfd0afe12..fc4d45651d 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -1759,7 +1759,8 @@ int ff_ac3_encode_frame_common_end(AVCodecContext *avctx, AVPacket *avpkt, ac3_quantize_mantissas(s); - if ((ret = ff_alloc_packet2(avctx, avpkt, s->frame_size, 0)) < 0) + ret = ff_alloc_packet2(avctx, avpkt, s->frame_size, s->frame_size); + if (ret < 0) return ret; ac3_output_frame(s, avpkt->data); From patchwork Thu Apr 1 15:53:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26690 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 6A40844B30B for ; Thu, 1 Apr 2021 18:54:13 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 46C3F68A6D6; Thu, 1 Apr 2021 18:54:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-oln040092071034.outbound.protection.outlook.com [40.92.71.34]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5B067687FDA for ; Thu, 1 Apr 2021 18:54:06 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MD3jtOQf4wc5rDEagSuvDIV1xqKETLUhA/zMCtEbOptxlrXwRPhQwVYiMC1K09MJ0rOJeghn/pCj90sufhyUHINuFBiS84D1LFJeLd+uLSnkY0UUDd8sbXGJ0u7fhYz2GVVuI8QrpyThnU5LL5Iv0+wd96Rp55riUnyCmr9P79Y0iX8rCZpwOvPDFvtIaELC0WiywaMs7cL2iGO2SmtOS7/Cp4vxkLoYTN32ASps/Ioknividdk3dhBk6J0XzKkeJb9HVD5UEMHjQBO8e/EYQNiqkAJRBzI0fe3YtAv2EfF3haPVv4sK5oidTTppMMUoSvOV0chBjIMYPC+NmCo76w== 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-SenderADCheck; bh=aoaKD0VBbpxob5y2h4PlXHni/A//dQrY4xvlZzWTDg4=; b=MfC1TMqxISLfXVAkDW82ge+meKr7b4ArxIc+ALpmjx/0KPsOWtWM6eCgpY9mtXkSxRfutc9sa+ohEvL9yMFX5PuiGsBHy3z/Z3X5hWc96uykS53RBWvFupLU6W4Qv0SiZuGUOMR4qwOn8yP5PBf2CKI1ktOPyEngVYJkJIbmwDha8Ux5BukBsNaPWnjAYBoIM08DATuLYheab8VZvHkyazjGxbid003sawQAl/OUCFnflNbvnsn2CbRk8RFPGh/P+O3Zc2vEw4ZZBZoW+5WvHs3TSdJhsnr19Xlc18MlIjiR1uGbeAZqAJZRZ4bscFy5+TrmYhhUsNgVE/cHX80xRw== 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=aoaKD0VBbpxob5y2h4PlXHni/A//dQrY4xvlZzWTDg4=; b=Fp9DwHMrDypS59WIgRiwy5F8FKuVuquxu4Z0ZxfbcRL6Q0DqPv+D0KxYTtlpE/aZ+K7BsQB5n0Wv2Zr0xdbEcsYLgDy9a6p2E23BBq0DIztUHOQ97z1yN2lzlYhCm7oZn5Z4kc/uwNFQPOudwwMQYYDfYXbwD7DLhXOwfkSz+0p78Dax8LgMMsu9oCgt+72BBpzUdPitMMx3jNQSPdw3Onz+gpkLo03473cot4BK7Bbpa7DV6khczftGH8YPoGszjeHH2RSjnO70/V8E32dmUq2J67kbTJ88aL9o1AssJ8stzBWzWwoKh6og6n2319mniGB3N0DwC7cyqg9ovk45zg== Received: from VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e09::43) by VE1EUR03HT044.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e09::432) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.29; Thu, 1 Apr 2021 15:54:05 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e09::42) by VE1EUR03FT043.mail.protection.outlook.com (2a01:111:e400:7e09::378) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.25 via Frontend Transport; Thu, 1 Apr 2021 15:54:05 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:E6F122DBF55F214B443CAF2112EECD7D3A9F5026E1EA036134D9315120C26592; UpperCasedChecksum:3DC5891C4BEF639A94C5B9F9B7DE556C8EB303EB8962AB323F7E4ED916056049; SizeAsReceived:7573; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21%3]) with mapi id 15.20.3999.028; Thu, 1 Apr 2021 15:54:05 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Apr 2021 17:53:55 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [fBvjyIktmZua4bG5jmLAIV4hlgz09NB9] X-ClientProxiedBy: AM0PR10CA0094.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::47) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210401155356.2035788-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.137.96) by AM0PR10CA0094.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.27 via Frontend Transport; Thu, 1 Apr 2021 15:54:04 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: cf5f6a7c-fd62-44e3-8d27-08d8f5266069 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiRmQk3JzeNKq1p0dsiv88hWotXGFf/dlYF8cjouMf/HHpdRQe8bqkyUU2uUwnDqDVw6BWVo5IK4l/d15bS65HvpWb5To0zEtOi73Wphle7RrbfUJq7g0Gq97ldlnFKQX3JfCTWwbvxASFlEjOAGNnN3abFL8N+n67BlxgChGlmAofb+VmO1WZJFt9qQn3K3o0mvbrY18r6xYyv8WG0crdPuiGd0Prxv+gSPLowrYj1EMIgCVTTNxWM3VlMv5eEfijld0oRRbSDBayuQ4tFFuePXaKaAoOJQ6gCjCpAip2dOEu1+I7xXQwJXaAYEhA6i45ZUAmZR7m2hNIWCSuTamn3uGzHLOBe/dO0E8EcshkiCLAB5VlfDzjUNDsboz/nZlS5Nc4EHQzs7NwdllMWhUjbL3XCqNvL1ulv9VqkWCg1rMj/HQcR7tDpv/9MQMLNqGFFdzVVniaRuJPwHRa07t3yPScCBkihr9gGNaAo8dcoRuOmw126zLICUF7APUlFA8sqTRnZvvPH/AfTW6Jk0WdU55swBZSITxLEG0fj4uSJUWnZ4da9CFQ2NfoTgn6ZRJY3nJUQf3ENu2sBHtzUYVw8h8aKxK46cEbdlOX+DTTaTWltp7ZHfiozPRec4EZ3Pjz2SN9X65Pr20pSQyc5/eRET2DygYP09GtQrmmlhIjDGt4PpBxfJcDW48L99Mo8wBenucM7s1H7fozhceTRmkBV8veGCQW8ht/B0p188aJ3U7El1FhpsaoaQkJxL1Qo4UTE= X-MS-TrafficTypeDiagnostic: VE1EUR03HT044: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MHdbSaQ+55023Jc7o2tlDSEVPgK3lRPvj00xrsRFybmybRys181wOjuLH1AKfHv1aWokHf41ixD2h5evx7mgPYNmhRSL2tDV5hfU5EHk+ioOqtApPbbmNnfyQnDAY82yVfBVKR9ivOlcnlEZVARlE7Ky8CLIF6t+pgGwry4/GermKvsgB2ayBJ/Ebamhhg1o7HzziH7P7znla26OP26+Uo5lJTPKXO0t6anbaIQdRLew2B7mtWK6e0epmE6TAQlSm6v2ozhF/pWC7aGPPS6P9cyh7ueK2oQotv69JS7cmr6p/LwfMWu/xqT/14Tpvavb+ocqqVLeaLXq6vh16HPqChw7RDOXOTYfSeG7Wu8tjWcJOmOAKg5+kj3R1ZGUjw3zxKmE2ek+N46Qy+aDuj0j2A== X-MS-Exchange-AntiSpam-MessageData: rJMx9+Hn4tVTPNy9UNRkForJ8yj8TasP+HDA8LQUnuV62yb9RT5+CKF/r6kBf85FY0oMiiSWVtelINH6ZYeS67v7GNle0ImApuc0ZkEgESG147OYvXwz1OFxXKZrqmKLw9/drPQDIFX6XE0H7VjvNw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf5f6a7c-fd62-44e3-8d27-08d8f5266069 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2021 15:54:05.0466 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR03HT044 Subject: [FFmpeg-devel] [PATCH 3/4] avcodec/[e]ac3enc: Fix indentation X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" Signed-off-by: Andreas Rheinhardt --- Will apply patches 1-4 tomorrow unless there are objections. libavcodec/ac3enc.c | 37 +++++++++++++++++++------------------ libavcodec/eac3enc.c | 16 ++++++++-------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index fc4d45651d..e27858e1b0 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -1281,8 +1281,9 @@ static void quantize_mantissas_blk_ch(AC3Mant *s, int32_t *fixed_coef, int c = fixed_coef[i]; int e = exp[i]; int v = bap[i]; - if (v) switch (v) { + case 0: + break; case 1: v = sym_quant(c, e, 3); switch (s->mant1_cnt) { @@ -1439,8 +1440,8 @@ static void ac3_output_frame_header(AC3EncodeContext *s) put_bits(&s->pb, 9, 0); /* xbsi2 and encinfo : reserved */ } } else { - put_bits(&s->pb, 1, 0); /* no time code 1 */ - put_bits(&s->pb, 1, 0); /* no time code 2 */ + put_bits(&s->pb, 1, 0); /* no time code 1 */ + put_bits(&s->pb, 1, 0); /* no time code 2 */ } put_bits(&s->pb, 1, 0); /* no additional bit stream info */ } @@ -1697,16 +1698,16 @@ static void output_frame_end(AC3EncodeContext *s) /* compute crc2 */ crc2_partial = av_crc(crc_ctx, 0, frame + 2, s->frame_size - 5); } else { - /* compute crc1 */ - /* this is not so easy because it is at the beginning of the data... */ - crc1 = av_bswap16(av_crc(crc_ctx, 0, frame + 4, frame_size_58 - 4)); - crc_inv = s->crc_inv[s->frame_size > s->frame_size_min]; - crc1 = mul_poly(crc_inv, crc1, CRC16_POLY); - AV_WB16(frame + 2, crc1); + /* compute crc1 */ + /* this is not so easy because it is at the beginning of the data... */ + crc1 = av_bswap16(av_crc(crc_ctx, 0, frame + 4, frame_size_58 - 4)); + crc_inv = s->crc_inv[s->frame_size > s->frame_size_min]; + crc1 = mul_poly(crc_inv, crc1, CRC16_POLY); + AV_WB16(frame + 2, crc1); - /* compute crc2 */ - crc2_partial = av_crc(crc_ctx, 0, frame + frame_size_58, - s->frame_size - frame_size_58 - 3); + /* compute crc2 */ + crc2_partial = av_crc(crc_ctx, 0, frame + frame_size_58, + s->frame_size - frame_size_58 - 3); } crc2 = av_crc(crc_ctx, crc2_partial, frame + s->frame_size - 3, 1); /* ensure crc2 does not match sync word by flipping crcrsv bit if needed */ @@ -1989,13 +1990,13 @@ int ff_ac3_validate_metadata(AC3EncodeContext *s) if (!s->eac3) { if (s->has_center) { validate_mix_level(avctx, "center_mix_level", &opt->center_mix_level, - cmixlev_options, CMIXLEV_NUM_OPTIONS, 1, 0, - &s->center_mix_level); + cmixlev_options, CMIXLEV_NUM_OPTIONS, 1, 0, + &s->center_mix_level); } if (s->has_surround) { validate_mix_level(avctx, "surround_mix_level", &opt->surround_mix_level, - surmixlev_options, SURMIXLEV_NUM_OPTIONS, 1, 0, - &s->surround_mix_level); + surmixlev_options, SURMIXLEV_NUM_OPTIONS, 1, 0, + &s->surround_mix_level); } } @@ -2119,8 +2120,8 @@ av_cold int ff_ac3_encode_close(AVCodecContext *avctx) av_freep(&s->mdct_window); av_freep(&s->windowed_samples); if (s->planar_samples) - for (ch = 0; ch < s->channels; ch++) - av_freep(&s->planar_samples[ch]); + for (ch = 0; ch < s->channels; ch++) + av_freep(&s->planar_samples[ch]); av_freep(&s->planar_samples); av_freep(&s->bap_buffer); av_freep(&s->bap1_buffer); diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c index 356bb677c2..06d4df8f56 100644 --- a/libavcodec/eac3enc.c +++ b/libavcodec/eac3enc.c @@ -193,8 +193,8 @@ void ff_eac3_output_frame_header(AC3EncodeContext *s) /* frame header */ if (s->num_blocks == 6) { - put_bits(&s->pb, 1, !s->use_frame_exp_strategy);/* exponent strategy syntax */ - put_bits(&s->pb, 1, 0); /* aht enabled = no */ + put_bits(&s->pb, 1, !s->use_frame_exp_strategy); /* exponent strategy syntax */ + put_bits(&s->pb, 1, 0); /* aht enabled = no */ } put_bits(&s->pb, 2, 0); /* snr offset strategy = 1 */ put_bits(&s->pb, 1, 0); /* transient pre-noise processing enabled = no */ @@ -232,12 +232,12 @@ void ff_eac3_output_frame_header(AC3EncodeContext *s) if (s->num_blocks != 6) { put_bits(&s->pb, 1, 0); } else { - for (ch = 1; ch <= s->fbw_channels; ch++) { - if (s->use_frame_exp_strategy) - put_bits(&s->pb, 5, s->frame_exp_strategy[ch]); - else - put_bits(&s->pb, 5, 0); - } + for (ch = 1; ch <= s->fbw_channels; ch++) { + if (s->use_frame_exp_strategy) + put_bits(&s->pb, 5, s->frame_exp_strategy[ch]); + else + put_bits(&s->pb, 5, 0); + } } /* snr offsets */ put_bits(&s->pb, 6, s->coarse_snr_offset); From patchwork Thu Apr 1 15:53:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 26691 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id D354944B30B for ; Thu, 1 Apr 2021 18:54:23 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B77EF68A880; Thu, 1 Apr 2021 18:54:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-oln040092072058.outbound.protection.outlook.com [40.92.72.58]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 90E8B68A831 for ; Thu, 1 Apr 2021 18:54:17 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OFyMmUHPsa7w5HOuk31VHzK0JctFOWlr7HJql7TsppN8JDxm3v8tzrW9WZg0h1ctNG8Tu3rWSJoCSooXV24fOIN/FPKK71N24CMsnaP7pdyPvE4WyYgRcL//5lqKgkVIZmmiSvGs5W/qkd3mHTLYCHixqOVWT8uGVdggTz3tM5mIkwe23VaZ8OHs6NNF0YIhmqJpszuyNOmPL3DEHVnMPnJg5Ys/mE+KxrqBOEv++eIVMtatWsdv+58NLVKxwdLOVxmFvb2Hn2nsPjTpZrNw5rIPg9eu9+lAL+LHGO5G5qZqY1Yv85oBHLxZtyfZFGIn0FT8E9TJqr4nHyB+DBZoHA== 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-SenderADCheck; bh=iY9ghLhW+0+8upCgJNJzxiM+UIACxJQ55Wh6BpG3V2o=; b=jzLs+kjJyn+dKYDxDDJollvRDndYnyur2iBuWbQvZmWaNaCCNOOLL+BjqIaKqjPEYKWtIHCvagx25OlJmH3mCUkFzZ5VjoDJWxiSY6hr54yVQUOfiW5bP3jemquVgWpPNAfJsVs+eHOJ5Gk0lCC/WoNTOW4Bd7E0fn6593tA+8UvsCOnbPv3PxvJRTyNeOVxP/O4xVBqq6Zk5sZ2VplDC/i29yajDfVrgBCnuVPGTAg7Me31mF7dZW6TnBY9cXTdPxpIYd9OJGEgFeTlcAcChhYF6q2Xb6AQNShOWzm50cwjbGigu0vFgnLOzwiDPYEZOZMO9e9trCKqN4pfwvlC+Q== 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=iY9ghLhW+0+8upCgJNJzxiM+UIACxJQ55Wh6BpG3V2o=; b=g2ut13aCcoF0JPvjmjUYV/AhFCBmoNrc1FtzkiAVcKvgTIedLD7A1ULZakvZs1pZ3FJtaAQdMQhabf98L/o9IlEKQX8xv+cRCMn06rjupQkfPk6aeCq/djTEmR4VA7RvRfT1ytljyi3iyHqPeCSD2IhDuw4yP12C8P2BmuGk5lXFl7+7vSuex3k1Ta8j6bNAT8WiUdAad2bpMXs8G0fD+UVhWZGcE3Ro3QqPpdA8anijwqDX6Q0fyU2Ed2SJjM9qDYUvzIu3vXWBEBy+zMONcnBxWww4A7AJjOYTR3yhx6/NnYBJ4uH8tIOwinLlJZR3ZnD1LwFLP2EXhMLS34Rvwg== Received: from VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e09::4a) by VE1EUR03HT188.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e09::145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.29; Thu, 1 Apr 2021 15:54:16 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e09::42) by VE1EUR03FT043.mail.protection.outlook.com (2a01:111:e400:7e09::378) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3977.25 via Frontend Transport; Thu, 1 Apr 2021 15:54:16 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:056FF198DC83F91DDE8AD6ADE055EA6A0E413E122FC168B9E9A255573D85910F; UpperCasedChecksum:9BD4FFABAAF68766F7438584875557090D2EAE1383606195E4E3CA65658645E2; SizeAsReceived:7581; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::8128:5de5:4e94:9a21%3]) with mapi id 15.20.3999.028; Thu, 1 Apr 2021 15:54:16 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 1 Apr 2021 17:53:56 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [NYEnPjwY5f2a9vlX5pOJUzppPp73dn91] X-ClientProxiedBy: AM0PR10CA0094.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::47) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210401155356.2035788-2-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.137.96) by AM0PR10CA0094.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3999.27 via Frontend Transport; Thu, 1 Apr 2021 15:54:14 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 383002f4-7260-4ec3-da75-08d8f526675c X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiRmQk3JzeNKq1p0dsiv88hWBpMURZ34JcEva0iN7553qC20rXpgyJ23KYDJP4eACeHNFDUP9THgdAB2Gw4OrgJnIv2sJJxqIvm/dZsypz4ud5eYGaRtJ0FbUFGgQsqcGX+eLKICiCbC8xkYo97Ii+Y+9yzGQVmeEqbn0VdUNjWG/AlWMfaJS2ShyX4wErxC6nJ8ywsvgrSm8shQIS7WTk2yr8lJMXsF0/21aN5VjfQ16gPshp0gSC0IQugz9tvTwb2zTDF//56mW4f9wlJ9ajCow91boQ/NXUjZGXa6JxMDEaqCs7xsYYMGSTwvT6u6ipKkQ+uMkQYR3aLbqT308OY/zWIhmpwhKxxztoYiqp0hE23sBjrs833JF+tIF+MHyQbkdkh4jljsllE/tjjPlPeAWA7ncjoMaS9KTZUNTvCNDz9aQvNZ2jpV80GOzvvuTANetg+YrQXCwLV1NEa6cfDQ96s2L/vXyGQuYMOr537WAWyQMj0JtkuF9FW8ygX/Gpbazti+tsRaewNNpdnEL6ryWODfpRePwu1rqZ3MuleYv4xhtyqixgnLkAiyI04o7DKp3b+iisXOqBffWZGwyX6xwPbJEiBdIfPiaHLaCD/geecOHbKWzeBb5rB4xcC+/qfQBGuXpy36N3H0vvOK7dbUY1V5DdyUyJliIYa66C+Vqt7Sh2vjkIknqgp8x7kTBhFBUnuZqNE2jEwBvLX2qUovvrlCziUUoGDqbyZL9VfHtajr/exJwnuP919FQHWl10o= X-MS-TrafficTypeDiagnostic: VE1EUR03HT188: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 59pd4PBEo/dqlRc6FPfuSCLS70OnrMxXW4trDxEAhDJl7E/UxUR+DrFiRdjq5mlcRMBTst0Gph6yyVk7cSTjPvlc8gtLoX8PUvyku8x4Tf6DdfuRDrwejrBwhqdE3AQJvfi2sCPlsYNid/qGF0sOcolHAGoasnCbQ0YQLhtDjs8jRurSDEemqHxpP91tWPA7yLGnfVbKu7ncyDEZU4UUAhNvrixrIYGIxWGap0LHYrZ0gTlIOyhZiy3UyW4x/V+S3cH7cWQTLmhRbMZVwLhvu9YnhPGqD7S15OYPn9B47PrXgUhBn+OdirxmrrxohTqtq1X7BIZ97loMNFwMssDV+Z1poJAE5Uwj75dT+0GqGVjAnZiNJeqGdpwgMYvA8tIdJmyA8Z9cIMOPVYCJ3CrTtA== X-MS-Exchange-AntiSpam-MessageData: Evrhv2V7Pn16xijkoFuENbl09rfkUr7FgVYJob78z4KnJm2P0LEitSdh7u5XsYbejYLImx1Yeb6AiTA9tkWdmOXgFhzw7xFvMuDmHlkwciIsPl9Us+/NjM+NDeQeukPSD8IbC2Qm2EAQjXcPBWwM9g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 383002f4-7260-4ec3-da75-08d8f526675c X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2021 15:54:16.6635 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR03HT188 Subject: [FFmpeg-devel] [PATCH 4/4] avcodec/ac3enc: Simplify AC-3 bit counting X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" When encoding E-AC-3, whether coupling is on or not determines whether an additional frame based coupling exponent strategy element frmcplexpstr (of size five bits) is present in the bitstream. So just add five to the number of bits when counting them instead of adding 5*s->cpl_on (the latter field is currently only 0 or 1, so it doesn't make a difference). Furthermore, move some parts of the bit allocation that doesn't change per-frame to count_frame_bits_fixed() (which is only run once during init). Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index e27858e1b0..8d9de8e108 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -784,6 +784,10 @@ static void count_frame_bits_fixed(AC3EncodeContext *s) if (s->eac3) frame_bits++; + /* coupling strategy exists: cplstre */ + if (!s->eac3) + frame_bits++; + if (!s->eac3) { /* exponent strategy */ frame_bits += 2 * s->fbw_channels; @@ -796,9 +800,8 @@ static void count_frame_bits_fixed(AC3EncodeContext *s) frame_bits += 2 + 2 + 2 + 2 + 3; } - /* converter snr offset */ - if (s->eac3) - frame_bits++; + /* snroffste for AC-3, convsnroffste for E-AC-3 */ + frame_bits++; if (!s->eac3) { /* delta bit allocation */ @@ -904,7 +907,7 @@ static void count_frame_bits(AC3EncodeContext *s) /* coupling exponent strategy */ if (s->cpl_on) { if (s->use_frame_exp_strategy) { - frame_bits += 5 * s->cpl_on; + frame_bits += 5; } else { for (blk = 0; blk < s->num_blocks; blk++) frame_bits += 2 * s->blocks[blk].cpl_in_use; @@ -926,8 +929,6 @@ static void count_frame_bits(AC3EncodeContext *s) AC3Block *block = &s->blocks[blk]; /* coupling strategy */ - if (!s->eac3) - frame_bits++; if (block->new_cpl_strategy) { if (!s->eac3) frame_bits++; @@ -983,7 +984,6 @@ static void count_frame_bits(AC3EncodeContext *s) /* snr offsets and fast gain codes */ if (!s->eac3) { - frame_bits++; if (block->new_snr_offsets) frame_bits += 6 + (s->channels + block->cpl_in_use) * (4 + 3); }