From patchwork Thu Apr 29 23:57:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27504 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a11:4023:0:0:0:0 with SMTP id ky35csp2018465pxb; Thu, 29 Apr 2021 17:03:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzOs//SeB5lv4kWTDFfSagVDDl70P9GiDrb7EpyhMhFre/G2SUg5hvG+m4BVqcJMNfsgDR8 X-Received: by 2002:a05:6402:1c0b:: with SMTP id ck11mr2566865edb.264.1619740986070; Thu, 29 Apr 2021 17:03:06 -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 d2si1426803ejm.291.2021.04.29.17.02.59; Thu, 29 Apr 2021 17:03:06 -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=cpOxdFb8; 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 D15A468A46B; Fri, 30 Apr 2021 02:59:57 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR06-DB8-obe.outbound.protection.outlook.com (mail-db8eur06olkn2030.outbound.protection.outlook.com [40.92.51.30]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B2F4968A451 for ; Fri, 30 Apr 2021 02:59:56 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JOqdzRShv9Tqut8/BDGoEezjJzn8ipTmokWkL/j9lg0ihSyL00wun7hf4eJUdORCw63AzPzVmPVynloJ/FfKCvA3eLl/iGX5SgvWncrOEsFZeGqpPRJCx202vou5UzDqGGH/Voqek1L+esF1JhKlJjCzdKTldhzQS7Vo2iVQvLppXxlPHfpfEvKPSl7jfKdy7gi7G0V0KAgQ9NcjlBUw7JBnLXPHE+O6BOcqrJrbawdHYTDhvF9X0946CtfKgnYFQRYMkwkCXqWI+RbssZc7Urk68GOw0nACayv7jWWdVOz3aWhJPiaOb3is3Gjq/3amwS/MVd8gDSbOSf43Cqu4Lg== 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=x0movYRk2MzCvLrbSEh6WeA1KeR+19PYKe7JyweytjQ=; b=JvRjZuQS5Z03IMmItdHoUhOCcC6zmatKdsiKW+mugRXNwkYGGQ5HIOf9gFjR8/Y4+e1ZmoHZI9JYr+1LTl7DaqvSjylaihvtOMDB6hRI4xprkLBlu+kCTrSWXJwQO618FA1WmbZHS6cXsq5rrpk13dq5TV1Iryr41TinhI61+ugRf0Yj/3V6hDqCr3SCnOfBjNjET1GSxObQkQJTtoIP8rfq5/rF55FBXw1yCk7lleu79xLFzyuNI+eBGAdsJ0pmzL6/mSULuniK/sLshukFsI0MZIaeIhKx4/D5YikMtFzGYBQHpeN17ZCnZn3N+srm7ByV4ATjmEKQtDYC7meZnA== 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=x0movYRk2MzCvLrbSEh6WeA1KeR+19PYKe7JyweytjQ=; b=cpOxdFb8gw/RtK+tWjP9Vo9RLmL99OA7MgsRhMhy2BOWAyQShpbbPwxA6EGnyoKI419IgC9NO7VA/aG3iOnIRjikAihR7W/v0JgUmKRjJbuVM+7BQTwPJBMrIZxtFw19yT9NChvJAug682qzMCYnCNiKhS9TXz/84qCVvmuGuunM0sv6bEOE1Myfx9I2H5cKzH3rHi+8A4iWY7MA8+ySqBpCAcD5oLK2n+mrBjZ+Y//XuDkCxBMjXD8TcYF7tnqHUr8pKcH3XJjpKBSxq/ZVxmuD1bkNJVlPvDvuQPUcV89bYXLSW1148nq8VpxdlSWRemF4cyUJGy0uPMXYoAtwTA== Received: from AM7EUR06FT055.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::42) by AM7EUR06HT121.eop-eur06.prod.protection.outlook.com (2a01:111:e400:fc36::235) 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:59:55 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc36::49) by AM7EUR06FT055.mail.protection.outlook.com (2a01:111:e400:fc36::61) 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:59:55 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:E61ABE307DD27F81B0E8BF05AFAAD936351C544DF6B0AF15174580F64BAB7096; UpperCasedChecksum:13E9154972F1D2F128E647283301C5747DF37267250106DF5016462E34947742; SizeAsReceived:7772; Count:50 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:59:55 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 30 Apr 2021 01:57:05 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [Qa3SmPp91P8PkpaMNinQpayQZjvxqHbh] 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-33-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:59:54 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 50 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 6cf6cf10-804a-4207-8121-08d90b6ae313 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU6XUx7q8EQ5McclV510mdNWlKGkLg5ADoIDNtjMvY6Lidy/Mpyv3/ndVPxS5S+tf+ET9d9oLyD7Mw+4qCOE5NdulbKz46NY1H3iYH+v8P519qbJxnOD7YOhVCEv61T1Upr1X2FR+VVF0/rpxctQibQTRlez2UWPiE5o/gvuLasSbn8MqiSiZeL/kv3DCwb0e5FehuHPNXmvZRgU2t46TiiMYyr6MLlcZ+Wgj8TCW1aWe1dF2bUDRwfarRwq1vKdotcIRuwCoBfmvPUUC3TyuxaSGl6MV8jCp5Q9ZLP/dLBwjIbU9ze0hW2MqIgxNxPGOnYnikHvmR6+2p/iuxInZB2Vk/UrSj67poLf4RRRWwvtGsjgCTJiCeNlJlQ6KT0LDcLRXhw4mVpNyFfGyQyMe/j+qcrrr7jT79pJkZnISp5FTB0Tj3SErOh/uS3ewlZKiNNcmSUnfAnmYWpHfzScFYZ1An40Wk9wh6cn3vnnNY8QJD2YSx94/DOWgRrZYUl9YtZJVzjnIApwnNiWeXW+AB8LLXW8Cl6ZTwWVidk/9FYnJzfuOwHjMKe+J2YS4/oLpnM24XXpMM7beW3MiVdhPWBRDyPcCIsCvy/aM9K9O2kZ5DJ5hxxk6dXNir0J+Jgrjmrqd27h2norHacJfshSrbTkyDCHOePUmgmAm5HMVz4PNvKeARZgxOeMWY1gbr/NavMc0JCSiJSv7puWmDB9C/6C+g/G8aEOPw= X-MS-TrafficTypeDiagnostic: AM7EUR06HT121: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: D4IgUtFU2HC4JadG800lrYovlExtbwONz/uBwew4srX+LDXUUOTGleJXWZpUmJTpKUEeINxv/WwUv+5y6qdC/NOJu2i3w8mFAS/5TQ1WyuMPSJlQbVDzUcXM1xw8z9a6H2/2veQg0fhi1tJm3QwP0Y9HRFVTSI0RkcmJ0yO8rI8lPPsvCfpdnppHFsEcnPMnH1mnBgnx6msWqnD2as2cKRTQxF8ktE60gK3old1vwzT6eI+pYpMWGUFiPqu69DrXccL18dDKdmqzzPscJYqHTV69PrvKiD+CSxA91eZQhejZ8uLwZiyfwOJ99YAlpwJm8eW5HhIn7e7NglZUKlL/Sn1gDGWyHR+EmEucmM2iiEPVQVPDRS08yjZCnk0IV4wx+LIS2Nb4sApHnd+55w3L5g== X-MS-Exchange-AntiSpam-MessageData: 8cTPZIxPRcPPDVhXkSz4fAgvJb4FOzyqP8a8ls8X3eRH0Dch9xKvKd3GGdo0cZtGrZNQUCo73zq0hKqtgB5KDdt3iTEjR9tIQzOt3+LuCK6Ji9eSSGpiFMknSmBctehzqAnTvYNYarrqiHIDDadB/w== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cf6cf10-804a-4207-8121-08d90b6ae313 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Apr 2021 23:59:55.5550 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: AM7EUR06FT055.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: AM7EUR06HT121 Subject: [FFmpeg-devel] [PATCH 34/46] avcodec/roqaudioenc: Avoid copying data, 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: Vd2Nhlcpg15m When the packet size is known in advance like here, one can avoid an intermediate buffer for the packet data by using ff_get_encode_buffer() and also set AV_CODEC_CAP_DR1 at the same time. Signed-off-by: Andreas Rheinhardt --- libavcodec/roqaudioenc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/roqaudioenc.c b/libavcodec/roqaudioenc.c index 9a636179b1..5908b71eb4 100644 --- a/libavcodec/roqaudioenc.c +++ b/libavcodec/roqaudioenc.c @@ -23,6 +23,7 @@ #include "avcodec.h" #include "bytestream.h" +#include "encode.h" #include "internal.h" #include "mathops.h" @@ -154,7 +155,8 @@ static int roq_dpcm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, else data_size = avctx->channels * avctx->frame_size; - if ((ret = ff_alloc_packet2(avctx, avpkt, ROQ_HEADER_SIZE + data_size, 0)) < 0) + ret = ff_get_encode_buffer(avctx, avpkt, ROQ_HEADER_SIZE + data_size, 0); + if (ret < 0) return ret; out = avpkt->data; @@ -188,11 +190,11 @@ const AVCodec ff_roq_dpcm_encoder = { .long_name = NULL_IF_CONFIG_SMALL("id RoQ DPCM"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_ROQ_DPCM, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, .priv_data_size = sizeof(ROQDPCMContext), .init = roq_dpcm_encode_init, .encode2 = roq_dpcm_encode_frame, .close = roq_dpcm_encode_close, - .capabilities = AV_CODEC_CAP_DELAY, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE }, };