From patchwork Fri May 21 09:17:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27854 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp340173iof; Fri, 21 May 2021 02:18:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxKqD/3UcuLwqQTiE+g1tPfAGD7NygfBznM+bq31Ak9a7btXwD8jngZFIRNDWAL71PBZKT+ X-Received: by 2002:aa7:d491:: with SMTP id b17mr10395806edr.376.1621588739276; Fri, 21 May 2021 02:18:59 -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 v4si4673082edc.556.2021.05.21.02.18.58; Fri, 21 May 2021 02:18:59 -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=KoT++qVm; 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 BC607689B2D; Fri, 21 May 2021 12:18:14 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-oln040092065081.outbound.protection.outlook.com [40.92.65.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5CD5968995F for ; Fri, 21 May 2021 12:18:10 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fUNt2dlT0MvLuYoUS6fYNChC9uqxiXua7idR6mgc6P58pZWEvtt7YzprZ4dLYK0my7N70o46bVvQ3+DS3FCsakyD4p/1e/2PyUzx1UQPzkeCFrt4EhCruItJvuoLywtLpxZkRc3SDjFa/s7PUpZJk0y+46Svjv1dY+sQW/yXJLO7bI59a754sjQ9+dqg6znuxdJjMlB40ov1Ly4IyStkdVpPllJguCK2x3mcwQGqta67lb94yGjMvd7QpGzAq4zJ6e23u7TOJRsPHxuLKzQrHdDY4NYYIqChGVBx5nQ17Ghhue1yg7UcSFYnBccvZdVNc6/Y94ikInoEBionS270Qw== 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=ZtMmKn3F9GW7vE0I9gEyn93zZ22Tpm8AJIu5FGh5Rdg=; b=L6xGXLanSximusJM3xNrKOm1hlqSn5UqdYJ8uZatrXdpe/+GtRKcq2rBN9U8hQwlhZsUdcgAhIvQOYcz6cZZdUQKfVJwDMC6/SAdmSxq8KIAhj6q4gZYQ1zNAnkfdzgcMIkXBOzgmiGDGdEdKogz0J+xKpJv8SxLecqQG62mzELs8w2DQpLi842UIIbhu6MUZj+1j91cppXpo58viD6jTYOgAv/nMnOCtCCvzXXwnb9coGQeXCyiOjlJYZ0GKnPV+aJkPmkLcGEY0YsYXeGg8XpYHcXdFu6SN6txM6rAfJC8eOjqEJO2p9byfKS/JO04sJTcuBfnGkRYogyF8tD4lw== 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=ZtMmKn3F9GW7vE0I9gEyn93zZ22Tpm8AJIu5FGh5Rdg=; b=KoT++qVmbAiuSw3JaHS6Fv4y392GForkEEj4SlpykLniPnQXb+61/T72o1tRKcsPjrg818JdfySoyLXg2S9DMqQ+MHdWvSx6+LNmLuz0gTCNHKvgtwt8kx4YeZkuL8ENlcnhKGfn2TMho+c2MBSk+pBbAQ9HijBbZsrtsHcgGq8UnQfq20BwilCAfx3zHa0UAbQKIaydSiq0oNluAmjek83hiWqT827zYDlCQU+uLttc+KZXtvG6aHkCkmf6axuTQYirAPJWRidjUF+7Cmc21NTw04dAZ6k5X8Ltx66xZIkitT3omHbZ4sYtCzAZDkBxwGwPEWOZ5KTAk4lwvNwvyQ== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::43) by VE1EUR01HT168.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::432) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25; Fri, 21 May 2021 09:18:08 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e19::41) by VE1EUR01FT010.mail.protection.outlook.com (2a01:111:e400:7e19::83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25 via Frontend Transport; Fri, 21 May 2021 09:18:08 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:EB61A945CA9263CD09CEAB1E51E30FC01737666AE9876056056AEC4D21D07B91; UpperCasedChecksum:667ACBED77174FC655D33E8DDABCCF2C9E540AB0A820B9927F8601F1230091EB; SizeAsReceived:7600; Count:48 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::f4cc:63fc:9cef:37fb]) by HE1PR0301MB2154.eurprd03.prod.outlook.com ([fe80::f4cc:63fc:9cef:37fb%6]) with mapi id 15.20.4150.025; Fri, 21 May 2021 09:18:08 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:11 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [T+SwZfddv2HMHx/zfNTDTFSv1+dd587N] X-ClientProxiedBy: PR0P264CA0070.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1d::34) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210521091742.184902-7-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.95.27) by PR0P264CA0070.FRAP264.PROD.OUTLOOK.COM (2603:10a6:100:1d::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.23 via Frontend Transport; Fri, 21 May 2021 09:18:08 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: a833a5fc-c4c4-4016-c835-08d91c39594a X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSiYaxVAPXjtBLAGaAm06UexPrhHsJhnXKMMcxJ0YJ/pl3QIuvmBLXWtNVXS2Oe5jvl+fAPk6dGby99InsjtBwV48OIzuGIZmJ8rMrdheuXj4xnASEF4xfeWnp4gCPCntrOl6Nz089dBY+n49eFtl5ZzjKaoNXFVcczE3Sld+WWTv9o8PmWjiy2DI1sSJ5LEmgZZxKdnXa46MqwVjPkNxDX7TpwM4yK0LrB5VLIIOGdC5bTIc3aAR/7zXN0VGRTf0pJ5rVT0DbVXS/j7SrgODOAhkm/hHcQ6pmy/Lb8pIvhiLGwKNFMULITBoDr0gYxz45uugsFUyR543I4qUVHMk38DAyUFbHP/DFrZ2kTbX+vmLJBqbUMSCn/bB16mh0U9/A/wYRUGwm0p8ztXoAMzD/r6mD4fZhMid2tUSg9D6MwoOqne1rYhqZfMiBjuIoSIQvgdD08q+nSf9Ws6OzPbDq6sR4dGeo3u2XR2BzNjaiUv/dpYul0H5Np/eEMoHvHEM3AHJh3UapehBvf7dz0uNSvDvPdDHfaa3QFbi/QY+1L/F9GItAxxSPRsHymez6lMHny/FuybAgb06gpbzKjnp7xD4uxlyaGhR6CAIdmdiHsK3Tu2i6I1IzGKU+dgo9mjSaOp3R1YHFdsypXcHmb045SkU9HLwIPeEK9LzNuvVrpKxeSij/NeTgsFLd0EBI1yfiLRVuk5MJd+CzZZPZtF3EFmTyThimZG/+cVdS0CSy8j4/uR7xTk/CVF7itbKML4D4= X-MS-TrafficTypeDiagnostic: VE1EUR01HT168: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fI6cp+bk6apUGFZNgE1hFz7SbBbp0mNz3UUSrRf9TWIUf4rwIsaenDFwN+sujzZyZpNzcdZEnuQSMuh/NOZHuLopjuCzIZ/l+IVc7jFDI2TDGjFm20DhA/YSsUbScTlISQ/kZMRpuAkBuroqii4ue5Q5inNWQLMg8wIoNlnYz5TvIwhwo07dhhSUwlfbDDpv1YQ9EgtFl8N52zmChFCQDiP4v4ul/7pi8CDw9RNMXgGk5gLkE+hRYfKU42foFr2BGJN0LTwDsj/D1rl2IJ1k7kgDHQNl5khP1Kt/Ep2iKdlVUk4jLiG58190UN1BbggPBCNLzlJwid+4sopsv+FB53AYsRsOT8OuXOVgYlZSHRMO508XexTwfGm1MQm079FiSzp9yQ+c3JAttsIcFEj0ow== X-MS-Exchange-AntiSpam-MessageData: YR7lCXUeVQbKCHzA0uK6qSYjbnU263KMulXdV4TC2NpsivOCq018YRFC95x0yQASi80pajhFqQshHvdo1y126kpfWBBu6I8YBARN/cc+DANsfkpoUx7n8C6VLH/ksGXL/Y+Cqr1wllhquWJYRq/pjw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a833a5fc-c4c4-4016-c835-08d91c39594a X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:08.8411 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VE1EUR01FT010.eop-EUR01.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: VE1EUR01HT168 Subject: [FFmpeg-devel] [PATCH 08/39] avcodec/libshine: Avoid copying data, allow user-supplied buffer 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: 3gAEf3wf9e/P The libshine encoder already uses an internal buffer, so that the packet size is already known before allocating the packet; therefore one can avoid another (implicit) intermediate buffer by switching to ff_get_encode_buffer(), thereby also supporting user-supplied buffers. Signed-off-by: Andreas Rheinhardt --- libavcodec/libshine.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/libshine.c b/libavcodec/libshine.c index 4a9fc617f0..04d5914701 100644 --- a/libavcodec/libshine.c +++ b/libavcodec/libshine.c @@ -24,6 +24,7 @@ #include "libavutil/intreadwrite.h" #include "audio_frame_queue.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "mpegaudio.h" #include "mpegaudiodecheader.h" @@ -102,7 +103,7 @@ static int libshine_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, len = hdr.frame_size; if (len <= s->buffer_index) { - if ((ret = ff_alloc_packet2(avctx, avpkt, len, 0))) + if ((ret = ff_get_encode_buffer(avctx, avpkt, len, 0))) return ret; memcpy(avpkt->data, s->buffer, len); s->buffer_index -= len; @@ -111,7 +112,6 @@ static int libshine_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, ff_af_queue_remove(&s->afq, avctx->frame_size, &avpkt->pts, &avpkt->duration); - avpkt->size = len; *got_packet_ptr = 1; } return 0; @@ -135,11 +135,11 @@ const AVCodec ff_libshine_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libshine MP3 (MPEG audio layer 3)"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_MP3, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, .priv_data_size = sizeof(SHINEContext), .init = libshine_encode_init, .encode2 = libshine_encode_frame, .close = libshine_encode_close, - .capabilities = AV_CODEC_CAP_DELAY, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16P, AV_SAMPLE_FMT_NONE }, .supported_samplerates = libshine_sample_rates,