From patchwork Fri May 21 09:17:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27856 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp339804iof; Fri, 21 May 2021 02:18:24 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyYn3h+GCMMCRBZ0aSO9rMkuG9sHTgWTxqhIS79NqVbDdlhAhg1PtqGIY4X5WEjoZhtlXzH X-Received: by 2002:a17:906:7c9:: with SMTP id m9mr9184378ejc.98.1621588704197; Fri, 21 May 2021 02:18:24 -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 p23si5692898edw.234.2021.05.21.02.18.23; Fri, 21 May 2021 02:18:24 -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=Gz9Ye6xB; 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 D362F688156; Fri, 21 May 2021 12:18:10 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-oln040092066061.outbound.protection.outlook.com [40.92.66.61]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 97B3A689907 for ; Fri, 21 May 2021 12:18:04 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QEIw5dbXWLqcBHRdSOZjn5UBmLx2w/ylZt9PYJX96Sx1tH0WpEGdGMT763ZFg/71NkBgton65J070BpakoRNUCaKPdwwDLcF/711h7/IRmzXoqDl2Zp8p8AhH1Ig3Azgpa1RKt6Rw+dgtukcr61fFEliOfQWwVfaqtckWMKJ3yve5aOjPc3tDW+qutbqZfzxbOBTVbstH9BivXBraYzJkOATBCg1qM/P/4TfeyokY/T+jXFiw9FNIAffhm8w4VhWuQZUScbUruf/QPYQ5F/RQ15RYQ2SP5cAzz+IfKyayZrt9I+4l0qtfN0lnQtnPQqjUmNdNwglYrc65lJirDyhZw== 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=RQZsFq23zpKojQJJ+vZ1PTalNMwjvYw3IZv9b/E6PfU=; b=immYs/RKPw1a5MRmZCFVaK/YqNGUjZ7J3RKpfzqw9lO61pep8yVtmABMH2++2dDX+X8m3TH/4OyiPC/0TRDjGS33OPqKOUnf7fAbNT2Iqln9KgA2hevXGzOhjb/+ZN9yvfrtPP/m+zAJImSkhqb2ltzWNE6em1IODH9zfdcg3N9/6fcPgGVcoqrUzA1CsgDzDYVtuM34g3LmfhWn5j7wJrMxRJtt4Oc4zr5TCy/tMbEndCkIAlEXkgxI7HSbjGTllV+Ww4yFuPbrL7mjRJ8/cQfu2/dyktnpeWj2kGJFv8XNqNI+yJiP/hcgko5t4RLy3fmWXpCykE4vtY/+7WXYFg== 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=RQZsFq23zpKojQJJ+vZ1PTalNMwjvYw3IZv9b/E6PfU=; b=Gz9Ye6xBg1yfV3EK1TRPlovE5i0Mdq3ZgDmjNr1ZQ8HOjjnzKkrSEz6vx8mrYFOQ4+lEip4+78uJO4rkwim+xebfHuCq9dzB7QKJGN5TjEWTz9RIcMT/LBQ3+IpExJ4Xtc4J9mHjRa9PHM1Oslql8FD7Y+otg3FH70gMf97mNnnLYSmRN2InFdwSFrkuctVW0cnSZzKwm1ozd1njeQ3YhTEny1ndrDTOq+//YLSfdbK719QPI3gYdOM0oVxPXUlOHDzD+1FXdUSEKK/mi+Y0+P7tGtqgCjBdbQRgaUeWFMnoeB655Z09Bl31aYkzYFLml03mb9b9Hspw8AvtjeAL0Q== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::53) by VE1EUR01HT017.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::292) 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:03 +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:03 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:48224115608A45B370C5F46A33CD3F4975D76CC17E86EC1DC616E173BCAD87B2; UpperCasedChecksum:68383BDC18DD60C791B4676A9B05BA2E6FF4578F99C61E1CFCBEF72321559A9B; SizeAsReceived:7610; 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:03 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:07 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [VRIW3JVyFcf0nm0+ImGW8JNj4hK7GFuT] 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-3-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:02 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 7e5c1fcb-99cf-479f-e815-08d91c3955ea X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfauhVzhm2vTQJkvw2B8vu12jP71AGeBnOzfy2s7Ft4gzvHwa9xzNDPS17fvTspLhybt2Nb696ZN7YcUD8xcQH34QKZEJLTddWeRCRuLmkv38lEyeoAHJvs0hVonhxH7NsDuFBA2DjBOGDDSDm+b/9WG0jr8VAyRDcr1xbmf2ZbKlpgNdf0Krr3vhYWxbH3XgMVOkONPcfXWsOGg37HIVTHv9zXi/cRfbhtLRfF1LLIpBiyC4hVrCOdPJNQw0/dyo7VC2LMH5tQaMWerSe9Pg/oHpzvh1TclSAfAAMCCI11LoHWnMdhP12A7vpS27CYSErfATaY40JMlhrk2/cP1IZyTQUJRTTRd2h7cPYRpap5WY3dgN4mRVfWp7CZUqh4Z0NACl/C+FhPOgBjmy3/PXnMnuwUpSJiiNy8CdODD90qB31GWxzADcyw8iyq/rXGVpUf7fidyAUO9c2Ry4GWUGPm1PB2VwYtHt0p9DErvqtiSk0POOVutqrX/RZt34Ej6DtkXSqraJUMiImWHzbluBvMyZRsJops9NZVqO1oV0Gbmw3KsDtoc2iHDmRbJjl/zpte6byDfmu63oZ0keQVPlB3Dl5AdyjaIoavE43UykZPyZPEKoL68Q7TUxYyoPoWYkMyjB6mJWqkLst/aqEYxTzHHJ6Sob7RSEE0xYuxdjMoPzf5lzAqyW0dSn88i6V9uFD43yZeGjzJ8TuU= X-MS-TrafficTypeDiagnostic: VE1EUR01HT017: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BjDW3hS/dpI9Nr6smnQRvTPX2fMmw5GuhFpHvlNzXJV/AQSVW6AtnbpwgkZM3PUfY587fBE6MxeZFCjRVDXM48vN8FUCZ1kkLGSISheAQ8LgvyZoIj8GrlUpAoKPMUktXw+7JLibwqDyR8/tASOjljNtf7ke2H3UmGwkFqw1TEsAVvyseNXmrQhs5337yUBQMgrvhu6YmDibzqbx1cNlTkWFRiv27DaCVqw9FWSLB+FhgwVii870067/czd6F1gkeCRzGP1VGx47v36xlhsenC1K3gWZlFPrXEt58XaHwLA82+6036hNhXsbB8/HlI40e908g0VAV596tn9Kgrh9bpEoyF0W0Ka3ooiSqkXfG6iz+irpN9YBgMYxZI8iDoVoQciYwyhssSN7SLddM20+gQ== X-MS-Exchange-AntiSpam-MessageData: ytW+vOyipnPNv51trjIKc9Qm1GM54QfkNTNC3qIrhbPL3TcG0kLQO6wMDYCybzA1akN1oseoq0P6SWWxw34d7Lqf9/zcNfLC8ZOurL/ZcDDS/3kjEx0FQExs7u52blonWT42ix6im8vvPBcKCayYPg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e5c1fcb-99cf-479f-e815-08d91c3955ea X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:03.2206 (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: VE1EUR01HT017 Subject: [FFmpeg-devel] [PATCH 04/39] avcodec/libgsmenc: Avoid copying packet 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: V/GT1tmGqWNq 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/libgsmenc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libavcodec/libgsmenc.c b/libavcodec/libgsmenc.c index 850963e8f6..97ba789046 100644 --- a/libavcodec/libgsmenc.c +++ b/libavcodec/libgsmenc.c @@ -37,6 +37,7 @@ #include "libavutil/common.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "gsm.h" @@ -98,7 +99,7 @@ static int libgsm_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, gsm_signal *samples = (gsm_signal *)frame->data[0]; struct gsm_state *state = avctx->priv_data; - if ((ret = ff_alloc_packet2(avctx, avpkt, avctx->block_align, 0)) < 0) + if ((ret = ff_get_encode_buffer(avctx, avpkt, avctx->block_align, 0)) < 0) return ret; switch(avctx->codec_id) { @@ -125,6 +126,7 @@ const AVCodec ff_libgsm_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libgsm GSM"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_GSM, + .capabilities = AV_CODEC_CAP_DR1, .init = libgsm_encode_init, .encode2 = libgsm_encode_frame, .close = libgsm_encode_close, @@ -141,6 +143,7 @@ const AVCodec ff_libgsm_ms_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libgsm GSM Microsoft variant"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_GSM_MS, + .capabilities = AV_CODEC_CAP_DR1, .init = libgsm_encode_init, .encode2 = libgsm_encode_frame, .close = libgsm_encode_close,