From patchwork Thu Apr 29 23:56:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27492 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a11:4023:0:0:0:0 with SMTP id ky35csp2014479pxb; Thu, 29 Apr 2021 16:58:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwX5aNduNGmW28Ssoj2qa1dUD427j3RmEUgh/iHUkXkjoPOQAEyMu6eANqOno8nUp87hRCK X-Received: by 2002:a17:906:2557:: with SMTP id j23mr1084688ejb.153.1619740683342; Thu, 29 Apr 2021 16:58:03 -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 ca23si67075edb.279.2021.04.29.16.58.03; Thu, 29 Apr 2021 16:58:03 -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=gnL4mszB; 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 5C76F689E05; Fri, 30 Apr 2021 02:57:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR06-AM7-obe.outbound.protection.outlook.com (mail-am7eur06olkn2071.outbound.protection.outlook.com [40.92.16.71]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 27CCE689829 for ; Fri, 30 Apr 2021 02:57:57 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OQIUv8kvHHzQJV+O9kZVBl6IU8UA2iQGzumb34GuJj3hOirEDqpSSUJXciwA1gYSjKOHgzakMb1IKPupAlSrJPssccX6Gx6fBnOd5omEX3iOqUxCBV7n0mdMKw2SOpADh8wmRxlYw7T/r+aVMRlbE6nfpR8AUL0oiebwwI+5cTlPl3D3yfqhraTJrMqjrzJAfg2UEp5KL0spCun55c5tpqSliGRsi3M3DHWZB05ZPhPEknW/6FO5KFBPHw9HeGxwHXCY5JGfloB7k9Zl9YTl3SsFD4jTBdsrg56ux8REhVE+d3G1jp4FPJvkoKUhAAZRsFqZV+O9sosOEVMOD7xRvg== 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=aTT/kwdkByFCua9fB9KNCrNwSlcOk9TJjA2KQRC5Fg8=; b=mUTdxacK2bK4QwUFyjXM99BqxKaRp0PmiYQotku6E2QquYN0nf9d4o0x1NFTFjX6dQaEhStOSF5IE56bS1VdwGbkoAlLDDlK1kJo6XCwjFmJJbKqu2GsTNMihMDgAjf2OYmfAT1xdFEg3VPqoyaNfhayRQu3ezF4NlDy3GknK7G/Kwrb/beS3pW9yqU2CxLau78agjhl+qKTgnjzkQdxCWBVZJFnrksVHhIRUBZ2+0LQRYQbPwKFQwBzl2i3jbPeNQ18gLz/K5WM0xajLrrHAuY84TKy9Q5gDAeJL/+qbSqriGRnOcAnoPst9lEGJpVpisTKolsE3SfrR/yOER2ZoA== 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=aTT/kwdkByFCua9fB9KNCrNwSlcOk9TJjA2KQRC5Fg8=; b=gnL4mszBxw1wMoQrl5CeRpmjyIv9OnlXkas/z4RtxbFqwea+eC/73GUl8AcENLH4naj8aR2ZqJOi9+YXcWn3Xj1JeB3Lnhkc7UG6YonILCWeUvN7WBKtSMe5o+68cgxkmrTWm7PZ2y0MmCTIM0DIYlv2rPXJby6RcoaljZMuuzGdynS9SWu9O4oQj1lrXOLFGPKfVL755dKAOBYLs1/9/pFvWvl9VjLMTznPIQ3pIOQeoQDzVITT/U+cDqtPjswp298cfwcUhtMwHRnEOylgzovWMUy/7HccYehAqt+ecXhaeoiYAYw9BHN9tiHT7NMC2NuLwtOl1fsQwHq6o2TO6w== Received: from AM7EUR06FT005.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::4e) by AM7EUR06HT017.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::313) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.27; Thu, 29 Apr 2021 23:57:56 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc36::4c) by AM7EUR06FT005.mail.protection.outlook.com (2a01:111:e400:fc36::397) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.27 via Frontend Transport; Thu, 29 Apr 2021 23:57:56 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:F2BE068E72734DEF3D4B96239EC7975C09E7DD35E2BC3FEB5E942DE84CB64A8A; UpperCasedChecksum:3AB622BADBD6FF629FF1D5B37B98E44933DCDC1894CF4BE49098669A78D468FC; SizeAsReceived:7587; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::45bb:c44f:2b75:23b7%5]) with mapi id 15.20.4065.027; Thu, 29 Apr 2021 23:57:56 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 30 Apr 2021 01:56:36 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [7LxpZFu+AspRMHf2C37fi/9FGXe0N38G] X-ClientProxiedBy: ZR0P278CA0088.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::21) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210429235717.2067041-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.193.248.86) by ZR0P278CA0088.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.27 via Frontend Transport; Thu, 29 Apr 2021 23:57:56 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: ed48d979-d02f-4ab1-dcef-08d90b6a9c4a X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU6XUx7q8EQ5McclV510mdNxjNwsFtrBKtdAI++ovOETmt3AgrlkwDOiNLQKkoEVZJuJTBy+vCBvT1VfQAAWe/gKHx5+cfHJZSvIfagr+gSaHxZJxizaE6yo62QQJQS2HN5w3LYNlvWekve4fsEc003oHzJE6j5mkqnNsDg7UwzYLZe8tA7PjMXNuhEtuWB+GH/+//aBg5QEnftV64bgEED1dN14ZJUyiUZkMbo6Dz5uvkMchbEtiPna1hKRM2JaPwcLmUobLk5V5bM0NsAIuw1DmtnFFMKQTkRPJ+aOQvVngrTGUPPnhffpFOraBNd7pSoL7y/bz2YL9Sv7lr36sV742YOP3rNgbOgpSVglJamMGR3PIDBTx4s5CHWCvGDRwOwPTG8Rtr6v7EPXFElX/47F1mYxe2KBFdI3Lzu4It+TC7ah2SAB+HLYTAFlhCfOf6ioc9gTEge/hrp2YIQ0FMIOeqv+MuDLEsTFTJmNCJvZktcS3R6zKO1t4i2uGHORdSSSx+Vu5jBTvAMBrXQHg7gxon9c+w7ErAP8q5iWEqCsfVOrXPCDgDzyuIZGiFL9FHzkhk8jaJI5NMvvdmtuqkRXyOe02XHg7W2+6lZO4W4Y4+t9m0vFnwQaqNun6UETQANKv1c2yoPXC9kRQ//6R7YrlrbqMIpLaNihuDdAu1F6PrqFdnd8Gf07s2R/FyvMKmlzejdwMHDDKve6VHy7vS6IoeRYsEYpVM= X-MS-TrafficTypeDiagnostic: AM7EUR06HT017: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: bOmWZE9EKGs+RmX9Ax3oUWlssdAYMrGE2n7Ap4DzPX9rfTOwUKeqgCbf091aF5xNM+LcTNltLWHInY0gAoKCMwbIbbwkfAav7H2dEjdhwkQNfYZ/FhnJs3k0McRWkRKF2TuQq/HgLeOc5V5v09y3xVhwNiSsbrSJzjn7Fa4l74Nj/MkUSkO/sgvDkoZtMoH/+vBAE/eetDO3MXRrNb05n0QP5OPrt+ce/S5wHNGHx5fDNsgTrZi5Zx+FPgVKtSXaX9veiATzoRbojiQinJeCKE3QRpl8U7vTdcNHUo0F3V/UV47o0jgCrDUaaD1p9rj+AYeSY/rho/nccwRp1RFTaJFsAA8qm/RqguDWrf5GkIj5S0AwBHpiTOmVw+YVf3s9+QFEMyt8Q7+o/wwLhubXMA== X-MS-Exchange-AntiSpam-MessageData: 8w+I+YcjhIKrh5euTHmCOTf3IxsvKMdGsSBRBPi1JJuEZ9ltLsw1Vz/MbBV2vNSfl4shNLlD8VtwAMG9MNi2Jf9BSpCGI5YGxzTx987j6k1j/0ebUVyTN17vE7Oa2Q4so9y3LOuRr5E+JgYEFmt7dA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ed48d979-d02f-4ab1-dcef-08d90b6a9c4a X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2021 23:57:56.8065 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM7EUR06FT005.eop-eur06.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: AM7EUR06HT017 Subject: [FFmpeg-devel] [PATCH 05/46] avcodec/[e]ac3enc: Allow user-supplied buffers 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: EBNbOlSe8uu6 The size of the output buffer is always known in advance and the code has no alignment requirement (it uses mostly the PutBits API), so allowing user-supplied buffers is trivial. Signed-off-by: Andreas Rheinhardt --- libavcodec/ac3enc.c | 3 ++- libavcodec/ac3enc_fixed.c | 1 + libavcodec/ac3enc_float.c | 1 + libavcodec/eac3enc.c | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c index 8d9de8e108..0036f7d8bc 100644 --- a/libavcodec/ac3enc.c +++ b/libavcodec/ac3enc.c @@ -38,6 +38,7 @@ #include "libavutil/opt.h" #include "libavutil/thread.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "me_cmp.h" #include "put_bits.h" @@ -1760,7 +1761,7 @@ int ff_ac3_encode_frame_common_end(AVCodecContext *avctx, AVPacket *avpkt, ac3_quantize_mantissas(s); - ret = ff_alloc_packet2(avctx, avpkt, s->frame_size, s->frame_size); + ret = ff_get_encode_buffer(avctx, avpkt, s->frame_size, 0); if (ret < 0) return ret; ac3_output_frame(s, avpkt->data); diff --git a/libavcodec/ac3enc_fixed.c b/libavcodec/ac3enc_fixed.c index fe8607988b..58decc594e 100644 --- a/libavcodec/ac3enc_fixed.c +++ b/libavcodec/ac3enc_fixed.c @@ -132,6 +132,7 @@ const AVCodec ff_ac3_fixed_encoder = { .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_AC3, + .capabilities = AV_CODEC_CAP_DR1, .priv_data_size = sizeof(AC3EncodeContext), .init = ac3_fixed_encode_init, .encode2 = ff_ac3_fixed_encode_frame, diff --git a/libavcodec/ac3enc_float.c b/libavcodec/ac3enc_float.c index e5c2cbd42c..f9759bd2cf 100644 --- a/libavcodec/ac3enc_float.c +++ b/libavcodec/ac3enc_float.c @@ -136,6 +136,7 @@ const AVCodec ff_ac3_encoder = { .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52A (AC-3)"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_AC3, + .capabilities = AV_CODEC_CAP_DR1, .priv_data_size = sizeof(AC3EncodeContext), .init = ff_ac3_float_encode_init, .encode2 = ff_ac3_float_encode_frame, diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c index 38ca31a219..96ef00ea4f 100644 --- a/libavcodec/eac3enc.c +++ b/libavcodec/eac3enc.c @@ -253,6 +253,7 @@ const AVCodec ff_eac3_encoder = { .long_name = NULL_IF_CONFIG_SMALL("ATSC A/52 E-AC-3"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_EAC3, + .capabilities = AV_CODEC_CAP_DR1, .priv_data_size = sizeof(AC3EncodeContext), .init = ff_ac3_float_encode_init, .encode2 = ff_ac3_float_encode_frame,