From patchwork Fri May 21 08:39:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27852 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp333498iof; Fri, 21 May 2021 02:08:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwCM7DlKy1JEJVZJjps1EJHTxL1+q43acOn6gmTSirC6yFhiq+i71Qr+P5LwNZKAcqP9kqP X-Received: by 2002:a17:906:2dd3:: with SMTP id h19mr9196013eji.520.1621588108980; Fri, 21 May 2021 02:08:28 -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 d20si4709663edz.96.2021.05.21.02.08.28; Fri, 21 May 2021 02:08:28 -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=TAjafD3r; 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 DE57E680B74; Fri, 21 May 2021 12:08:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05olkn2071.outbound.protection.outlook.com [40.92.89.71]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 44958680B74 for ; Fri, 21 May 2021 12:08:17 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mZ7awDZmAvAkOsJd6JoTz479BXsSyZqdPTjVqy+IzsWdQSo8UB7ujWZnkjbsQrhe3mTnknFVb/wr+fUtmDBD699+p3UjLdDMyO+71dfLX7FOgCGSn6Uww0Zb5XS6hPewfEkKaSxWKPaWJwRaJCD2fJfEgQs+dDCEkSS/eMmfyAT7m0evSbe+MQ1mLlRVwwqdqn+t1MdQ0DOGEzSPd2eeLaagAajrrl4Me4eRl0soVXsDz9xPi6eK+ub1F3JO11OMHirfEZIC2ZTp2LMlp+PaLSo4zC/L7MRUJ8gRwCOGamEMU14hn1wmNBNbaPIi3OCoEmoDAmOqcmHjhOpRhGLehg== 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=FPAgPEqnA1KBYGTYOLnr4ixXfBJTbWUNiO+nYd4KfiA=; b=CDxtrC7tvg8PkxKzb1cSqAC19NZfWlplkG9b/W3PA329slFZ4qzrbhdur+2lsRx7aa8jP812w5pHI66kVlpa8IH87oOF7oXvViPesS8g/hmxNARoUWoM6vgPBImhTknTE5DLNXVFZYSwhoMSd3FA/jDPWgetLIYuh5yBWUDY8HL0AZ2YvoAIh04aZPe9bW0k5Gal2fYBWtysQEmDdCfBvaf9dm3Ee3xBXDhulAVfNq2aQaSwNIsgjZcoahCkQ60plDeemp2S5HumqotXB3plCl2C5uAhXqoi6aLt0r7SwB5Fh+x74i8CibLoXOjre0laERl1iufUopYOHlZj3oLK8w== 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=FPAgPEqnA1KBYGTYOLnr4ixXfBJTbWUNiO+nYd4KfiA=; b=TAjafD3r0aJB2yUhSRMyL5oZhKhM/lRrWu0F+BwmHy1gttD87n5Bame26Zzh16/TQcBctjsQ+zzi4wnTLnTqaNHcv1KrYd2nIAzBUZhOlWNefNHesHBNSjJk8HycdxfiOIwtJY7t5YvknwZanDK7Vcwjcuk6iUmi7TBrPX0PfsktryT3JpQ5Th7zAhbLvf6GWLHw1YCg/ewvnkVMU75acUty+cnNxRRI8ZyXCPf6SmT5xQbECe4WnWFwTauXGhHYOiJodfxkbQXuothJtCs0wLn5IsWJra9zV8/Ay7vsVyrFyQWPA8W+a1Cypzc1/D6paHvVQsvFC5ZeJkitaQEgSA== Received: from VI1EUR05FT020.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc12::4b) by VI1EUR05HT147.eop-eur05.prod.protection.outlook.com (2a01:111:e400:fc12::313) 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 08:53:26 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:fc12::51) by VI1EUR05FT020.mail.protection.outlook.com (2a01:111:e400:fc12::192) 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 08:53:26 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:FBF3B1F71A19C0290B363F1EC58023539D955CCD4BE037D30CA9F3C95ECD521B; UpperCasedChecksum:86868634B9887245A73D1DD2EBA339B64A41CED54731242450CF6B1E376A0E29; SizeAsReceived:7383; Count:46 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 08:53:26 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 10:39:03 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 X-TMN: [YKDysZqQd/Ffc3Lu8aVBguvVKaeHCJBC] X-ClientProxiedBy: FR3P281CA0019.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::6) To HE1PR0301MB2154.eurprd03.prod.outlook.com (2603:10a6:3:2a::22) X-Microsoft-Original-Message-ID: <20210521083942.130476-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from sblaptop.fritz.box (188.192.95.27) by FR3P281CA0019.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.11 via Frontend Transport; Fri, 21 May 2021 08:53:25 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 725e2f97-6829-4199-1c45-08d91c35e54f X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSiYaxVAPXjtBLAGaAm06UesH+Ze8RwlVnqc8I6hg+2lvBJXYAWPmYyGCPGGR1OyvvCTcyW5zgCAHexl+740Yz7KKhCz2A+Flo9heaaJOXc4G6HK3tFZhwgKc99vD4OP5OxjgMHjfY48ZnBm3tS8qjdipDDHjGIeRFAPxSr/A6tjQBsyjErOzLbWRLYhgoQqqleERh2a2PTV7oLK2x6A1hf+56BAzfUhV7EaXXzvEvwyAd13tEC60hcfnEi9N1OMXda0cRP6l3L56v1a52I6E6sUa5B4roRu3ekb4bX5Vb1JQkXXQOSxkTD/KFIiIRcWsNW9xkPUBftdyGLw9HXfKkMsAEJg9Braqo4Y6Cix8FbuAbs8j+mxqgOpzqqK22o2t1lk5+3j/jxG5/31arUXPFPfbrikYW7XTR1e5HTr34S2U3PuQO8dXdCxDC+pmh8tu5EVfpYkfMTxN92mpHJlonDkPvzU+tUi127Wze2eNVStXEzqR2yVvn++ZjFMewtfcPWmMkf1Kj2xCuyXj9mkuJ91PfAYBSrn1+t5HN93GIqdfbSKN7b5vExNr8JlTgUULVvT2aN/fEeQd36PbaVUp7tqOSt4lsCvJ1L+SgSil7obO8g1H9d9os/jux4jxHPhkXSj+nDFYwjEnlP4miOFjdjhhBCMI75RcczAwAbCnApw9OdkkpNnFmQVAAN7Eu5vkdTk9jLcxaAjCvHIhStxyvBBE9IbivPr3Jr8lUIOWM2YfFYsXD6Sx36gs2CcpnLmSs= X-MS-TrafficTypeDiagnostic: VI1EUR05HT147: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4mXsyzc9oRL2J69huwf+siAqF0hj1WqmMb+GDw3U8eQHJIcwh2DnKclPMogqTphO5C4N/dgfdNL+l1nH+bdE9TlOxE9Smp7cTZQWFT28Qm8SiL/aQcfXJ+LFS/zgJh3IaKrXkJpLTKyaJy0N8BPSO/mHDQq9fwCwufh4yKodZ1gNuAoyAPDYo8q7z0N3Wf0wY42tP9pQ4eseNl7KR7Uh+AJn2ZH+ykJtlEsfOyENg+USDPzsGb7um3WSYZ3SuackzMAnJy/6uAqZzUzfVQlwlboUVEOs4niOHTIysAarrmJG9lU2l9AEqfObS48+YSqxdGocxPu8lCqD1jL2u76NzuDB1Rn2DEcIm0QRhRu/XZTCuDewQKSDLEpG/eOaRndX0I3JB5nNeBVDyKbK5OlJ8w== X-MS-Exchange-AntiSpam-MessageData: 9ulWQ/Xf5YDKYpJBEIyPi21CnU3teoQd7Bcd8FflZtYGOJoKKAgGSmiIFnoZ7E9+ZoYHncv1P0qfUFU9U8i3BBfTawuEFDpWWJKi0KvDmbFXo7hlWBLyimRbgqkWokSd36dE1XS9ri9HHTvzDm/PHA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 725e2f97-6829-4199-1c45-08d91c35e54f X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 08:53:26.0255 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VI1EUR05FT020.eop-eur05.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: VI1EUR05HT147 Subject: [FFmpeg-devel] [PATCH 01/39] avcodec/audiotoolboxenc: Remove AV_CODEC_CAP_DR1 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: ARfgFlMW0cxe It has been added in 2016 when this flag made no sense for encoders at all; now that it makes sense, audiotoolboxenc doesn't support it, despite claiming to do so. Signed-off-by: Andreas Rheinhardt --- Will backport this to 4.4 as AV_CODEC_CAP_DR1 was already well-defined for this release. libavcodec/audiotoolboxenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c index e3d056a79d..e0e00ba2b0 100644 --- a/libavcodec/audiotoolboxenc.c +++ b/libavcodec/audiotoolboxenc.c @@ -627,7 +627,7 @@ static const AVOption options[] = { .encode2 = ffat_encode, \ .flush = ffat_encode_flush, \ .priv_class = &ffat_##NAME##_enc_class, \ - .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | \ + .capabilities = AV_CODEC_CAP_DELAY | \ AV_CODEC_CAP_ENCODER_FLUSH __VA_ARGS__, \ .sample_fmts = (const enum AVSampleFormat[]) { \ AV_SAMPLE_FMT_S16, \ From patchwork Fri May 21 09:17: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: 27858 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp339585iof; Fri, 21 May 2021 02:18:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwmCOEU2upVhnBPR+EbGD/6DGpkqL190ix8eWpjp/ONFNPrTBpnWYTETckboyqNCc7RsAe0 X-Received: by 2002:a05:6402:5211:: with SMTP id s17mr10383638edd.352.1621588683218; Fri, 21 May 2021 02:18: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 f16si5313486edy.382.2021.05.21.02.18.02; Fri, 21 May 2021 02:18: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="n/qLDZ4c"; 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 BED57689888; Fri, 21 May 2021 12:17:59 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064041.outbound.protection.outlook.com [40.92.64.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BE4B8680BFE for ; Fri, 21 May 2021 12:17:52 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S/yQQd/n5TvZoQ6K7gsFQ1z21DM+evY3dCAe9zFV0dpg947HcakWNl23B+he3fHm2Qfc5C+YoWR/7kQAPCkD0+U9FPVLBbWRgfLYClmxK2u8JLreMJqqSSeNTH72WIJQLGROcNs8oL+UIUf7Iib0s2FpVw22foq4JGl8eCEcEzmYc9XuXZ1E2AIKi7i40jBG3m8zHJYoHQ7QqFd4b1jsms2BV0JeBmGXLJCLSGYvd6RvbUJddiv+QrLsL0Y75VUTeYKBYHX1zlcV9LYSRlBs6OdAQh5rBaLPS8od4gQfdCXA1iFsceSYYIXkikn41Vjz1FARSQCzGYDJyCrNBrJ5Sw== 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=J+bBkPsgRapg3sB5Kj0oy8sFMKMHfcnFtmmGYbV2DQU=; b=Bw9WYrpMH2AYHtkch6QOWqCXeqiUd2HyRpB0Ccqxz/aMLkNH03gWgxjJgsz1RhDQLdKYbTCwawiN9JxfVeE44qXnLal5KXg8FYQ9KgIf66zvRA2KVsE5mvPO8puLW1o25Lkvz1asDbFaYCwKDmmXCXxFbCrXy5LM8jiNuC8hQUUovTHrlJ2SqZr5n8tvBwJZjjUOnWEA/vSWsVfUymKq4YhFKZJVzjYdv0+AcWvi9a0Uk0axnTN9n25qEJ6lCKjaxmV3mIpw6lh6A5VCvDzsHFB7mQlH7ce5G71+Idi4/PoyfzT2pCjsJrPLyjZCSV8jzAb17Pg3P0rdCG+0rA/Mmw== 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=J+bBkPsgRapg3sB5Kj0oy8sFMKMHfcnFtmmGYbV2DQU=; b=n/qLDZ4cHGA/YB6lWl9NUobjUJZTCzb9UMJ7w5SXyfZ/F/riDRe/XD8RfDN1p2TOW/9ZPlAYoknHHC0HaygE5D+kxDVZ16hcXgm65mf/bvDBOu6dTJevzc2Bq6sab7aKNuUNUcmbg0lKKXA2ysMSbfzN94PsKBsySbeDds6CWYWzO59fwZW8eF8Tz+bSPNEE7OMaCX+kx9hYjecPCbzfQL1mNHIHavd75cXemWQLRR1r6qUw653imgXVKOQ3RHme/j2jI5Nd8GgN5Py1p9OyETu7aRybyLht8oNr4F/W/tssE54iTH3VG8jMB/f2UQXOkTCtexZbvI+Wyq3/rI3+fw== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::52) by VE1EUR01HT006.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::115) 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:17:50 +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:17:50 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:7930BA08133140220B58ECDFD09627D53EFB0FB01E927E1C3A3AD74D9244A209; UpperCasedChecksum:42F220E52BC4AFA622DC7695FFE1A4DEA600AB3F17A47EDCB7C3E768F6B9E9C6; SizeAsReceived:7603; 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:17:50 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:05 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [mT/bKC0PYyn00y0MtquRPXNDlA/udIP2] 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-1-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:17:50 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 565545f8-1d72-42a3-a3b9-08d91c394e77 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSiYaxVAPXjtBLAGaAm06UegjoLookccLr58AFc0KkxebYtgP8LL/3+DC82RFQLu5dd3iG4K9fz5Khx3lAXfcq3eZmgJ/BU/Knid5nYpjtoOMAg9/GsI5CLZa2QOKmLFO7LEAEUvNWvZvZo7M/HslDcVgXIs6y8m4sKpjHW1gykymxpNe62UWLScwU1Q9rUlIKE0YelG5Jm0PxplJ7fD51dwvv+BfjLH3wj/FbX2WMWmWCsa10R8drUi/VRDoor5cY5GQu2Cc2CYPMYMXW8w2q7G4osTt2qP24Ic3Bj4Dt1N5KiCy8IjQfFnE8NuDUBD33y2ETvSQSv5A1fVSQJSI1ylCwwK37cuvNKrpcvYIPtXtZiUwAjKT85j8403KJZmVBESklbv3vD1sU3WpxmO7D+VIuCR5VYhRXiXSFVyJih8Ury/hNPLXn8Tjv/THyE1Ty2tI2uva+a/PXS34e/jrYARrHNPeLoBzxG8x4Jlg7ZZSgXzCkZaKCD3j7gG4SuZgF6ttV+JPvIm5LaV22tcQl7riK0LBeaLZEvBtRG8m5XhzE+sU5nUh8Chit6yCnXuaSKj4SfPuS9iHG45bnqqqEO3XwUWby1hH6Zmnq/D6bI7+DKWqW99axyPFH5ecDxIZLi5GkO+d/gL9RNJDVYwq24hzDzBip7xz07GXnWTYs5Ni+jnHIM2OKNiZAI1mT+6CnGAFSVe9t3QHQTIfef6MOVAjqEmC2YQyoW/joHjdnXQox+TmyA9kTJPVqc9ZzrRs8= X-MS-TrafficTypeDiagnostic: VE1EUR01HT006: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YaLsz2dbdXqlrK6U5wu4um9SaMXLWgSkvymq8VobCw5F/8fWnP5gae0paTYfQvUFJI4toFlUeVWipA/L9u18dtGiT2ShytaOESarl9+eNsThlqca4POo4N+hCFXYJIf72nfDS87ju4M2pFxKgjGFW2DoI6V2osmPEBnurIoaLlvR7lLScecPe97lEtHgLM578QMh01L3TMEPs6HxQB4sULH9psPHPK9zP0Xt0X01X1IaSxXCxMtjoTOv7jaVQqd7sHnoRVLeY2vax4I00A+ksXXZIMs8mY4tYxcjKvy7J21FRmPpi4r8MFLH1pT93pNGQZB2IyftksSa2Prj4JPmsoZu6ha4mxPTqp6Dc6UP9YxNSYXLSBY3u99+mMKDCuwjyMDkPELYYAiX6BptHvH6fw== X-MS-Exchange-AntiSpam-MessageData: CGVSIbojYUAsA3nCaxPSGImZSBq2ffAEQhXAJ9XBzUlMzjxeWRCfjwaFvekms8wQ1h5gvVBuOnO7BUuvNwYdivteUwBPiveY7fWz3mw28bIJkxijGENJbjXno8NgEJqxr+dWqEakK2AcDk9AsFzsug== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 565545f8-1d72-42a3-a3b9-08d91c394e77 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:17:50.7721 (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: VE1EUR01HT006 Subject: [FFmpeg-devel] [PATCH 02/39] avcodec/libaomenc: 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: dWcnwF6CLwb0 Here the packet size is known before allocating the packet because the encoder provides said information (and works with internal buffers itself), so one can use this information to avoid the implicit use of another intermediate buffer for the packet data; and by switching to ff_get_encode_buffer() one can also allow user-supplied buffers. Signed-off-by: Andreas Rheinhardt --- libavcodec/libaomenc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/libaomenc.c b/libavcodec/libaomenc.c index fcf75e835d..779714fdaa 100644 --- a/libavcodec/libaomenc.c +++ b/libavcodec/libaomenc.c @@ -36,6 +36,7 @@ #include "av1.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "packet_internal.h" #include "profiles.h" @@ -970,7 +971,7 @@ static int storeframe(AVCodecContext *avctx, struct FrameListData *cx_frame, { AOMContext *ctx = avctx->priv_data; int av_unused pict_type; - int ret = ff_alloc_packet2(avctx, pkt, cx_frame->sz, 0); + int ret = ff_get_encode_buffer(avctx, pkt, cx_frame->sz, 0); if (ret < 0) { av_log(avctx, AV_LOG_ERROR, "Error getting output packet of size %"SIZE_SPECIFIER".\n", cx_frame->sz); @@ -1344,11 +1345,12 @@ AVCodec ff_libaom_av1_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libaom AV1"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_AV1, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_OTHER_THREADS, .priv_data_size = sizeof(AOMContext), .init = av1_init, .encode2 = aom_encode, .close = aom_free, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS, .caps_internal = FF_CODEC_CAP_AUTO_THREADS, .profiles = NULL_IF_CONFIG_SMALL(ff_av1_profiles), .priv_class = &class_aom, From patchwork Fri May 21 09:17:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27853 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp339689iof; Fri, 21 May 2021 02:18:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwmixv4ifiStJSj/RPWsrwMFExHFEKaux/0mTv9CMkDFBludaWwqwTHfD5tuOESfE17McI+ X-Received: by 2002:a17:907:7283:: with SMTP id dt3mr9195719ejc.253.1621588693350; Fri, 21 May 2021 02:18:13 -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 i8si2617572ejj.74.2021.05.21.02.18.12; Fri, 21 May 2021 02:18:13 -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=O9PKQLdD; 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 D799E689916; Fri, 21 May 2021 12:18:04 +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-oln040092065060.outbound.protection.outlook.com [40.92.65.60]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6DAA5688043 for ; Fri, 21 May 2021 12:17:58 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J2ZeT4rhldO0C2SaOJMxEKNGHx8kE7fZrhyozlz/uuRLYAw/AzdZF0G095ZGBIIz8Bi7PLid6/lmOdDhyEt3jhsphW2xdYv+OC/FMhv1v6BDi9NQ00wSjCTa/+jNTjQjVNXFVE1Nt/qBrvOO5BXObOyYRr9UIZmO9W2DDo99O71ZOVnljkF5GOZBZ+j1u9trCRvdYwgkuHopKbsIb18vbc43sLJ7Pmqm667sT7qxprSrEGN2YNOz1tr2hHBifCV62ZtMqoCqFKxHVXqOxoDFcvrqjXY0k9HOSW40azUT7xwqjrlwjYzVWt2PNidb4ochEbGcusBW6jmvNPph8CNM8g== 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=YoVZCY7Kpqe4dOO9ZN0BFMwoTZZn7qrwJ5xjMlWU5qE=; b=NF7aO/PiJXlsp2lrSYWbGefKDaEdblWdQ5Md914d3uxygTIPkbsEA1CjhUPg8oFDHghMd1+/xdMgy5FHq+y2zUX5i0lou89OuETpx/C/6vlkYxvkoyJqGgiCNrSbbpaQ0QfSOfaASu1Y5nLH2Y2lc5EimHvXO+qAiu9lrxiEHu33HnmQwj6QoRcQMzW4N/DfKRUtaQavhXZcQE3kndWKPbrotLgk8lhipXfc5xHBAQYRmA/wdD1GafJo8NpNti3OjWeJjIummnWFn1fXHc+T1KjcQofROoQPBYcsG01qPboHzSrUxh9qqJogAzoIPbM50Ib5vq4T5+FhE6BtJBfE3g== 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=YoVZCY7Kpqe4dOO9ZN0BFMwoTZZn7qrwJ5xjMlWU5qE=; b=O9PKQLdDZczKjERl2LldUvtXvwDJWNUc5MuP3Q9LriGet3VGwj4IHR9lwJtT1mtNsCGS3pMnj8wZKvNqxqIedpEO4y+kxqqv2goOFhXeFj5ryqR6z0s7kGjOMHToewphMsXZDFbq+mGTUfG2/xeLiKYPBpVBVpnvm3n2gaChK3s9u1hpDPDgu8pMF7mIpAnefNuUbFYYdokzt0tW0Papitshx9WTtaBrQemMNp7jy+eMDm9vyrbMvGSyI6ysCxjUvuY/ySJvgulMEbfb6wd6Ac3aXTGiUr0jGFDTdYXWhmYILUsrQnV3qpgxlnoS1/TO1Qx4DZIj7C7O9eDSUzq78A== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::42) by VE1EUR01HT117.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::368) 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:17:56 +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:17:56 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:1D2D7A6377A0EC3CD255DDC22D0D720DBB10775CF646FE9D094840E3EE468163; UpperCasedChecksum:A7DF1B1FE664273C28DDF691A2079CD049225F0EB8194E69B23E1CDF92A4D613; SizeAsReceived:7609; 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:17:56 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:06 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [hTVAZYta2tKAr0iHd96qnjPqNVriq80m] 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-2-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:17:56 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 7eb0885d-cb6d-4c26-712c-08d91c3951fa X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfauhVzhm2vTQJkvw2B8vu12jP71AGeBnOzfy2s7Ft4gzvHwa9xzNDPS19k3mGAupuh+9oBCOI6JjHn35TlX3OGH2gKbas2p/DBaOJQvxUn+f1Ja1VvMiQGbFRZuAvbaA8sNixbKGSEkU3YAIMAWkepEQLX7gLmQ2H+URVDfkEshDX479Vf6ACUDxjCG0NHNKnOLIOQ8e4YDi0YqaSWsikC01b/d2ucxX4AiLRTfzBoDjtfr8YPXdIZIeuEtPLbPxfancpqKTITvrhplUAUSvBTbmRchDM/nmBttE/9ZDYzBx3rbOANB3nhIoboGD/qsE0OS/wDWsCWsPWjDZsscwYylRQGWEM7s/ta9kTpXIXJh1nen8LNkIXIg2sQCOqJC9TvWvM+IPXU8ZyCbEIy5jUXPdjHcsN0iGj4rX1AZldkMEAB/aPYLFjQeG7oB75l8uyvh8bhcyuYpkxboaGFl9w0m4Ss522fbX0AFyOW1G34prAUjjkrfTeKyNoFEkhKO+1EU3ZyBUuxQcrKMZsqxLK01/AFVsSm5yyWnrIVbQWCmS97FWvHJhq0RFgbzp22pT8pJz7vkyDM5jofQCt8zaK5qB/rGAkJNapq63H7hyEirQUwD4qJSY1Rr29MS6RgmPlmV1lryU+sKOttiBQ6XQlyavrln74bYkRhd1m/pLj9uFtjqR3ZVThXU9uiZaLIxgfZzOoSeGdNO2H4= X-MS-TrafficTypeDiagnostic: VE1EUR01HT117: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KuDtSs7B8/H7sYvyn2AHOO9Q7CV6f1zl/HfmGs3/4zgXReQghWSLU2vmPQbefcsFrwYopc6ibyfl+jNAa+HZNBAaciJ1ARdPU5VaEETXM8K4cnWE6bKXnHmy8jQHMBflb7TCwPQs3KTDxh7TsRoywV4UNw6o+4zJts6yVt1azVbVHKJFvoEVoaNPJLUVVWwmAUzFF+a0VA+ra1KpqitfPsJR25g1ds+2utHNZ+67CfBdVletpFpUsaB5zJrInLpZxQrd30OTS9vKDUR73nU234M66Yys4ezB3STV62RppyZKMKEE1S7HHrauWIeZcBQxsaTdzJAj9w3Dr8Imz8WhVSX/8WneJp+Yu84mST9ntSDh9Badg6Cr5Hp+LOWkOvqP8GZ6BVrTMwQcSB52o2Ne9Q== X-MS-Exchange-AntiSpam-MessageData: 4xARVhcS+OL18pt7hPs8tSfwnE1iMpmG+b5eHmHjDb+U0gIVtRTl7+c3jdO7NitiomjiFbxJ6UedrV1wvcVE3o4HcpC7y1x/9XmZdXhLi4Eb7LbDf/dHfVh4bpgdA4pxBC1kd9f1hBgXeqvsBSqW0g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7eb0885d-cb6d-4c26-712c-08d91c3951fa X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:17:56.6055 (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: VE1EUR01HT117 Subject: [FFmpeg-devel] [PATCH 03/39] avcodec/libcodec2: 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: vAXt4RPh+W8L 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/libcodec2.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/libcodec2.c b/libavcodec/libcodec2.c index 562a616f59..2996dc42f5 100644 --- a/libavcodec/libcodec2.c +++ b/libavcodec/libcodec2.c @@ -22,6 +22,7 @@ #include #include "avcodec.h" #include "libavutil/opt.h" +#include "encode.h" #include "internal.h" #include "codec2utils.h" @@ -169,7 +170,7 @@ static int libcodec2_encode(AVCodecContext *avctx, AVPacket *avpkt, LibCodec2Context *c2 = avctx->priv_data; int16_t *samples = (int16_t *)frame->data[0]; - int ret = ff_alloc_packet2(avctx, avpkt, avctx->block_align, 0); + int ret = ff_get_encode_buffer(avctx, avpkt, avctx->block_align, 0); if (ret < 0) { return ret; } @@ -201,11 +202,11 @@ const AVCodec ff_libcodec2_encoder = { .long_name = NULL_IF_CONFIG_SMALL("codec2 encoder using libcodec2"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_CODEC2, + .capabilities = AV_CODEC_CAP_DR1, .priv_data_size = sizeof(LibCodec2Context), .init = libcodec2_init_encoder, .close = libcodec2_close, .encode2 = libcodec2_encode, - .capabilities = 0, .supported_samplerates = (const int[]){ 8000, 0 }, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_NONE }, .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_MONO, 0 }, 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, From patchwork Fri May 21 09:17:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27855 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp340053iof; Fri, 21 May 2021 02:18:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx1O/sfaRMZIDTYmaBJPqffzTcc1/JnxfciYdX+GfbKxlFO7uQ3ds91Td6lm1ADN+fhkoVt X-Received: by 2002:a17:906:a88c:: with SMTP id ha12mr9352817ejb.129.1621588728762; Fri, 21 May 2021 02:18:48 -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 o15si4612743edc.604.2021.05.21.02.18.48; Fri, 21 May 2021 02:18:48 -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=rxoUPI0f; 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 DA49A689A1C; Fri, 21 May 2021 12:18:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064012.outbound.protection.outlook.com [40.92.64.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 076FD6899A2 for ; Fri, 21 May 2021 12:18:07 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VMt0PIdVEQYeFCDGDx4I0nrlb/swAtFTa8EV9j6+8TfCeAll6cMFKXjlGWcV2SKPucv7MZH0PCPKwT3GbKuwnaQ4adNv7N0Vz9lMIm8Dd6Yj5ye3YP3aKIqtd/OD5j+SQN3Vrl6/+zOlqw2x41+UJhCFnEV+XDwwjoNR07i7Mj+PDWdhVAdOPqtbjQ05Ltf2yEhVIku798/xpgLh4A0OUnaHxuAwSQC6p82XIbv2ffqEPFz2lTuOn9aGWxevM1phjjtUnpXOQQXDtWIkxpdLDK8Hg4e65KBOJJSFV45fDrN6/HeamkjHCHFf9SewnI9vnPW7SUNnVTBM7GAmIJr8gw== 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=KLOtDW4/xx1dA4kTCpNFwEmInDEGl6xaXZQlpNYvhmI=; b=EZXvLDlIfeYFnnwW7wogxnPjAlvDbsfGFjXvaepS0Ms+ePg2yTDfVNJ+eidvGHyp6AFJkkEkhMGKDmLYEZIglCBW9vOkzXcDZTAumIw4xiekseAuImpmj9gkZRjND/GZquV8iUAUZaEw8Ffu9Cz6AoGpM9y47x2Agbpe7YG5MOOdgWrBTjCWohUoAHhuIzjkk3psyrgHScGL2AajKPSOl99VfkBd9Z0RbzmjxwIhi41amSf+r4RUco82feyXLYTSAEhDJWQbsWrvQWZtv8fggH00DmtqsNgVenQ+p/AAgGxCsXIoGFyRA4xKcU403vfPbht4Y+2Ag68nlfm08E8MXg== 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=KLOtDW4/xx1dA4kTCpNFwEmInDEGl6xaXZQlpNYvhmI=; b=rxoUPI0fqj6UfeJSX/2kq4C2+JkfWs0DRe3LxQjrQlLW5PpzXlVPBfF5vtHFPrTDYZ/BDO2soTeGTWL42b3YGW5Q84w0wFe6zpJLUAQP89UdKEMZsmFXAFL6o77v0E/nNBK+9QFGE1sjSh0iD/w9wOIjqmAYXzZaZIGKVV21ut1kUiMyduhaNApYUeeFJMaMsjKyEWzhMYbyrwn6799YKqpk8lrrsTr3b1BIfDOsy9kTZmti+Y9fHmj55LaqPTeukmc1mdsU50pYZXwlX0bNHSt3IXfxyYHcKKm/fPhY1riqs6aJpaGqBx+AhOTOQ6fR2rUNeyNL46ym5d7vQTdkQA== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::47) by VE1EUR01HT112.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::307) 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:05 +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:05 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:1C70F7026F4AEEB7F0A6D4CEAFA58911CF7D89257D1FCACC25AB6495C661A583; UpperCasedChecksum:5251F73D6D4605B6121B2368D6FA210F8F3346C3E022464ECC0A195EE62A608C; SizeAsReceived:7583; 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:05 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:08 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [x+ml4u+w3HKZMI/9FgZdGVCgL+yH8EgK] 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-4-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:04 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 6712ec70-6d7a-43b3-0cfb-08d91c395710 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfauGgBLX+CNMivSbtevQNSoL56FUcSQK//EMw7ildqXFmjXnkT//IaJLya35HdGVznHhVZpDv0DomeFUOMJ9pwKhDX6yAdHYXF+P6hMhD5mPNrmdC0g9cl808MiPF7tjluku/WMjQDS22HFQ4mz+Xu+f4GlumkCcbmDWP8fbbPA6yt1/tvHbObGrtcStf3LZjLPaYGZyQNH11bdIZrktGrmH77AhtN4tOWoaX9HLm72mYBmZ7Cr5J+1iw7RXrTJ9OkADY64KxpQCUeJ0+L5f4x9bAXjgM6O1wpBTML23SGkzu04eYo41ZACO0mpfyZAkTNs8otbFBlydQt3dhixeKeQNBOhn3Uf3GFeldXIP443T8h9Cx3YF5wEt1fEOwipY1nUJoek4sNDadlcS7+6GBQjVu7lwgg8iwITtCCaichD2lAwCaYxm0/2I184UttvKpT8Ro3zxHzMCwHrmLc72FSuwt68E5H3vKy0QviDVHuHJ2olwHvMjnua3KDtKrgsAOPhKBvtcav5RfmOt9KI5l3/XrxMKbsbwMUqyusOC7GSHax/Kh0PKlRJUQxv6M0vmz3fNPYkgTcjKnc6/R8vwRNL2cjvQCvBG0FrXiFT5KIoBOgYSleWMQ81XSHkGVpiM8NEbu528QU1kIe+1ht3gJvV9++IwREiSSQssAlOUaU/0htW7PQ09S8+WKWWv+vrYGHqZNxMExjz6Hc= X-MS-TrafficTypeDiagnostic: VE1EUR01HT112: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QiTjVNmm7dya0PzCgd9B3hUeQA/a8UMriZboaWJBnuzKDEUBX7L3ZYy5QPTP8+gOCAuv6MQpe8CL80S9KJ0CVHd6lLDcGAkqk9bVM6+EzBkfLMicS8p5bMEZfmKV4Tt4DxneP/Xv7eKpwgBdpzteG9qO6/qFGfz4dQJdvSHB2+5Psd2oqnZ1fJvMca2DsHLH/z6TegqqyCw8A/8X9d5h0WXoXcHXCwVH7SZg1QsD0TbcNX6OBjXE+Sauc2o+VnFqB1+sHz3f+H2lIXICX6EAU2UewP6mVA2sHWG0ulGGES7QHDs2hFqNTulCcc/z8AgTCdneAnIwohNGjezu6okWvGnUtB4VaiZgecSZWest5X9v6BRe/kUvOK/f/D+4pLdCj46P43d5Cf1yAxdt+j43nw== X-MS-Exchange-AntiSpam-MessageData: bMf0868xWtgbW4GuoIA7Lpygyk6ZRKKvmqC8bgXueT45UUtWpuC98OagM3ARGqhwdORv4x7Gxh/IQ/cRMDEI6nx9Xwx0/tWBKl97VvogMee7DSymdRe8dX0saZLovh6HUXmm5twFu4hHtL9NhNlMvA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6712ec70-6d7a-43b3-0cfb-08d91c395710 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:05.2227 (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: VE1EUR01HT112 Subject: [FFmpeg-devel] [PATCH 05/39] avcodec/libkvazaar: 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: O0D/yVPQk0BT Here the packet size is known before allocating the packet, so that supporting user-supplied buffers is trivial. Signed-off-by: Andreas Rheinhardt --- libavcodec/libkvazaar.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/libkvazaar.c b/libavcodec/libkvazaar.c index 14eabe4e05..aabe446a28 100644 --- a/libavcodec/libkvazaar.c +++ b/libavcodec/libkvazaar.c @@ -36,6 +36,7 @@ #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "packet_internal.h" @@ -237,7 +238,7 @@ static int libkvazaar_encode(AVCodecContext *avctx, kvz_data_chunk *chunk = NULL; uint64_t written = 0; - retval = ff_alloc_packet2(avctx, avpkt, len_out, len_out); + retval = ff_get_encode_buffer(avctx, avpkt, len_out, 0); if (retval < 0) { av_log(avctx, AV_LOG_ERROR, "Failed to allocate output packet.\n"); goto done; @@ -316,7 +317,8 @@ const AVCodec ff_libkvazaar_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libkvazaar H.265 / HEVC"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_HEVC, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_OTHER_THREADS, .pix_fmts = pix_fmts, .priv_class = &class, From patchwork Fri May 21 09:17:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27857 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp339918iof; Fri, 21 May 2021 02:18:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwsZTkfdYR9CUSEAIqtCcUJXjWbjEmhc27n8dgbS3N5TwHrkU/TqvDQCPTvB3Exurep25Se X-Received: by 2002:a05:6402:5174:: with SMTP id d20mr10310682ede.248.1621588716189; Fri, 21 May 2021 02:18:36 -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 zg9si5802901ejb.426.2021.05.21.02.18.35; Fri, 21 May 2021 02:18:36 -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=nAGGKtlt; 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 C92AC68995F; Fri, 21 May 2021 12:18:12 +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 B0B7668993B for ; Fri, 21 May 2021 12:18:09 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M5N/jR455b8fwdTZySyXFg2VcmtY15/mAL5ahj8fq8zR4RDSQ4Fa/kDNwn2KplLkLc0VfRcjk3Hwv6RESrRpM1Ah/ha20PlvG9pvbRlvDpjaRjUkARVh6S52JlJW/hrirxJJmiJcSSoYQimfz7oNe7HeYFLLu/P70klF12sCN1aAy0GEQRyu7TgNFCLeT11zDJuCOLltqkh0fXxINQ5UffZywYo1/ncKRH2iiQr9PORNfv9Ag7HtgQ9A1X6X3HXVhhSxYbEVUaiGTfaL8TsvQ29wIR1aUiciL7Du3LR7NwvRpvY1OSCI3vUZYZ1do9dadmOqXX5+I0lrfcn/SOfa+Q== 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=qCd2pKyg9cHVW2qRJBQu1S9kEI1i1ssgjg66E4UWLSM=; b=d0LGf/ynnHsvBL1PpFEzt2ZoJ80i2Bb6RvPUxoVzhyf9eduNsvhFDcceqNAc9oqisqXU+1Pv0P1SQi6o8TSW5f141/wT8+zfLCuxBDgTuF30KCHnPAXgPCz0gyxI4qVplzg+Q5zUjoAfy3pOQg74CxXyBWUWwEePG1Ld7dOQo98cShy5YBDFLHLGZwaHuI4ZCy0Vo9Fkee+VYTah0nHztN0KRgqoSsKT8K95bEmW1+4mvRjJK5ctr3K4UeKi/pHPWzHkh2Qox7WgYDNOBNEvVpdUD+4NzKifKHJkDfR8DYsz16Uwdrz2boiyxLd0MisEyEosY6DfN2TTGRZbN0ixgQ== 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=qCd2pKyg9cHVW2qRJBQu1S9kEI1i1ssgjg66E4UWLSM=; b=nAGGKtltg2WpxiU4jZRhNtaxcRX5VC3YVdKry5jidHVKxpcYwwn0+1JahG1/FoE+6AuxdMYilaLIjJxJJ1cQ1exxnvgRzqdaUgrvJzb6lrG4fez6HqnmC+IniNPHDMd/i+A9TNhjiyiwhOXO/BFTcxdjBS1IKyA1yXenjZndPbeTCurX8MmT9XBjIuDkTTUWt/2syHwtwARaiuWwnKGX9ktAYLdew0x4Cxc1W8/QzsNf6ZoQl7/Ryg6Iggye5WXcdB2nuV76WD2jXKo4eRmeul9ksMWxjsuK3kJEKj6k80zIBeB9XuFtmhf9C5hyDXz4a77R/YVuGIysSbn0ZwxbKw== 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:06 +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:06 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:DE290DDFDD81E29F8A9AF84BF462983EDC2F0A7C6460B4C95486730C7DD19BBA; UpperCasedChecksum:C605EC1E74F42D8194E27CDEFAE8304A0B55AFAF8AE5F7423D518340DFE3398C; SizeAsReceived:7602; 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:06 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:09 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [iWmT7Ugt4AJR39VrJVwKvhjqu3ivnWHO] 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-5-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:06 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 6a8f4c71-af8e-42f9-d113-08d91c3957e4 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfauqlx93HHcvn67vjFjhWkjF/t+0T5bBJBRbY5WGeM59QNTiA4JqKfOYfoOb/uxngCm11RY+x+1NtWIFbvDPOautFjv4GE7yRmk6+GAYdernhFlTHl2+SnOYuLsUYt+Zg8Q7GX1aqVRGbE4gBcEAN27pvVyFNzhIgTSshar7pRdCq6JSNVZId6BaMRzElXsMzwvhhWVSW5Io2Y1S8PuNDuniKmwRl9YORE6AE8wrkBJ8ZHK3uARANcssYCuc6U4Lx+nu9nuiWvtcRF+KRyH6/WFyfCVFhraqM1kILi9dejsaLPIao500cOJbrhKQ3otMvsEtd+kzU26vhH1szTVpZ3ay05V2SAnYuR9EGUBRA4hWRn6elj1ByVgZTvGZFe59gSgkPsfA5/NeEdAozgJIMkLOjgAx93U0+CfsXg6e+NXbHNwDwnFS5SQRlqtPkidv8+zKEr0zjK8UW51uma2bi+mQ7bqcu76azobeiJJWVG8J0bmpVGSSqQUIURUReMEaSGOUqKrIVZvkvenQokQ2swmwThyuAra8KFcceeRSuFGoyjyilmhOWEajHSANfw6c5n6eOlA/ZRZ7waMQGghXsR/Gc35wUMHODYs5A+yZE9blBwUFjB2Hvg2+8EuEshF5oKpyAqbEpfiJeqibNGFUxXOcaEfcSlFQ/tdU/GIq6/sUPNV7kLaY2XgckokYSchbOyCS7ESHSAaBAc= X-MS-TrafficTypeDiagnostic: VE1EUR01HT017: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: M0meD6+UtpMwkwe1claNcgOd+KIrvjAkOKNZxJvrbfGaQbffkGko1AHHYhIkygBUfLy18ES/RtV2J+YGIgvuev0hTUJx5EOXvI+z8BtXKo+lC3wPBYNdy+uPl2Iu6lRPwgQgFstHyRB1k303zzYidehm4dTkyNULpCDoLSOfi32RoN68zWzR4r/1A/8H5lcFfsWnyDe8akhbNlWRo+F84dDTMdswHTVYbM+IphMDk4l5/jbZEsx83LZZrs8G1TAMKNFdNy8vLwiyzmZj5ZOs2Ac/VlHi6LT1UaKFKjZr/oB9PvtXUYTAF9v44iNR0da2D+41G3PbZrimNvkxgrcdCHsInzWBkJtXDNv+lu4C+iuZVlWdKtqNADrSBOaK6REJbtMRcQS+CU614q5ZZ6067w== X-MS-Exchange-AntiSpam-MessageData: +esJJmXAwJ1hCDM3OXVWh5cLYgS6am5TeiN4749utEpffbgoXRimT9ZhyZDhBEfCzt5jk1OeDmxzvBCKFbUklZkI0wKFgOoKnZ52QbwaNuei72n74HVPCnP79lCFoOlXeFy4YT0n3CQJV5Lo5hgSfg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6a8f4c71-af8e-42f9-d113-08d91c3957e4 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:06.5062 (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 06/39] avcodec/libmp3lame: 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: sNw1u/itJt9F The libmp3lame 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/libmp3lame.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavcodec/libmp3lame.c b/libavcodec/libmp3lame.c index fe4b50257f..5675864bb2 100644 --- a/libavcodec/libmp3lame.c +++ b/libavcodec/libmp3lame.c @@ -34,6 +34,7 @@ #include "libavutil/opt.h" #include "avcodec.h" #include "audio_frame_queue.h" +#include "encode.h" #include "internal.h" #include "mpegaudio.h" #include "mpegaudiodecheader.h" @@ -264,7 +265,7 @@ static int mp3lame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, ff_dlog(avctx, "in:%d packet-len:%d index:%d\n", avctx->frame_size, len, s->buffer_index); if (len <= s->buffer_index) { - if ((ret = ff_alloc_packet2(avctx, avpkt, len, 0)) < 0) + if ((ret = ff_get_encode_buffer(avctx, avpkt, len, 0)) < 0) return ret; memcpy(avpkt->data, s->buffer, len); s->buffer_index -= len; @@ -296,7 +297,6 @@ static int mp3lame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, AV_WL32(side_data + 4, discard_padding); } - avpkt->size = len; *got_packet_ptr = 1; } return 0; @@ -332,11 +332,12 @@ const AVCodec ff_libmp3lame_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libmp3lame MP3 (MPEG audio layer 3)"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_MP3, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_SMALL_LAST_FRAME, .priv_data_size = sizeof(LAMEContext), .init = mp3lame_encode_init, .encode2 = mp3lame_encode_frame, .close = mp3lame_encode_close, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_SMALL_LAST_FRAME, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_S16P, From patchwork Fri May 21 09:17:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27885 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp340586iof; Fri, 21 May 2021 02:19:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw0SmVd3nmho4z9dLWoFtosi7dU8UAiq/X3Qiga8V2agKgZVagqd7qAxy15YEBAaiZvLaM5 X-Received: by 2002:a17:906:694b:: with SMTP id c11mr9044293ejs.420.1621588782146; Fri, 21 May 2021 02:19:42 -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 p20si4643646ejg.679.2021.05.21.02.19.41; Fri, 21 May 2021 02:19:42 -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=RDsaGTDd; 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 A048E689993; Fri, 21 May 2021 12:18:18 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064080.outbound.protection.outlook.com [40.92.64.80]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3873B689AFD for ; Fri, 21 May 2021 12:18:09 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cAhyu5oDziNi+8WmrwpRgBpYdABRs2No/IE7XFoL4OMFYoFyHU9PBZ4hsaZuw3QI+XNb3gARRnh0BTaQdKH/yrHs9aGV+BuNc/qlvNUWEupsmxNHI+Zoh+H7MwQfu3RHlLvOvfHFdmqVLulk3vJLyO4ByCaTcXh+CKhs4uNBnxktmmS+NktWKWztraUD48Q4E5A9klWkMrW8Zd94Bywa2jEcywDXEvSBEPdhlMvu4UfkJMqzvllS1lcULMOC+RmOLQ8mEqpfDHiNxWyHc/KdoX0uSiwZIckG+XypVbbvYi7q2dFVGYjTI4xkVOIIGVgF75NGRDrmAivMWv0t3NbweQ== 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=cOawaIo94oV07xKEeOuwBWXE6b+Q9idiwT8tVShGwwQ=; b=K1JurUyq15xQf3/CqnnZYse/g8Bju9UacQbiV2iR19QiArI3ZuNMsQkFXc1m8H9ya8bWL5gQelhYxg3VyPl4Z4P8qflTY8dD3/uZ8HjhZ0cAc3OFylNzF/UEmgDRGTqZEXsvNI6s2PjEwNfz43b6NAB6JxGo60QRKXHMh5NNH7yQ+wPQ+xwrDmhTFNPVNgT15IdvMdrrtdthPtwnIh9z0y7T4C1u4acLdUeqV3PzkE2+POMXsMkbgCvRlzW5C9es4OmKAy2bvbMh+GCfyuDmNhvUT3clal3ZRl04UMOHeLljzewwqGqK5Em1FihVDorjPZKJcCrBPovjOG5z8IuQYA== 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=cOawaIo94oV07xKEeOuwBWXE6b+Q9idiwT8tVShGwwQ=; b=RDsaGTDd16dkZzDdnPnqtB29qBwSKuJRtPWnFbY03YHrAmpDzEh/wUUbAzDZ3ZB/f2YT7Lcma7Gs4F3lVBWTb+EQHPN92PmQVx78h6fvjQXkh3ZKhQ9KVh3o92T4EaQVD0Wld6Z2HDWIraijlD3s0zfgWqfV37HO7KDjxhvutyBmD8tuNlYdNG7P42PL3Fx+EwYrwf1Ts8hjf3DdtNLG4/BPGhT0mmwitM+OhMWl1Gs1eY/gb1/BtFfyAxr+EhiiP27ojJGP3eNdoCDh8X1NRzlOkSTnmCU+UFg44ww5OlZEOqqqKmv1eTlqBfhn1N2/9Yy7vWep6mtJCqYLqUlZBg== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::4b) by VE1EUR01HT064.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::147) 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:07 +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:07 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:03BD0BA233F7C1896C62B983C229DD6C12DF9F9D185FBB64F0DF5F6FC4A88E4A; UpperCasedChecksum:31655C3BF31D3561FE286B2EA44CCBF32CE4849399121CBC9813C5373C00DB73; SizeAsReceived:7587; 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:07 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:10 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [pizaoyhB9w6HFzl9KrhFzVScMxZc/lkM] 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-6-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:07 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: f105437f-bd32-41d3-c604-08d91c39589a X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIohmq9k/yScywu9xPSfiUS4IDaJkvfungFP5w3Z1lRzE14xrkmHa9EgbGJSz1KG4RqO4IshNo5XZeS+BKHT9PkXwho0yWE1K762l2AhyvHQkiepqyJ0DbJQx3BlbpJbNVzRQixLSeuE47VP03z6o4Cz/N6H4zJ9mThXGNpx3v6cBSdyZESLDJopfv4jbk5lorM6M2KCKOwrgAERDe+D48sUWMr3txfO38waQoHqconK8PrmyQA+hElcXmIyR8MSoSlk3clvD2GhOu80OvJyNNF+/uKXEkJXrxYRD9BRv+liK5yU31ocYR38xGrjIDd+24SjcPgDKg0fweOhxYPlXgYZBJHgQkgxOQAXPWO8XAtHt9JMBjuIqHGGCubwjtEh6kaqvsqhYdQsPO2ZdIPSuIcKqjXpY/p0ZSsF/eJMTNjjVN9fEv1oQ5Pd+xH36LhmYOfgfoFUcKBJCK6u9ahvD0J9ks+MQmBs2h8aYhZtE8WNR8Q/ddZLmSUogLAnkc8hXL3xEIxH7ZuxByCaC9SSMxrcsMrRX64HGiYpGxPhXKwdKZV2aNydP8B9EvjKKwTYo+b4JYa5VvyZGhycxw72jhOTlGTQ40gc2/OtsIdHpgajjbenWw7YgrJpXIZJmbR8XyXBYPlDo0LF8X80GoC6yeV628qmixJDgQ7qIVhxXNeJxA8OqC1s8gFBYpL2r6NAVDiXNOOFioNcw== X-MS-TrafficTypeDiagnostic: VE1EUR01HT064: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6vHAvD0V8ZiV3+Gy5HmkzcAEennVVGLvq1GRZKejzJxjSUCe7vgOk9DosJolCJ6/jZj0YQKrZTMbTaYIXdJ6HJebKbfDDGt2mJNKvTAbA2fYWbcJfNC3KhJo7n+07KpnJk7YtnicJb2GqMmScciMPKqFAo9S9tzlLlac7OKj0ZsTc2ZCI0QgACEViL0CUS5oCcGkf/QvDPW9Ygyp7WAGtngSmoaGlRPyjWKcxHjzW9FVsMXl4GGg0CRylOm3SJWLZKXNJscM8nuAqiGDul3SKN1TJ9YnlzA8mYtJML5jJAmyaoU3B4EBiYXkl2FWzKKcAjDrHfVcHrZm/yaiDbQAcvfvSwtPDLZRbki9lDsDW30/mKYlJH9P4rM7GgRpHjNhlGpFtPajDeYrWwYwdFG3nQ== X-MS-Exchange-AntiSpam-MessageData: DSrfdAJhJynDUT7n/I1Ie0xV/mJFEzMX6gyexVsmrDPFBRVdm1yhv9V/r5OdPFEL3yXFWHmr0bl0ZPtgNnANUxWqN28c+mqDgXcsadSCxQVmGCQDhGD21ffBHPBJCNZdtNwI4bm7rz2F2pztP+nD0g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f105437f-bd32-41d3-c604-08d91c39589a X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:07.7106 (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: VE1EUR01HT064 Subject: [FFmpeg-devel] [PATCH 07/39] avcodec/libopenh264enc: 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: vfmqN0BU1HPw Here the packet size is known before allocating the packet, so that supporting user-supplied buffers is trivial. Signed-off-by: Andreas Rheinhardt --- libavcodec/libopenh264enc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/libopenh264enc.c b/libavcodec/libopenh264enc.c index 54babc3e97..de4b85c411 100644 --- a/libavcodec/libopenh264enc.c +++ b/libavcodec/libopenh264enc.c @@ -30,6 +30,7 @@ #include "libavutil/mathematics.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "libopenh264.h" @@ -404,10 +405,9 @@ static int svc_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, } av_log(avctx, AV_LOG_DEBUG, "%d slices\n", fbi.sLayerInfo[fbi.iLayerNum - 1].iNalCount); - if ((ret = ff_alloc_packet2(avctx, avpkt, size, size))) { - av_log(avctx, AV_LOG_ERROR, "Error getting output packet\n"); + if ((ret = ff_get_encode_buffer(avctx, avpkt, size, 0))) return ret; - } + size = 0; for (layer = first_layer; layer < fbi.iLayerNum; layer++) { memcpy(avpkt->data + size, fbi.sLayerInfo[layer].pBsBuf, layer_size[layer]); @@ -433,11 +433,11 @@ const AVCodec ff_libopenh264_encoder = { .long_name = NULL_IF_CONFIG_SMALL("OpenH264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_H264, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_OTHER_THREADS, .priv_data_size = sizeof(SVCContext), .init = svc_encode_init, .encode2 = svc_encode_frame, .close = svc_encode_close, - .capabilities = AV_CODEC_CAP_OTHER_THREADS, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_AUTO_THREADS, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, 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, From patchwork Fri May 21 09:17:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27861 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp340281iof; Fri, 21 May 2021 02:19:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxiFezrPEirYjQOF+Gs/FzeddKGh3ibaPdAHEt4gIcPBQalBRz9sJM18/xgCCbaO7/kbbKu X-Received: by 2002:a17:907:2071:: with SMTP id qp17mr9289124ejb.15.1621588749648; Fri, 21 May 2021 02:19:09 -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 q2si6503945ejx.698.2021.05.21.02.19.09; Fri, 21 May 2021 02:19:09 -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=uhNoQmXx; 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 BD1A9689C0A; Fri, 21 May 2021 12:18:15 +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-oln040092065097.outbound.protection.outlook.com [40.92.65.97]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5CC5268990E for ; Fri, 21 May 2021 12:18:11 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m1829O3OpdspWOcfFthDOB9UXaPuUmF1cBt8CDIeqgVOqzBNnHu58SPlw7cgotBGIIR0fuZ+H3WkRnJ3Z9D6B7+QQ2NBfWoDBe4jttq1OV7S2KficeYVLNWg7NqJs3L9yxamIeRFlQM+UHA1c6WlMnpPJmnLfY8FKbtF5bNZJcwuO+/jvp/k/PKxon6q3DIiQN+SSfxfzieJp5nEH3+6kmNT6XRGnp1QU3MMoEpgeZkfQnTi0/7s7gVpjB6E40eD4yETFRsl0o8OhCglJl4AoOveL7gHxb7XZ0AAJTfmlNyA6nlpOgg+p9oeaTG301N5MDU9muq5pPP00Cw4Vw9EUQ== 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=TqmAlT9HwBv9IFtsvRGe2678CZS7WwAkupckcFEarQw=; b=nNyYOYtrt7MUbc+8lQnf6YqCib/Ut/CUulm2NK2cf7E4eJDNx92aS8n3c0u8KncOf0EaqfeheEyGscy8gXnMtmaupdyo111VDeN1bjaTajwK3DJW2kdxDaE2v26OzXdJ077MuiO4U6R/EWVkx4hk4NfkdHbMiY76RV3wdQhImZlN//Z+cQEvrQWIoBIotsd9BrdKIZzlJ06DHq3yfHCrKTHwykuKcfPNjHg4CUb141rnTiw9x9YgzbPV2cKwNGRO9VBLekVXmZuP2EJlj6MXecYoAWMXT/Q78cwuRJzRoDtweEDIpmBCaXG4CWpyq3JoLYN2gkADDvxDDSMi2Z89rQ== 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=TqmAlT9HwBv9IFtsvRGe2678CZS7WwAkupckcFEarQw=; b=uhNoQmXxP/907jhx5olZ/TjoC0pLM+cIgwvgWOfV5gm/jNCNRcI2eCvu4ZW9JSgdhQEPlh1QX7OKnXeBzDJ6d7/XNyD3VkJBycEPVLSryr6SGTE7tjj7wT6nYhwM38GG93Ccy2ovwcAPKOTlAdvzacP8+lq7FbBEq/7SBv88aIK5kZFNWigojDuiQL05hoFqeOWgU0nnVh/amiC0hKqxhFlMYKQG7gwHfG2HuAu3HNG5UB+KWj1f8Uw+Tkrx6sBWzyxhFb96cwwhyogv+j8flO3Ebj69PUwGHot0FMoi0tEO3FtvaqeWhpXpLEaXPuJbowJ/mLAlr7G0XORzJQ0dnw== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::4f) by VE1EUR01HT016.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::276) 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:10 +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:10 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:3ADE530CBA6CE426717FA68C85E4E45EBE80764CFF667959A87B2F18585002DE; UpperCasedChecksum:0F859CE6F9132450C9313278B0D9FC8CC479D3DF310143CA3053D122AE5B5CAF; SizeAsReceived:7596; 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:10 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:12 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [Gwh3AWx2sP+kDRuF9xavzJJgd6wGF+5b] 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-8-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:09 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 5d4c2199-9f74-475e-f5d4-08d91c3959f8 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfau5nb8qoyArkSFKVuILsWF0AK6ifq6TpUbgZA+J7h1p9XVQlba4lV5mhX1wPI4ZahDNqXwIfA4Kn0Z/8UyeWHmwBRRgyVua7VavQZOPZsuylVRreb6X9+HPLClRrnFp5ASRtGh6E8ftTcSGSr1PiJ9bwamVah6t4009CnLddmeF6Ae7UCox2HsN8z7ojNUzo5TA7uQ9+JlZimHb5qUqpAnIssix2CQv0wHjHt10NPRdkFxamJ83v/u8Hn1ABKabFmknzx70r/OtLdDDZlQvawbGkhw5ZfhbfaOWbIWdhgMcBYThH13tgBZNNtwkeGO4mvgnxvddmVJTRwJfTwqISOgSE+QtkbIGjouevcEK7wgyEj7no341QNCjKBm4vxQ5Vy2R/YrlHGTJcPHKPXiYd70MU9YjUlh2NL1izo3zpaiR8b4Nia1MHaiLDMTqdZnMe0mt4GaMvDP8VlWotEVEOjj0+1rCd2onkB/HcThTwD6iqrJmj4Rb0HVgrbwlzY/+cyKj+ZMn+5YjpwyoNLeuevlq5PC7WOYuq/YYXBh0enLWFVWa/wO/JnF0uS83IQRs52SC8kHGZxnTelWIfD4KTudg57x2BDpns7u84pyPHRe0kaGG8rC0iuwTQB9k72pYpxwHRh63dXfWHqTBJ+XInoGjJjdw8HHOAO+LqlmhhnkSs4Y+Xw2r/ryvK+NbnzT0CduUOSGHwcq3Ew= X-MS-TrafficTypeDiagnostic: VE1EUR01HT016: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DEkm+ehZ/Hwz1Hg579AOaPPNsIPkmJpRQTtDPHTxSjhCMbz9Ns8kQiRSI5x97MsOjqwGVax1qAAJAmpZwaYKKy2zqPIOAUuHnw7T+r+OmIwxLm3RqJaomM5IcW+vLPXdlfa83cVfWuU+yaqiTyERgxKHPHgxAZsgFNFIdWERDMKEC7YWmsW6QZl7OIYtpq/VcR7T0hqVZw86Jz2csiO+QAGuLREH6F4QqAkhyoObuudTfo3Y5K/BdKFN8ajmza1Kq/7xyV8acF9IZnZwZTO5P1Re/PelSICywE6O8iD+BGmoptECfXuNb8R1rHBK21Of2g6HqFAi6SzVsvOoPFAv0mPHyjBMnKy2TSqx37QeL9Wpc4tFL6GICflO3Ot3sf3DYU3Us8Zs1ZQ66JsAERrHGw== X-MS-Exchange-AntiSpam-MessageData: Y+qQ3LWxyKPQ49uw6+v0rE0QxwELLnUQLbQKRdNCTyw2s0cSdvT8N/gND+xCp69DCTs68vpc4RQca4g6sBs9V9RzDK45tSRmvq90jXOTBsckzZSqwuCAcugCiPIorqZ14s9WbFs8p6oWXHUT+b1Pdg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5d4c2199-9f74-475e-f5d4-08d91c3959f8 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:09.9966 (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: VE1EUR01HT016 Subject: [FFmpeg-devel] [PATCH 09/39] avcodec/libtheoraenc: 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: rPp/xTcjvxbC Here the packet size is known before allocating the packet because the encoder provides said information (and works with internal buffers itself), so one can use this information to avoid the implicit use of another intermediate buffer for the packet data; and by switching to ff_get_encode_buffer() one can also allow user-supplied buffers. Signed-off-by: Andreas Rheinhardt --- libavcodec/libtheoraenc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/libtheoraenc.c b/libavcodec/libtheoraenc.c index 057cb9f026..a74fab9eff 100644 --- a/libavcodec/libtheoraenc.c +++ b/libavcodec/libtheoraenc.c @@ -37,6 +37,7 @@ #include "libavutil/log.h" #include "libavutil/base64.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" /* libtheora includes */ @@ -339,7 +340,7 @@ static int encode_frame(AVCodecContext* avc_context, AVPacket *pkt, } /* Copy ogg_packet content out to buffer */ - if ((ret = ff_alloc_packet2(avc_context, pkt, o_packet.bytes, 0)) < 0) + if ((ret = ff_get_encode_buffer(avc_context, pkt, o_packet.bytes, 0)) < 0) return ret; memcpy(pkt->data, o_packet.packet, o_packet.bytes); @@ -371,11 +372,12 @@ const AVCodec ff_libtheora_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libtheora Theora"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_THEORA, + .capabilities = AV_CODEC_CAP_DR1 | + AV_CODEC_CAP_DELAY /* for statsfile summary */, .priv_data_size = sizeof(TheoraContext), .init = encode_init, .close = encode_close, .encode2 = encode_frame, - .capabilities = AV_CODEC_CAP_DELAY, // needed to get the statsfile summary .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV444P, AV_PIX_FMT_NONE }, From patchwork Fri May 21 09:17:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27886 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp340409iof; Fri, 21 May 2021 02:19:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyrJiMFzB6Ds190SKTlyaXUVsVWjVxxBEtvFvy1XxbQBItcomlwERe8pLD3p2riw27botLM X-Received: by 2002:a17:906:5d0a:: with SMTP id g10mr9161076ejt.349.1621588761252; Fri, 21 May 2021 02:19:21 -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 df25si5185708edb.200.2021.05.21.02.19.20; Fri, 21 May 2021 02:19:21 -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=lFWHodRu; 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 B27EE689AFD; Fri, 21 May 2021 12:18:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064073.outbound.protection.outlook.com [40.92.64.73]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 483FF68993B for ; Fri, 21 May 2021 12:18:13 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vy1u1HJ27cyeif32jjYdHfDbMllTRpfoqYKPW+fFfIWIKIM4ph1CV02ObHrmf18NX0CJhhqnibgQXzvdYJSU/HjVfVHLuBAiaTfYNcwxF2ciO6wt3O9oJVMS0Jg57kOPdFhHWVCo47l3e8GUwgIXGteJoFbPtC9ioT7hzTV1LCKzXoZmXVn/qYXNz61w2nwgYiEafklINsHN9YuH8FfbpGIr6J2kLNkeh9UO3fLofXN6r+eTuouAHhPAsWJJDiIl5fcJktYF2w2gEQumPUylTS07ZKT+aPhybUXICLTftq4ODkwo8Fpk+XkYMTuhwrV/DC5L8efFDkD8etRLE2NBnA== 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=mbJqWjCLo3Te7rQdGePnn7WWYZezlWl40089nlYStsI=; b=AWNKGKqbaFTpHuwxkUbN1xdMvB8yH/1mfO62WqTdTv+aI08huSZqWQNKXkNL/dcBmzKmT/k5+kvTizzz1Q2M91cp8f6ywZMCB5pHbHuULx2KMNO3IuGlpx9+OXBffmRyd+/k6Q6rRtHRwSQ1GRyMHQWG48Vktt3M2VEdPJDBoawvnWsDnhtyJUzv4cJA+PqDVLdGI8dt2CqdBpeHifFg1BScSDo1ISPck0OJlUWa/RqOfkh9HtYPHR6Wocx4y5Omh2ekNCoHHzV/UDpHOebHNVjwC9L4Ia4r6oOhmviVfd3RZQYcBRzOqV8aH9T6kdaOwenvhwI2y9d1PEb2F/sSvw== 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=mbJqWjCLo3Te7rQdGePnn7WWYZezlWl40089nlYStsI=; b=lFWHodRuJJxmOA/zrgZEzmoQf4q4DJMK7AWl0fis2X9FnBI8nP2BcuMTyNOLzMgld4BM8ZnNbYWjO5WxEaMLz4gXMzJkXtjmK2izwoEjRw0sDgWS6UIJYHVfyaS0Zf0vVovIXX3OwUKABZxUfe1nG/G3XH973MGmcCyJg5RehO0kKEymTyfpkH4I9+SxkbYKuw26STRR7j1bm7wVRlZwW5HWo12rDCy6DAI53o6VZPYiUHHB9AFqwwCPGFZUoStHQ6qlfrb4tDfbt6aRRe/1moo4EjU8v0qSMXTb9r5Xp+De/DvyLHqNXUy3aVKHELwUfPB0YV52yWQvQSNeHx9F3Q== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::41) by VE1EUR01HT073.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::297) 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:11 +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:11 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:966F40A6AA332F2258D2AA4DD1468F7550838EEFCFF2A699A7256881241A59FB; UpperCasedChecksum:F8B3E260ECDF12471729DA5DD021E74A8228456E59E00A6549A7EAAD0BA5A53C; SizeAsReceived:7595; 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:11 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:13 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [hSdynToKhJXBZ1UJg9t398KNYZtgzIvK] 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-9-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:10 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 0ddf57c1-cac6-4424-eecd-08d91c395ab5 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfau5nb8qoyArkTpid85orbTVt7EV7hFOz3hhHyw5pNtKP/+IZqKK72ZChuSnyLTroUhVAbY+OXAdx1sw61Lw3L5uCVhU64E3Rr3P5z62QgrK+Dy9XKZ+YKiO6AN3MsgIO7kjVn6i8wwcMQ/uHlSH0A1pFwl+L/786Pir8gzixNBfu+uNzPpAfeGqDaNXSDj8zL1KIIFwK7dTQTtBvhmaeNfj69cw2pNfLGPJUBVU/J89rjahGT0vEeHcaksem5XGmVzxZxaVs6yb8VaUl3h/dtJUH2FBXnaqXozduV360MPGSdBv4DWRib6HUxtsUXm/KXnpsJH3FclHmG2rO0wdhIvtLKcstBe/i0spdk2S87x5wdIArRO9/z4IUjsqh2mnJlgQK41MiApul/Y4kauUMCxFwNONqPzZS3IfKSo4b+7KPP5LjphkqPJwejBrWmUDQ21RMRovFWCSgvZA0wnfgCrMerqiA07/lfr0VYMYdI+EbKqGgd2HZl1A+xJpSRyayfrZB2i1ewHBzMmKBP9qybTijruuMBgppJ5eDjZTGC4vcKLsWB/ZqcCop+T3b6NwL+47gWFPMrRk5PkZDOpL/0v8MgOC1YClgMWZnJapHh48qq3D3NbjR0NpaWAkoLshbC5MEszw1kO6iVw5rBSFlaMaSMQ80x55rAZoHPbgH2SgghmwrZdbzTQAULXTCRPG7PeHnUZEnoSPIM= X-MS-TrafficTypeDiagnostic: VE1EUR01HT073: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Jdk4ASr3eCo+Pn5aVK8vvf/RW4cDpLcwqKmTaBy3dkZF04jiayTrb1tUY6kBqLk5I3A9gwAMJg4h4Yk6PoAPLBnvsxG9GvLxgqpgT59Tj0zAje6/beF4I/opvfFjyq/2Exb9RxTG9WOg5aNqPT+A7yvSLfl1BVWKynFxI8xERdo+pFA/K3Txc5wI/ZA0J0/iHP6VXXUCEGUF2s92FKuk3T/XNHkcbuzANjinVjvQ5xWAh1S4cBnBgkLNwLnHGyHY+1wB2CIRFHO6EnZ/sIMng40EC0Pvpb/Ob8qroyabkCwIo0sOZxPFHYMRSyXNEIP6e4/UXrRFgR+qtVb8pBIjx2UP3+rj9WSi0+TFwf6Dwz13JNjd9d1SLlRitGgcP6n+H1thBlRhxjMa8RHkR1YYIA== X-MS-Exchange-AntiSpam-MessageData: qoYJXSUi5jWl9Fxm0WAP/3XmSQSljtIMDNw98QVehXteZQC7xkzmD4TOlbo7riL2zCq0G/qt6N1MZsFgPP1KNhfS1PgLn3NDFJmTZxA7wgJjlGERuxUVkSYDQxOGZGzjIXUFzCpCocpqxuzfHGpI+A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ddf57c1-cac6-4424-eecd-08d91c395ab5 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:11.2800 (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: VE1EUR01HT073 Subject: [FFmpeg-devel] [PATCH 10/39] avcodec/libvorbisenc: 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: tFK028WW9C3j Here the packet size is known before allocating the packet because the encoder provides said information (and works with internal buffers itself), so one can use this information to avoid the implicit use of another intermediate buffer for the packet data; and by switching to ff_get_encode_buffer() one can also allow user-supplied buffers. Signed-off-by: Andreas Rheinhardt --- libavcodec/libvorbisenc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libavcodec/libvorbisenc.c b/libavcodec/libvorbisenc.c index d0f4c65aac..ec674695d4 100644 --- a/libavcodec/libvorbisenc.c +++ b/libavcodec/libvorbisenc.c @@ -25,6 +25,7 @@ #include "libavutil/opt.h" #include "avcodec.h" #include "audio_frame_queue.h" +#include "encode.h" #include "internal.h" #include "vorbis.h" #include "vorbis_parser.h" @@ -348,7 +349,7 @@ static int libvorbis_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, av_fifo_generic_read(s->pkt_fifo, &op, sizeof(ogg_packet), NULL); - if ((ret = ff_alloc_packet2(avctx, avpkt, op.bytes, 0)) < 0) + if ((ret = ff_get_encode_buffer(avctx, avpkt, op.bytes, 0)) < 0) return ret; av_fifo_generic_read(s->pkt_fifo, avpkt->data, op.bytes, NULL); @@ -378,11 +379,12 @@ const AVCodec ff_libvorbis_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libvorbis"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_VORBIS, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_SMALL_LAST_FRAME, .priv_data_size = sizeof(LibvorbisEncContext), .init = libvorbis_encode_init, .encode2 = libvorbis_encode_frame, .close = libvorbis_encode_close, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_SMALL_LAST_FRAME, .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_NONE }, .priv_class = &vorbis_class, From patchwork Fri May 21 09:17:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27869 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp340483iof; Fri, 21 May 2021 02:19:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwS3nuH1+bu729P78yByV0eJE1r2l7Lfe4YJrfyQz2DynyA7XfKZVJDMzHNhm1VtA/glCiF X-Received: by 2002:a05:6402:2691:: with SMTP id w17mr10282748edd.140.1621588771163; Fri, 21 May 2021 02:19:31 -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 h15si4959619ejt.69.2021.05.21.02.19.30; Fri, 21 May 2021 02:19:31 -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="FxtyY4B/"; 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 9C374689CCF; Fri, 21 May 2021 12:18:17 +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-oln040092065039.outbound.protection.outlook.com [40.92.65.39]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 33097689A91 for ; Fri, 21 May 2021 12:18:13 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F+fdcYmT8ZgA9eiB42V51hC9nqpoP7tg9XNZAqxKSvFkj41xV2Ef3+S1aHsQxqx451muXt769KmjXKb8cXi0+oBH10cpYpTJncevgREIlgFggANdY7hLph6KtpqxkWCrZl8eJlN+8aKX1VD4EoIfceqoKRgPhvYIZLVmaPF/WF+sz64oyZxr845RzrJ5NK5QEtlAhMcwjDezZ0ijuPZh5yCcveNV8JBgJNbEZk51P58k9BTBPQ7ydR5QuCVv+rcVndEaChBTz4Xd2HVoMMHN2c0WhvVcwy6NuV9T4PZRSrDZZMqJegxVYNpNhXNYFNq84hXAX4Zq7s0KRDAawcescw== 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=l9LxuugfZBBgHGzU2AS3FPXBRN35NCcCFHnd1bB01o0=; b=gqzRU8cSGSz2oeEXIWzsQvLwufEY9n3mYcnx79Szb5I3xYE1jYYO7QxShePAX5w3n+/CPTDPHOO77sp82WNvDjGPaIWono7Mb4TF87KRV3E+ifF1AFpRmq4ksRD3cUOe218NfKPEiil1bE/+BE53H/GQycjP31QqJR7qS5lbUHknTfQpu1nbBcdoedXEJvuygQO8gxp/atLZDBZbTReTF0wzfRw6MC+Xs5IkwY4nFyEEFEFs0i6zWTAZLLlvKD1VD3lpZc+Seez0Bkl7O8PzrSFJp0e8YPIWxRa2pOBTE1PDXuPseEvftHRoLaM7ex3Irgh5v5lDIT+RV576zBt2iw== 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=l9LxuugfZBBgHGzU2AS3FPXBRN35NCcCFHnd1bB01o0=; b=FxtyY4B/q8PSfaUQUCScxg9JFrWCswHllTT1efUZoitk1aLm7/m1W9DpwyTJ50OPUhFZbUWfOsKYPfYt6Cvog3ajK1x8SMQkyBxLU32M2WSxxqBdeAVOoxu8c8+ZLEEZ2dD4DJXmRlAjrSF9thVIZSlYMkVBwCSgbuf4ekh4FHzn4xypXK3iyv4WYBFsHQAlYlWObNLkhkvytho4xNwkFzr86XHOtml5gd6KIG5PbzeVlIhuBm+lHNENWdfyv/AIXp5Q70bXybMvHcuRmCJ/JS5NgafkxBkQQiKwnZc/4bAH7AKVQYL0qyfW9046oHTcoYjaJ5CuWlt9KeKbyarWTA== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::4f) by VE1EUR01HT016.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::276) 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:12 +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:12 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:FDCB1B3A7F3EA480D069F7AC303D1441A5D97F82D6EE3024AC0EBA19903424D2; UpperCasedChecksum:1C1041684771704193A75CF352C75AD4F664D974A34A027E84EDFE81C3265A72; SizeAsReceived:7603; 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:12 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:14 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [DBpnGkRCaCqp9ECOCL0FT/Z6R3gcf1rj] 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-10-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:11 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: f0148caa-cac1-4f6c-9a0e-08d91c395b69 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSiYaxVAPXjtBLAGaAm06UeinPAOcakI1x4rZACpuzIU2/ugI9cbZjGmJYDafTEGMR9jQVsdac6mbmPgJlHBSdgbm8nDGzD7jVKlWsZE2lDXhWxbHP9k3BeojU0NlW3lk/3BAN7jjlNVJJfRA2nsTsBgqalmnQAoQzKqpNUlZGc15ACS8UV8/7ZOVt8EZ8531bEazNfj5rxUH+jlaGK+FyZZlhPqbDDGhyAeHvEHgLMzyxQWoreP2OuSHR/9wNMYhPbtJQ6o0B30MRhmugP93Ds13uqCTRjgwjk0NZZTlShxChSGhcmqJDotthBHJru6qz6LFLS+EcRXef7wb+V64vagmBfw7IuINbHCDiglQQxyiLK/lQNVB1+qAMV67o7yEmVrnRAzS8veO5mqIsolDuxYXGSaOm9ofccejCjNY9wr0E63SlL+L85iGxxRuI+eKF8OXdjsYMjAjP/q7iZ6ZJAlcK9O1/MReDB+jjNwsPE9sQluvwUZu6p2MKnfbBmcyHhLv16yWD5biA1BPHb5xnZW0n8sNEf1Ds5GOXUgwt++6zkpIjycd97H+RcBNnx6zf96Iw6nt0FI3pZ/I0waecVUzpBPMyVm8Wfd37GwzmUj+CdhchGE2OmXNMEMpQ9vz8JX2E9iX+1mv/sLZbCPgwNHzLYFjQwm7z38b9809f8l79IAjko6elPeYUdfs+e9LPmXC/gkZrL6w5YlMLp7cLwwSxm0O8pjYzndyJW8OPP8IDmjb+0akowiIlweU8OWzg= X-MS-TrafficTypeDiagnostic: VE1EUR01HT016: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: K5d0cmcjwPzyyigbKskbZ+oeuX5hKP4Kw5CFPKWBJDwaakTvJYp6pg+BuAFv33caDy9Ta5I/sUkkm2U8rEww3KyBjoyJJ64drlEFS6Jt14FPgP8ld4QrM58nEVAhPe1rSTk3TMM24/vf/J7/ZaSABBMiP4G6fPYjcMIB0Ylv3momwDWVfnSjXNktQV5SLE28D6r7XcOs+bgMzlqHZwwyz28OM5SDctlJFs9b6eiUQGVgDgWum6/gSncRP+RvSHkotzx6KLIfiN1S61Cp/2awghvJklK1GoStRFWdAUadE+adYKtqmkKGgBFbxbJu0qa54rNTvjLv/BTtyWvLPnUsUv0jI1in5bItlbojw6WC5mOkFw5nTyC+1ruGdGOH9jHLqYgMmoBug9b2O+C4rRbktQ== X-MS-Exchange-AntiSpam-MessageData: YMhBN0IIFYpGNHGKLNImgJut+/Si+kUheA4ED4CPW9tCJFFYb7jqptYhdRrQvJL8Nc54QGPvaXiQ7r4KyzMcBRLpBwS7eMFykjiRHoNa9tPPta99UroPJHvJsKP1dVzzXmmyQQThBeFqeSmMMl0Xrg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0148caa-cac1-4f6c-9a0e-08d91c395b69 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:12.4575 (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: VE1EUR01HT016 Subject: [FFmpeg-devel] [PATCH 11/39] avcodec/libvpxenc: 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: 9Nt+tpFMwVKR Here the packet size is known before allocating the packet because the encoder provides said information (and works with internal buffers itself), so one can use this information to avoid the implicit use of another intermediate buffer for the packet data; and by switching to ff_get_encode_buffer() one can also allow user-supplied buffers. Signed-off-by: Andreas Rheinhardt --- libavcodec/libvpxenc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 8173af5dce..2d9e56837b 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -29,6 +29,7 @@ #include #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "libavutil/avassert.h" #include "libvpx.h" @@ -1173,7 +1174,7 @@ static inline void cx_pktcpy(struct FrameListData *dst, static int storeframe(AVCodecContext *avctx, struct FrameListData *cx_frame, AVPacket *pkt) { - int ret = ff_alloc_packet2(avctx, pkt, cx_frame->sz, 0); + int ret = ff_get_encode_buffer(avctx, pkt, cx_frame->sz, 0); uint8_t *side_data; if (ret >= 0) { int pict_type; @@ -1830,11 +1831,12 @@ const AVCodec ff_libvpx_vp8_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libvpx VP8"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_VP8, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_OTHER_THREADS, .priv_data_size = sizeof(VPxContext), .init = vp8_init, .encode2 = vpx_encode, .close = vpx_free, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS, .caps_internal = FF_CODEC_CAP_AUTO_THREADS, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVA420P, AV_PIX_FMT_NONE }, .priv_class = &class_vp8, @@ -1861,11 +1863,12 @@ AVCodec ff_libvpx_vp9_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libvpx VP9"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_VP9, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_OTHER_THREADS, .priv_data_size = sizeof(VPxContext), .init = vp9_init, .encode2 = vpx_encode, .close = vpx_free, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS, .caps_internal = FF_CODEC_CAP_AUTO_THREADS, .profiles = NULL_IF_CONFIG_SMALL(ff_vp9_profiles), .priv_class = &class_vp9, From patchwork Fri May 21 09:17:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27867 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp340724iof; Fri, 21 May 2021 02:19:53 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx5ioQIizMPbiVWm2gBeEi0BpHjnfVXYYID+rYGMUGMC+6S+OhwA4v1U76Anw9E89dy1ODe X-Received: by 2002:a50:a446:: with SMTP id v6mr10251372edb.254.1621588793047; Fri, 21 May 2021 02:19:53 -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 i19si3403794edc.501.2021.05.21.02.19.52; Fri, 21 May 2021 02:19:53 -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=h6l7gBpd; 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 B2A9E689CE2; Fri, 21 May 2021 12:18:19 +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-oln040092065096.outbound.protection.outlook.com [40.92.65.96]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A814A689BDB for ; Fri, 21 May 2021 12:18:15 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bCT+z6NA5527lABfjcvUH1uMEdTG23OHud1HO/eH0nhbT9AhPEblgmwrKxKvy1f+oRxn3qg/PutjOzynOMgCk6PTF1UQEYqbZ0DIuuOv2aFb+A3ANy+uJzsrWMYc6VpJlud7MUtiWk4STAydT6HIgxdkRnUt4iEa1By25Lho4fibwKGb/h6I3SOYrH3EA24BDzgZAicu2UlyJLrjQOqvx6h+OBl0kpQKXWbk5+5iXDPVTAopApi8u3cW3rUbRJAaGthGlGOjDFhaC1XGPJ3QmVEWlt6xVo8vqaPcXiYQQQWMANx85ZzIdwAVQ8TRVtl1SFDfDnUQLBIDFb6UiDiAjg== 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=b3tn2M4Wme27iwdu6QUHbfXRrAc2vWMNn6pqcZr7O2Q=; b=oNSj1fN/1FNTbEApD/UpWfeuOWlSlYGVvlnY4Vm6oi8W8586T3wZqn8yylB57lM0QoSsr1GvK0q42TshfltjLOpXMT51SJjwabKVbqCB9jpUyHKDWmKYq3rPp/oDhKqzsfzGVJFTSk2d7E25MadS0JClhqYmZbLDlmWddyjajToMoc09OH/niBAPEkxHKIQnK6tKuv4yvGULqmAVIBg55fif0BvYrf1thbxYlc1xbkp+euSp+ZCCV+bFmS+GFX+VNmOuYDUABjsDitNRWX7JTbSJUyOAPBaqe2dMrbsmk/3ULQ15GNqnYgDKdI8B859Qf3Em+fRFrOmx5x2jGO3Npw== 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=b3tn2M4Wme27iwdu6QUHbfXRrAc2vWMNn6pqcZr7O2Q=; b=h6l7gBpdwS6wy19HF77AsQeqlcEBDaOrbMaGVBfFD6wZB/8/fl2PY/y2x/T5wImGe4am7oWtVRqHU5Nzqg33NWlvUkBvJ33tJRle7e89UUJtyNXnwInvF7warNfVBOGLRB5Qymdpcv4xy8sqCu9IiFCwaRQHPqxq6qHz8ntD9lgf1abezPYvbPQSqEZpvx10WtWigi9QaVdGVS35gYMV5oOIV2fBGIs9Fow4Ye8dSaFfXmH/1N/oF1b3YrWREMzdT52BGKsk7F4hRnTyyNtFDWWtIlFb6RonJ5VH3wl5w04rGoy9xhKbRZzGwQ8Oi27YGlpxArlTGKZWiqc4zVRmgw== 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:13 +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:13 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:77D60517C795A4D918F635F4EBE64EEA36FE84CCF79A5927D81A59DAF9C4B507; UpperCasedChecksum:D9FF5FA2F08C82143F57CD68ABDB6A6EDE1C0C872BD6650E30EF5F2A69D52B13; SizeAsReceived:7586; 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:13 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:15 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [yj747ohY3At5VVrcOKub37mBJcOzQhvd] 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-11-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:13 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 35c99635-0f73-42ae-a3c1-08d91c395c39 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfauAGIIh3IpHaFq39f49f8fSR/43UHN5tBT34972iD01bTqQsV7T+weOKwIH4Xjw1Ux5B74H5du49vB68WtgWOH8glRnDNmo+YrBaPOUUVnLhNvmyps733z3zyWZpiUn5jBhd4zeDCE2t5vEGPYrAFzflOU6bSfNCe6dvHv2jG3Mrcckand5CL58q0MDbxofPk/DignFgSG2uQrkZk03id7nxqKEQ7p3iTPWCBbSkCf+IkwrrRnrhwT9X9tS5W1mil/LcAo1gfN0EmCr637GOuvb2/gxdEhzXJxnlCf5Ukpr3883uTZ3ersJ7mfGp2vVGuSCjofjdJadM3cFDGsQUECoUxRNFAbLc687x6UvKtXTJlPixcnPnj2rhEaIF2tBVRCUUtzgNx32eJrK1GWF3DgSvlUG/9c3oIk2/YmmDPw5WQhZEySyhizQFErnmR9VFwzDrMHxXuBtn9IKD8EDdJQs6jFPFdC32zawjsk4KXuwQi3vC2bgWFU0CsnkjxAgDyCDpVVaoStMxllLQZA5+qC2/hAojNZEIv/3lA+vw7qeHONl4ZlegT+p6yurTUq6cHxU/5aSmlY/gIv5E9FweB2BSOuxp2GmERyOEpPGun6Nr66Gw4vxq32xc4dHg7fbeUOBVK27PLtNk7qNBDuusORIUvjZ8Tf4SnDvFE76A+MIxERADiqOWLVc/4SZ/tLq1AnfXjXhqFT33c= X-MS-TrafficTypeDiagnostic: VE1EUR01HT168: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9M+HKJRI+Cc6zJHeXaTEAL3SNVJBCjGdilylMZRk4XdZGDUgXBHXwRKm0kFpNDVwbH7Bey+1oCEHtee5DlLp2sFjH8y9PoOH2GHZukMeRorTpfMQKKJEzc/OIeVzCrXyzVmLG3w80VD4gsOvg+YLQPzhb0OwrDGYNSKxOKwXdd72d6v+Kb+nXqSw456i/N0vvGsQQjH+NusYqADXsXSBwts/ks06bIadKyl+N9T8a6KbhNURHsGexOZ/JBYnsoMo1/ggZ+BxkF9/Xq2/puNk+8mvhppMWf7jnlbGHgNjG+0Q4ysJ5/So3foLYDr76VIEkdmfFHnFPE21Md3grpF102tF0YJX29W9RVUog8YpxQyAp3fTeuggfCNFDx+5blMIHhSY9YqUduulzH7SJhTrYA== X-MS-Exchange-AntiSpam-MessageData: vS0FPs8PLZmux5DyObVVyFJe2Pmag91+v+xUqBe1TVJv4pjeQG+5rmnrZ2MV4hlxZWLMf8W3RKwAlNOS8gJwfSBSBkly7bdYd19dpR8VC6WBeQYvnLtIi5V+728GDUNDPHaoqGWrxnXQC6Z9jKfTRA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 35c99635-0f73-42ae-a3c1-08d91c395c39 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:13.7559 (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 12/39] avcodec/libvpxenc: Avoid one level of indentation 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: 4MwRPvvcJGA6 Signed-off-by: Andreas Rheinhardt --- libavcodec/libvpxenc.c | 64 ++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/libavcodec/libvpxenc.c b/libavcodec/libvpxenc.c index 2d9e56837b..66bad444d0 100644 --- a/libavcodec/libvpxenc.c +++ b/libavcodec/libvpxenc.c @@ -1176,42 +1176,40 @@ static int storeframe(AVCodecContext *avctx, struct FrameListData *cx_frame, { int ret = ff_get_encode_buffer(avctx, pkt, cx_frame->sz, 0); uint8_t *side_data; - if (ret >= 0) { - int pict_type; - memcpy(pkt->data, cx_frame->buf, pkt->size); - pkt->pts = pkt->dts = cx_frame->pts; - - if (!!(cx_frame->flags & VPX_FRAME_IS_KEY)) { - pict_type = AV_PICTURE_TYPE_I; - pkt->flags |= AV_PKT_FLAG_KEY; - } else { - pict_type = AV_PICTURE_TYPE_P; - } + int pict_type; - ff_side_data_set_encoder_stats(pkt, 0, cx_frame->sse + 1, - cx_frame->have_sse ? 3 : 0, pict_type); + if (ret < 0) + return ret; - if (cx_frame->have_sse) { - int i; - /* Beware of the Y/U/V/all order! */ - for (i = 0; i < 3; ++i) { - avctx->error[i] += cx_frame->sse[i + 1]; - } - cx_frame->have_sse = 0; - } - if (cx_frame->sz_alpha > 0) { - side_data = av_packet_new_side_data(pkt, - AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, - cx_frame->sz_alpha + 8); - if(!side_data) { - av_packet_unref(pkt); - return AVERROR(ENOMEM); - } - AV_WB64(side_data, 1); - memcpy(side_data + 8, cx_frame->buf_alpha, cx_frame->sz_alpha); - } + memcpy(pkt->data, cx_frame->buf, pkt->size); + pkt->pts = pkt->dts = cx_frame->pts; + + if (!!(cx_frame->flags & VPX_FRAME_IS_KEY)) { + pict_type = AV_PICTURE_TYPE_I; + pkt->flags |= AV_PKT_FLAG_KEY; } else { - return ret; + pict_type = AV_PICTURE_TYPE_P; + } + + ff_side_data_set_encoder_stats(pkt, 0, cx_frame->sse + 1, + cx_frame->have_sse ? 3 : 0, pict_type); + + if (cx_frame->have_sse) { + /* Beware of the Y/U/V/all order! */ + for (int i = 0; i < 3; ++i) + avctx->error[i] += cx_frame->sse[i + 1]; + cx_frame->have_sse = 0; + } + if (cx_frame->sz_alpha > 0) { + side_data = av_packet_new_side_data(pkt, + AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, + cx_frame->sz_alpha + 8); + if (!side_data) { + av_packet_unref(pkt); + return AVERROR(ENOMEM); + } + AV_WB64(side_data, 1); + memcpy(side_data + 8, cx_frame->buf_alpha, cx_frame->sz_alpha); } return pkt->size; } From patchwork Fri May 21 09:17:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27888 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp340823iof; Fri, 21 May 2021 02:20:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwhSvQSArnWgAaoUSEhUtcNiL2TBJnVEG/50z4vYDtVLjcIFzcHet9WQeePHqe7KGzuvOSq X-Received: by 2002:a05:6402:2788:: with SMTP id b8mr6828706ede.335.1621588803100; Fri, 21 May 2021 02:20: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 pw5si4919461ejb.531.2021.05.21.02.20.02; Fri, 21 May 2021 02:20: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=lTAI7MqK; 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 BDC6C689D21; Fri, 21 May 2021 12:18:20 +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-oln040092066076.outbound.protection.outlook.com [40.92.66.76]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C8DAB689C1D for ; Fri, 21 May 2021 12:18:16 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LpWvNoqUdudU+1pQVH6bp92WvuoLFWNskta55q59SyYV9sbzcus/nKDmDjFbQhsjDhu/B3GyYRdB5N5SndbfA9LXJA4/np/Gdpd7+3pNv1s1yD4qzDM7Uk6w3knCnLJGQAFucyytqleI5p3d32A7a7QtFvkRiujppLSfFT1MXvHiE53eFj8HJzFpG4qU4buwKiE3QlGxNWTM34Exjs8OTXjjMDtCUmdjOEMQIIarLSHagEcOPPb/5OSuorYYAGgScd7J6ebdEH30W18IX+AJrN0K1Ju4lqK/1zOnJMOQu4zmaBZUAAo/T6U/3wt4rbksqSQmfcqAU3YEU8in18Ddww== 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=WfBMjATnUpvsVOE7Hv5y+6YZrLN58Z7AsiQRz1xdnsQ=; b=nhN6NmeuLuLy5kvdEqjKu/ONzjaNU1CZHNSUGDxPi6728rE7XirwuBNaShLB0f3q08qjaLjalws402AqOjWLiIXIgPWkJ6JSjhjGs+ES3JLJRnbvSDBTKWEr5KW/XiKqzyIqYd59E+B5vSQQEmgtIgIykOZprKwqA43TNeT9HFanu7nabehFdsyTzbBG5ZcO5rKc3rLZ8xGfzdB1wfAmFKUnfmkWnbne5nSZeuKMc8l6oRFo8Db3k22Jfoas5/AYkWUw7WvGXyWPjRBRSKsAHTtbnwj4pHIJte+i64dSY1awNpG4Wb2pebnrt+4wmNvTvhUAq+1GAmwjcfxs2/L18g== 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=WfBMjATnUpvsVOE7Hv5y+6YZrLN58Z7AsiQRz1xdnsQ=; b=lTAI7MqK2n99jF31zN5z/6p+oDQiPdaouhYLsbTmIxPyZ44wixVK+YGIGeitUySLMJ0yUrf+03VUXYDeiqPiyf7CB7SiIfwY8Z1P82lNHBVa8dWIPXhW0NpJN2sHC10uBRxEl7y46AcmENFmmWlGTtReNrwe78H3emJO8SJsf5cmjXMchmvpuuRKYtgsJeoSNK9nNGfWAyoLykeX4OlWQ1ZGQbvgf43AlHcMbrw+Pg9AmVmSNbC+qmw3pmZpF1aMARL8thlM3B8uy5TO+8ZwDJdWhAbP2cS0LuzKtCz7fqNsLe+0oZy/KxPrZ2nLBr3N1Pe9mDxGKkD/Xbi9k0rCRg== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::4c) by VE1EUR01HT043.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::268) 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:15 +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:15 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:E6BB1F0EFF08D6324C5EC93223D741F2A10A29672705CB35793C420141DAF397; UpperCasedChecksum:032BEA6B32438F0C8FEF975BD09B6D42A55F9481C1D21333293ED3553719A2E3; SizeAsReceived:7585; 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:15 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:16 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [ph8W/0paOQak7HyLxh6qJpNznoVeuN8A] 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-12-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:14 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: e5bdb651-f808-4010-60a3-08d91c395ce5 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfauGgBLX+CNMivSbtevQNSoL6iJ6lQjox6Nd383+LeRNX/M58E4AEaXODeg9Cua8ggiPi9xQdp5Jv2XIff9qOab8cLWOv3+A7yG+R6irR460mMCMi9X1SHZ3hwxzfXKv5DW/JuhfFpPnh17Xx8IBCyDfBOHP1vYBBCLjyw7zbHg1hH6KUwADMWbhjn3jefbrJVcIIyR/3tH5jxfKMTLgKhbZibGePMKbKD+/aEU3g3xOR85SnBLtoMLcnbj041ONnhhLH2yLBNTqkV5gBhI0jwruD41+ahVXzcxTKenK7eddaS0l4CoT0Lx0wntZCyh1QyEC26LBteRkOc6sOxFNS/LkVNkSz/gyAwIGuJNMjuNTsUdLb2pa4OZ5Qt1FtrNnRMNzyKxlNOFx/UqzeGqVge81SnPGnUmWG3N25UCkiJPWIMdzsStEFsDg4CatPBNTDToZ+T8Zq2xIb2cSnh0udbnm7A+9BtOMN5+dCtLyGvvDUKoqHJ5t8GtmylcoQLlGWbRp8H7uKFBp9U4r/7nG9t2pu2kosrpDWUYUjxclb0Q43/gLGSjOZ+n0XpsyNdMLmNDOCIMyrxUnCGG72a+N7GwL4dixI0UZst2BXgyBOeonBKBiMNuY1FxRLBXxYCUsGsOjxlK/+BiYSdBFhQI3cV+OhIB/L/ew7blaItdUp8y2jWEisyFVk5VxwlQA7p48cwH3wB1tU/0xYI= X-MS-TrafficTypeDiagnostic: VE1EUR01HT043: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PXtr19JX48c0MLSPrFKaFFRpGsJCdIxN/b8zUdaVZ6HDZDuBy4MEhdSlsM1jBtbLDjWTrPdu0ri4k3ou1hDNEKDGfmfoaekPhlQYiW+2c9dKCMS0PgHZB+kcVSncNRkDXVOTacdkN95LukFVbJcNh4wktwU4jQirZp02GSNJi7KoKqj14y/c+3cTBU5DclaUmj6cAkxD2DdvdxEQPBcTESB+JRUmkoCwf6PO8+A+qOQFC1RRRGscf6L8cVExN0xvgZTblOo+bv1EQ9bcKhwzR7G3JxY38905HJz7vEMB+8a+bWB6xcFdjHjtoOekfsPpN6aPga7eLDFO2d2WAHAMscrKz3K1p5OBbTJRm8sfKlGMcVCNyUskq5Urnhavg8DugyWj/Lj3HiqtFMYCc5NJxA== X-MS-Exchange-AntiSpam-MessageData: lowVY1of6X/uBxh/6hy+zxk7yuoyX+61Q6AECgTKby3D6dt2aR9dL7vRpaum0sUui+BFBHUvl2raXvsZBSDwEG2W97hzrLI9m5f4RCoHNS/1jTguR1/jifOL6GF60bj1uqchkLNyL7aSyCqG6OJCyw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e5bdb651-f808-4010-60a3-08d91c395ce5 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:15.0764 (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: VE1EUR01HT043 Subject: [FFmpeg-devel] [PATCH 13/39] avcodec/libwebpenc: 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: N9y1bX4Yi86A Here the packet size is known before allocating the packet, so that supporting user-supplied buffers is trivial. Signed-off-by: Andreas Rheinhardt --- libavcodec/libwebpenc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavcodec/libwebpenc.c b/libavcodec/libwebpenc.c index 2e5b811455..97adacb6b2 100644 --- a/libavcodec/libwebpenc.c +++ b/libavcodec/libwebpenc.c @@ -24,6 +24,7 @@ * WebP encoder using libwebp (WebPEncode API) */ +#include "encode.h" #include "libwebpenc_common.h" typedef LibWebPContextCommon LibWebPContext; @@ -57,7 +58,7 @@ static int libwebp_encode_frame(AVCodecContext *avctx, AVPacket *pkt, goto end; } - ret = ff_alloc_packet2(avctx, pkt, mw.size, mw.size); + ret = ff_get_encode_buffer(avctx, pkt, mw.size, 0); if (ret < 0) goto end; memcpy(pkt->data, mw.mem, mw.size); @@ -98,6 +99,7 @@ const AVCodec ff_libwebp_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libwebp WebP image"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_WEBP, + .capabilities = AV_CODEC_CAP_DR1, .priv_data_size = sizeof(LibWebPContext), .init = libwebp_encode_init, .encode2 = libwebp_encode_frame, From patchwork Fri May 21 09:17:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27876 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp340924iof; Fri, 21 May 2021 02:20:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz0TjzIzZeMZ4qQ32kpsCZqLyFUCEw/q3dDGrP9piMU81Yo/JTEgK5l8kMR7CI2K1TyEqI1 X-Received: by 2002:aa7:d801:: with SMTP id v1mr10180599edq.349.1621588813296; Fri, 21 May 2021 02:20:13 -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 l3si2777144ejd.203.2021.05.21.02.20.13; Fri, 21 May 2021 02:20:13 -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=FXn7WDuh; 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 B3432689CDF; Fri, 21 May 2021 12:18:21 +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-oln040092066044.outbound.protection.outlook.com [40.92.66.44]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DE2C0689CCC for ; Fri, 21 May 2021 12:18:17 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PGPAv0g6yTMOp8DCF0WT/jRAtyOklVprkinFL2r3+lBAoFGfQNp7TZjA2qoQOhxBJkKOaFaDlmrqw/CShc8UarYoNhWOqytZbxn/i8k5U1+rAuIKzYD5NHW34O/BbxG4B5z+j9APpF8zkGcIWwcVxGmqmAY4xgzVvXNF/3T5HGuZqDdYquSp46HIOOnVyz+hRA7QEG3tjFqh71vOr/g4XQfohPqgmk8XkZpMEwUFDHdYq0NNwjTH8Ip96zOCSamxliajpkQJFeLiIpEIFU9LiJ7YFXe8HNAhm92wAXH0AC+RISpHQowiqdT4jWHPRwXRsRyO1iTkjNDoyT++nMHFag== 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=VXmK9BSw2LnVeJCwFtAhl5CWNOAjs9JziBipnKDuuEs=; b=BBfxmhzuY7kf5JUnEQ4Qw1Q/T0wPDDLUXzO3i0ROsO+uBik02eBLEU/RRGJV3btia183vM9xzd0A/BvN+MPN5KjoCfMiF38AG7vNmaS0Ysvqe+VOQtYV/dcOnDfUDxhHT/Kf+VbxgnG6k+EXiY8DMkhclUd/pivcXlHzbNJH+ctmTnsCM6taFzHJWNB6p87SJO/rffBzxOkbpkXADJi4v/HdTUIB9JQwX01fuIuZxL2zOAki86Cnnjqi2d9oW1P9fgOErrylUXkBKtseP7nwUDrqPw6Yv1x+Dq/QJuKL8wCXh2Ue1fprP8WsfcOxfbV2qrM+Zb3YSBI7+53RLpN6fA== 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=VXmK9BSw2LnVeJCwFtAhl5CWNOAjs9JziBipnKDuuEs=; b=FXn7WDuhjaCtERu0P8c4QOQiFYV/N/17HnwcAb9VaQ+FOqyfSUi0CzBtqaUP3cnfUzeMgNveNwiT3FsejBZzVY+wXEoJBeIn3BhI+zG+/4d6DEwksRXa2Eg1iujH745UQH5N3GEt1MlbcDkr2HW1sVMzG8munH8OMEhGvFd6qXd8s+WRyqDBSaD1WajCcUupI8LtXSk8ZCKSxFmMAh+mJh3VXxFDnw/m1weNAlIlACMXzGvBkhYaSNbTO5vlA5Q4aMZ1ubzyVj6EUzzU5OMPcFzIckKl2tNsYF4zTeCYPnJLIJhoI8hsUW7tzyZA2/XsZsjaNyNRnbXbLMGOb2Lydg== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::42) by VE1EUR01HT215.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::449) 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:16 +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:16 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:CDC6A4C26EDF0E10B7D985953EB18F53E510A10B8697F9A713EE4405209729AD; UpperCasedChecksum:1C150C66474D6E1FC848EA1D0DC5F9EA195B710BDD841B5D7CFF867D410BEF43; SizeAsReceived:7596; 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:16 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:17 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [OlB82fxfHyxxCcVq+2bhnotu7KM36JJ8] 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-13-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:15 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: d105b13e-08bd-4559-c091-08d91c395dc3 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSiYaxVAPXjtBLAGaAm06Ue5FPHl9akGyBRjIp4Sy7F7/xaUiGjUMecZdAGUXA6xdh7qOZIoEyUMpdwCZj4ylNlR1XYISV0utOEjng/skCdUJ9iL2U2SyQXvxu9arLl1L9EwzF1epN6cs5adNGdzOKhNrzgrYLp2Q46CAnMh3I2xbzKTVfJ7EEu5C7rBnUpR8J+43IK6XoztUTyGLhG5jAhKkZSuo97IOlM9A8y5ydZmBRE3GS+gVZPgIVJPRndhsRwNYMxJfUF53pGLOJOIYYw9CSYXeA+2AYhDmESWq8iQ02ZQRjvcOEgU8odAbSSweyxjz0bjUsKwcsO099pFgFQr3vYj1bqhkbFi8Ww+W3khU0ur9B0J+TbDIzFTjyZPBdlHtBGlGTdiLrLphVMheM3IB1dsiOh6LlJYn8hWUn17nKm+FUVuAUaDwYI/TyVIu5VMIqO/DQhS2g20OX0MIIz1FGn0P7eulRCZ33gdov8c3d4snDpBI1SUf2rwhWgc7ZK1lVQKh70vCN0yheEzBCF/7yMINVR1Tm9Lm1uYyu681xo0zsDsxtYw8ADdD+vmZmN0HFlRN/hWSy4hPumSifZs2e634BPfZDm04uS+YqXDtMb8Zu1aEudm6wBU4GA9iogSbA1/DjXcB+UbKB12YIcglILJh+tCCK/RvtdZGth2HFWXeENruWOzfBCkIy57LE3ahC8q2Q8u2/1O9zQfONiDwxqk+Yks1e5V4AR96VDSVzhVTOAECR5Gsnc6r+JmTE= X-MS-TrafficTypeDiagnostic: VE1EUR01HT215: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: P6N2ke7HKxoCuyQ3xlwFZFP3OBEWFyukZBJoiEWL91FAfEAsaeqT1KblztOakViJn2a00hvNd4I2tia6IOjuw1hjReiBuclZ8nRvKlWxk6uR9fggBsax/ccL1Rj93hYONzQRDvzioOlrn+QvHbowVCmbeWr1aYZYznJoARO3Rxfl+X6HCQLRVgFam8gLVtQYPlsc0Yi4xGLJ13nyuVIRUxGla6U6BtswCJ1POwG5ERjs7trRHOeWERQMXYjO2z205CN6X4oTkjRLul4IvpkiJLlsSDPgAt5emmEaVGWXjUCmQGuJpjvI9u0qBNgJHY1O2r25YPILjCQpdqRrI2iXnN10kMEyGPhBW8xYdkxB2zKpYiv9msTNZ8Hy4AWND9rA/AA8LvrS+i6fULgIxvgCyg== X-MS-Exchange-AntiSpam-MessageData: 69VqioKF3IIDYL6Vn51AIRI1iN4GKzBJS0vhQLlttMCqNR3B8NQHK8TL7q24P+sWnPo0XJYVxcxouW6s6FyCgj0FDUf+6+e1JuPqvSqH1DieJyBVBtQB9nQucKk+dLw09AoE7UevNvnUt2smCcKMQQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d105b13e-08bd-4559-c091-08d91c395dc3 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:16.3708 (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: VE1EUR01HT215 Subject: [FFmpeg-devel] [PATCH 14/39] avcodec/libwebpenc_animencoder: 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: omQE41oVj1Yb Here the packet size is known before allocating the packet, so that supporting user-supplied buffers is trivial. Signed-off-by: Andreas Rheinhardt --- libavcodec/libwebpenc_animencoder.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/libwebpenc_animencoder.c b/libavcodec/libwebpenc_animencoder.c index 5f0c6ba194..742aefb467 100644 --- a/libavcodec/libwebpenc_animencoder.c +++ b/libavcodec/libwebpenc_animencoder.c @@ -25,6 +25,7 @@ */ #include "config.h" +#include "encode.h" #include "libwebpenc_common.h" #include @@ -67,7 +68,7 @@ static int libwebp_anim_encode_frame(AVCodecContext *avctx, AVPacket *pkt, WebPData assembled_data = { 0 }; ret = WebPAnimEncoderAssemble(s->enc, &assembled_data); if (ret) { - ret = ff_alloc_packet2(avctx, pkt, assembled_data.size, assembled_data.size); + ret = ff_get_encode_buffer(avctx, pkt, assembled_data.size, 0); if (ret < 0) return ret; memcpy(pkt->data, assembled_data.bytes, assembled_data.size); @@ -136,11 +137,11 @@ const AVCodec ff_libwebp_anim_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libwebp WebP image"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_WEBP, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, .priv_data_size = sizeof(LibWebPAnimContext), .init = libwebp_anim_encode_init, .encode2 = libwebp_anim_encode_frame, .close = libwebp_anim_encode_close, - .capabilities = AV_CODEC_CAP_DELAY, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_RGB32, AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVA420P, From patchwork Fri May 21 09:17:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27880 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp341041iof; Fri, 21 May 2021 02:20:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzmstU0sJn0WpNhpTz/C28Z5lLLQAJ9W1dXpicKrURcyCyRun/KpNIJzyk0DbX5+WofDu/m X-Received: by 2002:a50:9f05:: with SMTP id b5mr10209497edf.24.1621588825421; Fri, 21 May 2021 02:20:25 -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 hd8si1935764ejc.202.2021.05.21.02.20.24; Fri, 21 May 2021 02:20:25 -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=CP5sgYNo; 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 A1509689D84; Fri, 21 May 2021 12:18:22 +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-oln040092066064.outbound.protection.outlook.com [40.92.66.64]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DDCCD689CDF for ; Fri, 21 May 2021 12:18:18 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OjMB/MUdVkereSQC1m5Fx9CUJUoLKq//jAajfxqzsHY2P0gI7d0isgYeLKnNtzGRexsNUvm2KzAlZi4gaun47Tsv+4HuWLAjjsMTxdThAcQWPteU0nXbXiOER7Ga30tv9PgaqyzJoYhjJFfqDC0L9BDXwxmQvE7Xv8Q6jXETBfRNTmk3M63WtEIh/DS9byHyqtFdK6kFDuX+5aIENaqAka4JmxxjvTdjR+ewgDU/lSkX3/3ZSueMAhIGZNbN137tSRki4XGAk/Jwe9NdGbd9akzJykq/3TL+Kf9i5KG6kkbf81E/gHIEk6glzPFxGSrhYFayWVwrvWBYzU1KAP8k5g== 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=SDFsIFVR0BjT9l+q/zwhr/j2j27Oh/DyuzsLcea1I9k=; b=nV70CtKDeHzMs5hfSEd0LGdxC9RGzuJxTTy6AqYzP37w79pNRV4xvBXOdDl/ElC3qe6CptzsGIpAVPonc779A4z7dDhmTTwwBjLWQrsfdPqOF/5q9ITtVTmIf3LJWQZp8KYw5l11+VQubBI6uhACg6ZEhetf6Ph8GwgYc3NNx/eeJ3pzC+jSd/2tFss0MbsTIBP7nG5dy5XlUAWptgM7l3VjIfvVgBbH2Kd9aQFziqEQDpuLKbURXB42m7fOalJUcCxgOHzDyGcTeyne6b3zy0m9KteNbp9sIvM/BGifhseRaMNqLdqkjVx+78Sbdetj3z2QFSsRbUa4JjV3/if6CQ== 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=SDFsIFVR0BjT9l+q/zwhr/j2j27Oh/DyuzsLcea1I9k=; b=CP5sgYNoI/oLzQFW2uOFHdKuhDH9vQSiqGytytx//F6USTCv14XcWvhgOGlLCNa3MyxTF24TMX9YvTpxBenRHkIJSIUTaZOqPKkseQmU9H3dlVEWZ7Zv+37FvQSsbSsNvt4Gnf7An26yIHZf5mg6r3N5NlwctroLJo9fNce02jBkjpqopfCPPKqRXYeRVnm2Fx0vIgzVwu90JP1UEKcwvjn+87pPuDod0pYi1FaRXjOjXOfLnHGAMuA6tTrG/2Rc5sf2W+aX/T8s3qalIC+x4/pWTkefWMqjgnPch0iuG9NZ1aDEm1tBWSJgZ1Kckp4WznLg+gtPaGmiLpICN39gwA== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::4f) 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:17 +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:17 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:EA31B629F9083984170C2D15CBC8373504159A3B691398116CF34B2B4B7F9A79; UpperCasedChecksum:46C0982EE5DBAF28CAD1CA317F49963166233708CF68D6522BB1488CB59DFF6C; SizeAsReceived:7601; 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:17 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:18 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [a7Eek+KpnYShDUMJfPtRNrePcgeqnpp8] 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-14-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:16 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: d7e35b8a-fc39-49cc-a4da-08d91c395e66 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfau3xIG7ENhZ3aoX79knlxCC3d1ldBI1QYz2Bn2/gC7F3nRBHJwLRM0PCfUNHcYpjf7v7wn1JJ37chIuCOkEr18CXnY4ys8nk06BkXwVbNATF0KidSS2l4zys5/G/+MrmWS9bAIJJhdONevbfZUbmjxpmXgkg2dZ24T2ZcsGLCSIsXnq/4RCUuYYpptGKt9E1369j4cwCT9MH82FBRcijbxxSzwsxK8SVfAIMCmZBtaiT6p2sptjBfSsAz5F9R1vUWcFSoAr9jrmx39WXeGFkZPefGfnaxfiOqAmjS1D/g8TKACqpr91sRtDYg5yAeBMh+FByZSXsoDEeSBiHuFKOSyqAWLpjSb84F6n22iipW+R1e9LziBes64EXNSKR8i68zMP+t4bOPZEpyQEkYKFUSGgGyYSpAutqADMG2gpU7PE1u54M2mQSV8Sizr3iuWqySH7SWT0eWMwD0qAs37xHHVPMiS85jawtQWq7yzhzsMLkb1FXf174YefRnVIkHidZQcX9nwdZBiOMYqxyKO8p0iCUCyEe5QLs3jFtshBbe1E1YBxBJIoXmyLUgzBQV2Saqr0x49lWwBakvxumzSKpfqOJmx4xCoWe8KSGIbgHFO40JgX7RDy/2rhCSfXsfZj+gk+H+qz91EYTp0bikbVMLh3Eh/uSXFPgNOHE2uujmtzVDqaiKk5WzSdgfOvY+ujfxApgjU2YgAplI= X-MS-TrafficTypeDiagnostic: VE1EUR01HT017: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CuIg/5uitlRFR4tf0+XBDDFW+8JlP5fqGjObUR5Jw9vdV3tDWsucfD9Cksc4gvt03yHAOix77G2oTNqJlbE2CMIVv9ZLatxnBUvEQe38LiTfkEUzuHjxD+I0jrSJkF502Soum20TUZjYjjnCuoah0SpyHgLs/JzCsZprgFOhQszFx1JSlpLZW1RhFUdotl+dXPljcXNtX88mDCb/Q0G/1ffUx2tMMdV5q6sMrKG93luigxyROw96A8Vw7J5mjx8BHEmAM+hWacHBqstQGlMDFLzghppl14eyimbPSVnKiwGeFGuRNX8+E4VIKQ3bQa+1pTLDlabV5wJIL3He3ZzVaC2/cHivVLYtnWsrKyRHtHEdb2Y2EHvBd7lqUStZ1CTOetg9ISnupg32nO1/8Nvehw== X-MS-Exchange-AntiSpam-MessageData: onZ8kNHOJxCPzX3OO4QnHOwdnYHpgqvok8HO5q2t0Jw4MdsxZqNkIFyMAwETalnByeupSsOowMNvusC+HJeLCgejZ/qIzeuyZcZF3EhRPzoQSooZPZ9DR0GnPiWqwWaF75XIrg7K64LhPuK9bLFsUQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7e35b8a-fc39-49cc-a4da-08d91c395e66 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:17.4223 (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 15/39] avcodec/libx264: 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: kqotW1FAEpqR Here the packet size is known before allocating the packet because the encoder provides said information (and works with internal buffers itself), so one can use this information to avoid the implicit use of another intermediate buffer for the packet data; and by switching to ff_get_encode_buffer() one can also allow user-supplied buffers. Signed-off-by: Andreas Rheinhardt --- libavcodec/libx264.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/libavcodec/libx264.c b/libavcodec/libx264.c index 1c27f7b441..36fdb567ff 100644 --- a/libavcodec/libx264.c +++ b/libavcodec/libx264.c @@ -28,6 +28,7 @@ #include "libavutil/time.h" #include "libavutil/intreadwrite.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "packet_internal.h" #include "atsc_a53.h" @@ -144,7 +145,7 @@ static int encode_nals(AVCodecContext *ctx, AVPacket *pkt, for (i = 0; i < nnal; i++) size += nals[i].i_payload; - if ((ret = ff_alloc_packet2(ctx, pkt, size, 0)) < 0) + if ((ret = ff_get_encode_buffer(ctx, pkt, size, 0)) < 0) return ret; p = pkt->data; @@ -1147,12 +1148,13 @@ AVCodec ff_libx264_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_H264, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_OTHER_THREADS | + AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_data_size = sizeof(X264Context), .init = X264_init, .encode2 = X264_frame, .close = X264_close, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS | - AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_class = &x264_class, .defaults = x264_defaults, #if X264_BUILD < 153 @@ -1182,12 +1184,13 @@ const AVCodec ff_libx264rgb_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 RGB"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_H264, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_OTHER_THREADS | + AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_data_size = sizeof(X264Context), .init = X264_init, .encode2 = X264_frame, .close = X264_close, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS | - AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_class = &rgbclass, .defaults = x264_defaults, .pix_fmts = pix_fmts_8bit_rgb, @@ -1213,12 +1216,13 @@ const AVCodec ff_libx262_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libx262 MPEG2VIDEO"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_MPEG2VIDEO, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_OTHER_THREADS | + AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_data_size = sizeof(X264Context), .init = X264_init, .encode2 = X264_frame, .close = X264_close, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS | - AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .priv_class = &X262_class, .defaults = x264_defaults, .pix_fmts = pix_fmts_8bit, From patchwork Fri May 21 09:17:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27874 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp341168iof; Fri, 21 May 2021 02:20:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzv8uDZpi4vXsXy/zS+Ym8+o384rpDL/29Dit14n8yiqDk4FQIqvGWnPuvf0O97FSKdK6au X-Received: by 2002:a05:6402:15:: with SMTP id d21mr6817303edu.66.1621588836880; Fri, 21 May 2021 02:20:36 -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 a6si4633906edk.546.2021.05.21.02.20.36; Fri, 21 May 2021 02:20:36 -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=MH4Mgty8; 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 9AF05689DB3; Fri, 21 May 2021 12:18:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-oln040092064107.outbound.protection.outlook.com [40.92.64.107]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9E0F3689CDF for ; Fri, 21 May 2021 12:18:20 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nd55QK0KHwXZ+I5ZKaPLrLUnoA96aN9g+jDvERjkktL+Tv76yZGVIB+1DsbsGrFDF9Asa0897aHywFXgUczdnj3WI62TJNwSWdjrkvy2Y5wMPqnT+JMW7OuybvcBjsWmXulZ0jc+/Z6N2xahGpAOVBc59cLiVQeadD/lyy/f5EtTQhR7gGq1hDPbusy2TW2SSwLsOh+ePg5ZS7F0WrA/qUDCfxwAwbHvWnPdi1Gx7SWUPTYqvHcBAvf+GrWpTuhoMXzQRV/xHZvLuZ3YNwURFXpmmzA5Qye+MAh/FhJcpqWEoREBjOvImJfjFOgYHJ53Ujn71nJXey28iqe8JPbkLA== 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=V6wRARWGlzU5MAdTpIHrOvjAaoPRMsz+6ZFdwnxNpfg=; b=X2362+TH7wITdSX+T8ils48jQ9JCtqMOq2u4rrUxlnF2xmXLki97v1ACkEByPXIch3O0hY6P8tBlNjYT3cbMd1owfkZEK+b42wqbDlwiVo8e3PL6a7wErrx/d3OFj65lvmnjZL7IZ8f0Xblb05LuyHHnZaFUZF75i9UVhPT0v5LCTWKxXdjtWLAM0SBiVP4S+gGjq2HayF+w4jWu/cjbml/+Nvjw5rAP+tkfd9ei1WB4F31GoV7LQlJXJjbO/zs7uHQeZsif9S8B06RPvM2niB7wKRuqA405hZlO52yM8LdFUMLRz+DSlrjLAUUm4NtEfrHYhebTFGZJtz+Z54vdeg== 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=V6wRARWGlzU5MAdTpIHrOvjAaoPRMsz+6ZFdwnxNpfg=; b=MH4Mgty80hYv+SCAZKanAx3W8ICsTDrmStP20Jtn732TStYJDOktakwGAyB/FMf9GMC93Iek2t4n/gtZAGv+XPaOGCtN8pGqT3uzjIEyAz4+U49mwDGfJAerosgupfUZtkryhVPNr1n9epP3BMsdyOdGKe2Tybozd/8lDP9MdXEnpIq4a5CM/Uz4D7qQ/+qJKFGTWfudPTvd4+w7VzJlOTQ28+QYFnrMAUt4SA520WdD5z7NBYQs0+4WXxS9iQQBNQc5/tYn5IHuda7RIIM1e41ita9M0Fc2412EKX5qLOHGKBpbvsK7ChqNjNGl0qpmPH+aShHMRGuXGaKKlErEvQ== Received: from VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::44) by VE1EUR01HT162.eop-EUR01.prod.protection.outlook.com (2a01:111:e400:7e19::479) 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:18 +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:18 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:177384F4BF11AE361876B0B0B78A8FCC59BF0711AE3747CC43243FE2E5AF80B4; UpperCasedChecksum:5E027FB4F17468ABA61BBA04A5052AD7CD3B5612DBA0A152EA1591EC18C43970; SizeAsReceived:7582; 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:18 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:19 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [JX/hqIzCIeDzIC3FIwYGQf0f2al38tJ+] 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-15-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:18 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 5ef6401b-2aba-44a7-ce68-08d91c395f0d X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIohmq9k/yScywu9xPSfiUSNYz3t4mU9heRxxTk/dprnkGXMonEUdTqM5g6YIUa1GjTxjrrZoX/6Bd3zF7ypvoN3As7QsZWo/1femBV78CeJ7A4zBfUrK2tL0T3nJVJSavBR94xnsjzyE4Z5/9CMVFEmUvYIevVo8AyuQ0MqQk36DpCT4p8rMOZVuuGZiVcglXCndUiZnhUmzhYW/10tVh+SPtzhkPDAflTuiZ006Xj9FMkFgJZA7flb0h1I06s1s92T9sMgZD1+8PqO114HmxTH0KwLzyTFeDvmE7M5xjkPZrvwwBCihxiL3B18Foimn5XsgCzCvH+sT6oCVB42Wwmyocn21A31fK/3e3Tjt0W4Vd90G6RQmx5eTuNP4WZPSueMSrz3Mztven8LAY5S28TEqzOoA9YP8EtP2TRvmoVJKOcs+iQlm4t53D3jSpSHAYVegsxnR0nmDShbusvW1pr7xtQVWwXYKMO127M03ItjEz2Hj9eZgaYztzr2CKfzz9l030h05FcPAbfQIkJHs7qaXKb1ukWfS/bE5vKx75X8hpLrm/76J4uXgRaB50bv1PpN/U1QamhT9pnbzGMitagfZUuXxaGNuvEOdRYVx6lE74SXz0A4/ZjDi9TOY9yJB9E0P0Bzus9oxkPu9/KKwBNyWLUIOv5g8aXn7V1LykLpr4VaZvdYcsPzHCHQp+uKURbAB8FhD7MvA== X-MS-TrafficTypeDiagnostic: VE1EUR01HT162: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DPJq3s5076sDVS0p/84r+cZMKjrBTYjkq6+Vz85BlsOsm6Junv79TdivdhLeWn0GJhByIsfkg1fl/eYHaTtgl/Ge07zfZyWi3A+r8B9r0+KfMgXZdZwxeQ9XtneHFXAM5fej9+nlQgZQp7xbkqOt23alaU8yQc9G9E4KsoprJsY6lBmwZmdTqcAsFhcWvnFN4vd2nf4+TfKYlCUSVqioF3wRKrVEU4jYY5/8x6nuNTh+Ymt2eqeKje7GlJyWEmcxM2vhVGTSbtE4wfWhjWAxG91bvLiSAZv3G4xEvi6Kc/F8cKdhgw6SjWjzFxJVDxrd6t/WJsm/aqY/RXfQVutAdfzrL8t2ryHUEhsRY2uP1nCBUaHusUQ9OcFQOW6KRCtZ3YGcdPIBdiiShg1TfCiA6A== X-MS-Exchange-AntiSpam-MessageData: lbztkQhnGhVJb6jmBfxk6BIRarX+//eg/lM0bqFbWgcj17xsxA4csxxXanm6Y3K0K7TErBnQEfaEMUfYoHDKJZ1V8DH/VNimF98AzSfmoXV5rpQDzlZW2VQKIpwPrITsX23Y7HnW/xIOfyZtDMW05Q== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ef6401b-2aba-44a7-ce68-08d91c395f0d X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:18.5208 (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: VE1EUR01HT162 Subject: [FFmpeg-devel] [PATCH 16/39] avcodec/libx265: 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: 1GjzuFzTItGB Here the packet size is known before allocating the packet, so that supporting user-supplied buffers is trivial. Signed-off-by: Andreas Rheinhardt --- libavcodec/libx265.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index a1bd205201..90658d3d9e 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -32,6 +32,7 @@ #include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "packet_internal.h" @@ -531,7 +532,7 @@ static int libx265_encode_frame(AVCodecContext *avctx, AVPacket *pkt, for (i = 0; i < nnal; i++) payload += nal[i].sizeBytes; - ret = ff_alloc_packet2(avctx, pkt, payload, payload); + ret = ff_get_encode_buffer(avctx, pkt, payload, 0); if (ret < 0) { av_log(avctx, AV_LOG_ERROR, "Error getting output packet.\n"); return ret; @@ -687,6 +688,9 @@ AVCodec ff_libx265_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libx265 H.265 / HEVC"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_HEVC, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_OTHER_THREADS | + AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .init = libx265_encode_init, .init_static_data = libx265_encode_init_csp, .encode2 = libx265_encode_frame, @@ -694,8 +698,6 @@ AVCodec ff_libx265_encoder = { .priv_data_size = sizeof(libx265Context), .priv_class = &class, .defaults = x265_defaults, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS | - AV_CODEC_CAP_ENCODER_REORDERED_OPAQUE, .caps_internal = FF_CODEC_CAP_AUTO_THREADS, .wrapper_name = "libx265", }; From patchwork Fri May 21 09:17:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27881 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp341315iof; Fri, 21 May 2021 02:20:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxHZ9JglvRohO8uIXw0JXxpcDWNsaq0/xOhLpOOCtzHdGDJ4So7WBXuffi8GVoZajA5qkkM X-Received: by 2002:a17:907:20ce:: with SMTP id qq14mr9196305ejb.35.1621588848314; Fri, 21 May 2021 02:20:48 -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 gf2si6112141ejb.500.2021.05.21.02.20.48; Fri, 21 May 2021 02:20:48 -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=bVbENNX2; 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 899E7689DFA; Fri, 21 May 2021 12:18:25 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073013.outbound.protection.outlook.com [40.92.73.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DAB91689D59 for ; Fri, 21 May 2021 12:18:21 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NBON14KvlZ5sGJdcUaouKTzUh5uQlpVxGkAHseJk0MI5py8kgAdMhAfYgwg/TO6F2Z9IcSs81++k8fnYCSI+RG0N/SMT4vFkRlsHMWkWqb6bWX8PPQjqwEb7gwH+PSLrd/lOQbxKR5n71ld9WsarK92bbqnGwoo9TUybBdPh7JjTjczTTIoUplXVOJmrJJm5Wk0MiqX7lED9MUoigSJD3Tc4kGvkNVyyUTr/T/uu6ruflJs4216rhf3oAKYzgvqbIS1lABwey2ZjT3zR0VgrM0FJ1PzTMSnsnbpWl1aH651hjklmD4/ebdfE8gQYfGY9Yqzjl4noBpY3SHv1YobpfQ== 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=CECqiwKKg7g0siJHW13dbVO0UdVdtOYWQc3tlIcVFsE=; b=Tv6jN4R/lj00sslIOSPWMK4dkHlI30ziJdqKWOFWX+WANIjL9lWUCnS6e6h8gN0mfgODvdciZ1UxGVtroT27vl+LbUlsBTfQrGfCLc7jGv/d2Cm4tctR3MOKL51QrZSG+lcC/9GTVwAiwMEzeDdSVnTv3Abu9FyXsGsvIp4fy1liGDG/MS7fHTNHADqL/doVyo4xMlLh+2n2uo5M3cz4PMwSg6bHFAxy1+isk6K9RmRemjEkcxrv/Jtc4a2Lga0kRSrGedZ+q+IjYfQsEualS1ErtqrbUkOGhNd3YPTAmUtC1kGn4u7ZK07E4sK47yzQkfFU2z3IQVgmxpjlt9GqLQ== 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=CECqiwKKg7g0siJHW13dbVO0UdVdtOYWQc3tlIcVFsE=; b=bVbENNX25qhFnyZ3tzf+PH9z87C97WRtDiit4tV1vORL4nbCKgjgX25FFeHFKdIIXgIoQ/oA0HHUPGgqIHHs4Ae+j7EGIHu5Iq5Q3xlzyWhw6viSnExuHJNN9o6rRJkRmDS4Y1qa8HwVN4p/Q/bzmSqaoWVzF+j5Lx0uFJpz73SrbjXomvzrfG/MUGGNpF5TIH1FW+EMoj/S2T4uHRfY4KniBXpNtOTKCmFm/+3bUdj9hstpysEatJ69JEDaW/OIdfUSMCC+Hw+W3DFtB4/ExMBu8LkXQY4qK3VBP6PcYuLGqf4Y5cYjNq4Frw9ZPYvPkQqs1dqiB9HpyDTPkR1Uug== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::47) by DB3EUR04HT167.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::372) 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:20 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:19 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:7990BC2F557508C3ABD23E886FCD8CC1A20C8912095AA980435DC9286F1EBBB7; UpperCasedChecksum:5CB25AFEEC67D9D70D9E91650B201ED340E181FE5919F7BF39BC1AA38CD0BFFC; SizeAsReceived:7595; 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:19 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:20 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [31WJTO1n+O7JhnyGvZ4sTVJrDog7IrM4] 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-16-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:19 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 500cfb35-80e0-4277-7229-08d91c395fa1 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIohmq9k/yScywu9xPSfiUS9EsImM+UzPYnCKdNUeXQrd1ATHI1UQ7gFk5n4waQ2Px7WtRQzQMvdyx9fu/aKW5Jm0l3exQ5sTSRWwK1cL8MlyVNisAHO85rTesN5Cs5cOcNBDkbCgcsDLrnwubWAW3x9kzapox4zfGzftEx5qRp+J/Aa3j5PoIX1otbDP74kBJFIpusTlemtmWcRcMXzI3JHCX+Lzju7aKmC/4z6g1GN0CrazYEi+deWhdulkFjasw50GEFhsPGogVcVYtUNuPr/a5TQSesChhDfzq6cmauMeDBpv7UUMKLXWppcDETkYfFBFoATxgj89rBtwRyvRAAWJmGGZL150W8myrVGDknvr0zltYufyCGmXpuN0KPHGt7a2QmdxDVQQAhdQ/fhgToyUsDJa629qjswZjVSER8A7Af8b4rrT85/MaILGjpvYDYB77zcQuOULktHJEKPlY36PIg9WIp3oz56p1Ym4SpHm7c1qawUL7t5Zczdrz3z8rljif/j8/oTLN+pZT08/M2jI8YDMiIpDS411BvtgZ1lm5TZXeZJ0F7FbIK6FP5X+hI97ku0FPl4i4rWu6/DVM/TvdER4r3z1N62OFEyxUjdFWt9CD+bS3grQp2xQNCZMubgjIduuFxxW1bH3UekBE83OR0FvLQa0pPmyP7peW77r589L6dB+ctlwCv8Q7s8CT+OIOAxMMnvQ== X-MS-TrafficTypeDiagnostic: DB3EUR04HT167: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: U4Yx7MaAZYdDmW5G5uLFqeheKQIHA9bC9Z35kMeqXrobRaNSyT884l+x/UaEZ9nFPXfpeUqUnsRGvme9vR7GhSm6Fg43tGip96hUT662v675xkWhQjO9o5wf+cRpTH2BHWKEP+H7k98Fe6bmvQn2aJkQmPR18w8pBqHNQdpcQMCNCAuJAP9RC9i1vqh0WOQ0HwPmshdto/hBmwt7/BX6pjv1N4lpb25DMrntRQkqLE5Rlapfv2oT1VkXoDgWAUGpCjuVqzM+cw9Q+9cn+FFIfREKH3nkezGBS9iDcuy7Tg0x7Nyb7LNNx2w33joWikepvuXHKiX1mq/2ryTmn+FUBZ5jlawBQpB8Lj+GqSiMTeKLBZbZaYThoAzUzgTNYf2UJQCw+2z84XiLu7X0W9eJjw== X-MS-Exchange-AntiSpam-MessageData: LbzGJLzRwdUfaqAW7KcC51REAeJkMRrBMXIgBL04Ho25LAKl6hADXXT9goPHy8rP9K3ni4I4XAANPoptfizclF9/AKy8V74kSRsGbc0+xC6N7pFE3BX9GZViMjc2LoNdFTE6nTTwuXTrsJ6iRFiing== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 500cfb35-80e0-4277-7229-08d91c395fa1 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:19.6064 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT167 Subject: [FFmpeg-devel] [PATCH 17/39] avcodec/libxavs: Avoid overallocating, copying packet data 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: r2bKgRPam711 When the packet size is known in advance like here, one can avoid an intermediate buffer for the packet data; also, there is no reason to add AV_INPUT_BUFFER_MIN_SIZE to the packet size any more, as the actually needed packet size can be easily calculated: It is three bytes more than the raw nal size per NALU. Signed-off-by: Andreas Rheinhardt --- libavcodec/libxavs.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/libavcodec/libxavs.c b/libavcodec/libxavs.c index 253f4bde6a..ea53c49d38 100644 --- a/libavcodec/libxavs.c +++ b/libavcodec/libxavs.c @@ -27,6 +27,7 @@ #include #include #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "packet_internal.h" #include "libavutil/internal.h" @@ -85,18 +86,20 @@ static int encode_nals(AVCodecContext *ctx, AVPacket *pkt, xavs_nal_t *nals, int nnal) { XavsContext *x4 = ctx->priv_data; - uint8_t *p; - int i, s, ret, size = x4->sei_size + AV_INPUT_BUFFER_MIN_SIZE; + int64_t size = x4->sei_size; + uint8_t *p, *p_end; + int i, s, ret; if (!nnal) return 0; for (i = 0; i < nnal; i++) - size += nals[i].i_payload; + size += 3U + nals[i].i_payload; - if ((ret = ff_alloc_packet2(ctx, pkt, size, 0)) < 0) + if ((ret = ff_get_encode_buffer(ctx, pkt, size, 0)) < 0) return ret; p = pkt->data; + p_end = pkt->data + size; /* Write the SEI as part of the first frame. */ if (x4->sei_size > 0 && nnal > 0) { @@ -106,12 +109,14 @@ static int encode_nals(AVCodecContext *ctx, AVPacket *pkt, } for (i = 0; i < nnal; i++) { + int size = p_end - p; s = xavs_nal_encode(p, &size, 1, nals + i); if (s < 0) return -1; + if (s != 3U + nals[i].i_payload) + return AVERROR_BUG; p += s; } - pkt->size = p - pkt->data; return 1; } @@ -150,7 +155,7 @@ static int XAVS_frame(AVCodecContext *avctx, AVPacket *pkt, if (!ret) { if (!frame && !(x4->end_of_stream)) { - if ((ret = ff_alloc_packet2(avctx, pkt, 4, 0)) < 0) + if ((ret = ff_get_encode_buffer(avctx, pkt, 4, 0)) < 0) return ret; pkt->data[0] = 0x0; @@ -425,7 +430,8 @@ const AVCodec ff_libxavs_encoder = { .init = XAVS_init, .encode2 = XAVS_frame, .close = XAVS_close, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_OTHER_THREADS, .caps_internal = FF_CODEC_CAP_AUTO_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, .priv_class = &xavs_class, From patchwork Fri May 21 09:17:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27864 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp341457iof; Fri, 21 May 2021 02:20:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz4r7aXPfayLq5BgR9HlT35AwtmB3ZuYcOFpBa+Fv/vw+ZRdMcpghjQcoA5Ixa4qwEbWDSt X-Received: by 2002:aa7:c359:: with SMTP id j25mr10009132edr.171.1621588858129; Fri, 21 May 2021 02:20:58 -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 d24si4601269edp.529.2021.05.21.02.20.57; Fri, 21 May 2021 02:20:58 -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=pTQaEQlO; 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 69885689E41; Fri, 21 May 2021 12:18:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073084.outbound.protection.outlook.com [40.92.73.84]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 41764689D84 for ; Fri, 21 May 2021 12:18:21 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BuEe75jmwDPTI1bC3qblbxf8VJ6JTqU4r5aijzBHrny940+NcxwX2ZgsUM+9it5TfdI9t+McZvwld8WWh14Fb+syeoZrhxizq5PwWmcY92CVspvRQ9tH+jmJEO93YVX1nD0dvBCfprCmZbi1mBiUYrxZRu+dAnkNiJ3caEsAexcGDbyIr+loEWCRYlfWcJNJX6P30nmstYSnSpRwT03YWwtJGwW/67nXL7DA+GLjTevUagPeVLFoXh5I9S2ADGdnZVst2i/uGU9ncOfG6YW6cyU0j06Q9gqPRz1TpO60EpG3FKkcW40u0NZElVey5R/JZ5am9lnFpw0+beGbajD1wg== 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=QwD7lyZ+lSFDLWueHRfqsOQ8YWeFPy1q3LKAkrzyj9A=; b=mIA/lHAkqBDWSI7VwaoF2aENcywUm9dahik4zcYL4QBf2I8GSNELCBmUddrbGS9nM7WIP2Qy2ZiY+dzoTiu7mD9WdQhY8nhzJjmTXp5+KZO/0qQ5SsBzuTsQfgNHpEimk1BxuPY4E3jb/GTzSKQ9DZdKLgulvKD0LIMfBHaS7YAfsqZg9ZkZuxbBXjqrh+En0CrcH1N1pJ/2voAtbkxAJkbGRrxXwMihAh9qHuS464tQzKwinCVfRQCJfniIES7QiLEAcToIvIU8OdM0wGr+HgD4BH4tzhKGCg2NmjRH4zkdgGDPB3BXdVpY+73sx2o7c51ZYif2G1wn8lmZ5iQSjQ== 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=QwD7lyZ+lSFDLWueHRfqsOQ8YWeFPy1q3LKAkrzyj9A=; b=pTQaEQlOug+uG3My544+mM/JnzkKdKr1hzLNfW2M1nmTSDKHyc4oOmAnxumZaulW9UCDIlx8L0/jFdVdImYXfNAhau2+dJ8qCeEHneet4LW+qF0aVZRJOxAz5m0NEBkS+gFfMdS6uKx2GdMyGYBZfQqFkKhRfCSNG43ubVMp6sJZZNd18PtHR4ZgbwWe/iG4NI0LlOl9iQNooFF6BcMhGJAxyys2silBOLoivNyCeoHplCJ0GdnoM53EDuNdUxrRlTvgrTRxg6oFGtxG4CQQUE45NCpeDGtMx+FCXNIv8Hp14SUYfHcX65Dmw9JwM1DgATnu5VlpBHH0XrNh8fyECA== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::4f) by DB3EUR04HT059.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::194) 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:20 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:20 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:1323F0FBFA8F2BDD377F1E8CD3A63AC569D3584E4A1FCCC5C52ACCA55F0345AC; UpperCasedChecksum:C24F458478BD26B505CA32428EB5109CDDEF8575F7AD7B9A178D5053A85005DB; SizeAsReceived:7582; 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:20 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:21 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [wDffnm0ZojiR+ZK8TkEsfmMmzhlsEzPC] 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-17-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:20 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 8e470242-6e13-4fcd-e5bd-08d91c396041 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIohmq9k/yScywu9xPSfiUSTwcrfMdrbIAPANbrxbqUIIiKa1x2o9zri6dI28Vdn9sGFVDUkjE2rbMoYtpXrEO7YT3FiXzNfuE8jrQeJxk0bN8AOovy2w2ZD5i0aKXO4hihNZP/BgU1c5cB9f380y/n8F2mDwRgeq7S+Gk3a3yfjKdR6bWds+JuQ2SZmjkAXKiqFMa3PYrjQd+ApnBtDd1sfS0MPrBs7zejWVJialsaup37J2kMvInCUjx1vhGXEeSH4EZ0/1FkZpfJp0MGL9pPsF6E0DDoGh4JkesExaaKvONHA1vPhhs7WjAbddPnXwTz+8l7EwKyC01y7YPcJOddRMyKLwKIIwcrISwnsIYUdsvN9VL8Dc5zEb2nkVLc8tWC2hz9+17igTfDvaYHs3nz+7Lya2alXoiepOuplM91q/p0OldNoXvdowQBmiOJEv9FilDnQmsjkE6+EXKGMRNdM3skivAqiS/B4jmpx/aEg5WBkuKDIjjQM2/eGUZns09ihr33hoKi/BNx4tEyePPCYxZAtSh6CrqoL4StU4wb95VB/r+V2tm5wdGb6qhCCdB4aB8Hfcq93Gg/hrISMCQFd3YziSE3IGXQvmnOUQUIIu1U6TbxgR/RxvUreRrK73v1QtND060XkReNOGSRs9yoQfPVHWs7Fr/foLmYTDXVmNAj99Bvd5oOP9Q+WzQ207DadTGOt6RdOA== X-MS-TrafficTypeDiagnostic: DB3EUR04HT059: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iQ3ht6CNEuG47mGVlMYcNqU5k5Z9nwQB6PJf0eOxMNmPx89ddNitwVingMwrDFGqQ+1MKv6T16oRpZRBUgmVXXMfe06vWbbh+q4Q2lwyvhp/ykyUEbM3YRda7TmpNpvAT/PmLeS75sXZOMppZ38cxwplcUWvUPTVk81CBFdqKuxRP2axU21kOUgbmaJJ61ovhrjScu3PGXfjeqFR3I+UEHHRcucImKtNRfj8/yN/6tf1Eb7v+kJvSUd1jLCxM06qm0GQEIW45QO6kZ+uSAjtUxhqU9yp06DoYrwHU9PD8KulsQPdKkTAmWrXl2VQ4mvEFOxQay17mndh9XbPxnzgY0Qpa8QPQat30JRhgw6fyzbOw2TxoQbmFOjFrbCW/LhvXVtceUbM6DzY6SnNwgv8fw== X-MS-Exchange-AntiSpam-MessageData: 0ZsrxVf5+0CF6gvB8aOcnXfyclXR4kelVmQqNLmy2CvLzLGbdNDuLp3zLD82H95I8bPQXrc6iYh2iIlzLhKhFIu5DGKxFJ5IWYl8Z67UwSC5+cT8SK2ENNlHuYpdVPGojY6QgO95UHDWuVVR5akIOg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8e470242-6e13-4fcd-e5bd-08d91c396041 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:20.5789 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT059 Subject: [FFmpeg-devel] [PATCH 18/39] avcodec/libxavs: Improve returned error codes 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: aBVv+HDkoJ06 Signed-off-by: Andreas Rheinhardt --- libavcodec/libxavs.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/libxavs.c b/libavcodec/libxavs.c index ea53c49d38..88f674de40 100644 --- a/libavcodec/libxavs.c +++ b/libavcodec/libxavs.c @@ -112,7 +112,7 @@ static int encode_nals(AVCodecContext *ctx, AVPacket *pkt, int size = p_end - p; s = xavs_nal_encode(p, &size, 1, nals + i); if (s < 0) - return -1; + return AVERROR_EXTERNAL; if (s != 3U + nals[i].i_payload) return AVERROR_BUG; p += s; @@ -146,12 +146,12 @@ static int XAVS_frame(AVCodecContext *avctx, AVPacket *pkt, if (xavs_encoder_encode(x4->enc, &nal, &nnal, frame? &x4->pic: NULL, &pic_out) < 0) - return -1; + return AVERROR_EXTERNAL; ret = encode_nals(avctx, pkt, nal, nnal); if (ret < 0) - return -1; + return ret; if (!ret) { if (!frame && !(x4->end_of_stream)) { @@ -345,7 +345,7 @@ static av_cold int XAVS_init(AVCodecContext *avctx) x4->enc = xavs_encoder_open(&x4->params); if (!x4->enc) - return -1; + return AVERROR_EXTERNAL; if (!(x4->pts_buffer = av_mallocz_array((avctx->max_b_frames+1), sizeof(*x4->pts_buffer)))) return AVERROR(ENOMEM); From patchwork Fri May 21 09:17:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27873 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp341555iof; Fri, 21 May 2021 02:21:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyQKjG+rIuey9Xb4DMvMn+FN1r9HAIW+2d6oG/0sOV61YStlUKyF0Sxzpv7JgxjrW4Jg6+J X-Received: by 2002:a05:6402:51ce:: with SMTP id r14mr10212064edd.151.1621588868422; Fri, 21 May 2021 02:21:08 -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 w17si4787291edq.159.2021.05.21.02.21.08; Fri, 21 May 2021 02:21:08 -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=FpUG3VJG; 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 49FF3689E84; Fri, 21 May 2021 12:18:27 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075093.outbound.protection.outlook.com [40.92.75.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9EF02689E13 for ; Fri, 21 May 2021 12:18:24 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wc0X7J7HtgKnBxDc3skoDATZKZ2CWn/nqI582qVmI0Boe+1+1y6PuyYv37t35UHrC7158Ca5gWnoBZ91JEA5S18vjrcX7EnaRyNAazowKOMEMQ30lSugmiw9T8nQeKd4SojdZvx6kB7YNbySfG8W2E7xwJ5up3pYgLoVPFccA1br5wRfDq1cRQQYDqw6oWLirfkCKOkCsNw/n330tReZFpHw6/B+jCmQWLbjvewlkIqd/+SOeyK3QqLte8+gMceUqKaoIHpzbu4NmVI0YI5AcoRwPVVR4JK6ySnLWsOOqwzR2/S9W20hJpykw1IgGjKRRpBuljmMtzfkaH7Lsc+S3Q== 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=VAM1zI8xdsPD+sh0b6dnQIS8KI6aEcljhYvGM9jeOm0=; b=EbmB54xhjOIwtQ5dkef2R6VDhj9RUESAxCBmN6rR5YeLZ7xaUpM9uiMLuTe2cssxda5Tq9PcHDEMGW8J7sB2iT29iyu+6H6LHtzB4bjc9UbeNmqGpNKhUlsh3FTWodmT43SA8bj2RT0Kxh9Ujl4bo4bGqdahSbkVvzYaIJLOt2N9XvP/O9BiCUedrpEbYcUj0wsAmFoX45igIWpcdu6jOjZuik17s2GUfmPUJjF0fmQLYD22BjgLIOz6+uD7Azk0sy1k0eSS+iEsRwBfF3FmdlEoUg0iA9ZFajCLQEpV/fiP5H/Te7YzJzk7JDc5dO4yDuFREc22d8zPV51Suok5HQ== 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=VAM1zI8xdsPD+sh0b6dnQIS8KI6aEcljhYvGM9jeOm0=; b=FpUG3VJGS7eAgEHuUoJh2qhFYsNNnrHnnryF4S7tywUE++mEn7orWX3ikGW/IKTtGuWFHDVnh6AuL/DjB/Q0aTj3xJTv9Nhyw7yG6ErgywUOWG5YlTL5uCN4aTw/ob67Q1HhIFsKYO35uWgRqspwA8K95zuDAZGuHcMNQLWzk4tC2SlN753UGnWB/b3jHF9WDG6isSkydZ3LLVkYDN9DpQcGN2XAL/bg9F6jSJcYbhsJJWO/YwCLDakWcX5hSTdn6P4PArDbrLF7Ab1gunhUUVHHR9JKwqVdwDsaINkOPyv4dzg48SdW+SEItDy1BUCueE6Y7szNzqI0payql/OO8Q== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::50) by DB3EUR04HT150.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::132) 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:23 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:23 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:97B3F21A1BF56A1A90802BAD30F4E03911A091CBD97D4631E59B894E3DB860C6; UpperCasedChecksum:C75BD905A47A66910333D16055157177AEC1404C23D7DA5EA632ACD9E8E8C3F4; SizeAsReceived:7680; 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:23 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:22 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [KOiUXXqijKnjiU1jtsInZsCkHVqXQaUH] 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-18-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:22 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 0c6aff3c-fdc8-48f5-09f1-08d91c396179 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfauqlx93HHcvn67vjFjhWkjF0Vu6OGnRSodSFp5LH5HaE9mRUECA3ReDONGPf4wrURoCrkKPpBYqfsU+gaOW6MpqLGsZFTiWiJGjBXy4VOdagWo3p6efxi+6y0t/jV4Ojl68AaIbu5eaAI0LUWcKsEhWhyAVjecq3HrB/FgnX9RjJAPLzCuGLWI5gumzB4gAtD2AUovdEBc5+c1X7s+JskZonRVcBaGjVb3XK0EqIKCQw4nMXa7g0+N/qa2FAAMdNl5d/8bL9CjcbrG9Nr/QEezkpfpexMuW3I9HgJ8R8gea/3lb4XFpgokQcLmBU5WRt6HyT6597MOjmgl38m5S1A9ZNLK49vIc6TtEiip1pnHzcKoDwK/BJwzA9AcsYVQNPiuc0RvG378/r/EpR3oZpqSMtRk9XhBbbg0l/Yql1TGD0RU7Vou6Eg6ipFPvfJqxLQvMX60/bAWFYmENaf3a4LhkGJ2K6LkE2KDrZt/nG8I1IRe7Z2FIgTfgrQ0/+1HPMZeWmevLltnyGMd9tV5n++jYCtdTRCvrH1RtbW4cxzIpsO/jGibVdyS24N9wolJQ61T68Wb3n6u0Ts9IPaaDymEKyzjlBaSt8+pU1aymx7qElobnkM4FQXsiCEzViv2e/52wGSWqEK+fDQnSRbnp8/BBmjDa+/v4B7GKjEIVdbK913A8Y2aulkjemMXK0SbCsI44mnCsF/CSpA= X-MS-TrafficTypeDiagnostic: DB3EUR04HT150: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hHNElECgw6k+4TrWZUIzmzyuMF/ZQhlIWsbadkKxzFsYU9obVY7OwrkGKZ+4PAgS0C7aECy9Xu0+KA8GyFBhibDWpmY73CbTE6Vqu7q5OdshzPWCz1Oiafk5uJ1XEnwbn5y1Rtu/24ZscC0nlq12x4LV75lkyH4n/Edq8vZRTW0X3/5acHGYcOW3V7yHXoUdBLuhA7SdksAgQOn+yAPa+oqi16A9u/jl58cQrGvyqONv1In1thLtsH7qtad6D/EF/12pGObUrXBETFKGXiQjs0mfXMFcFIULOeyFqcWEMLAn/B1svr/OlLMxuigq6Px7S33mSRnl/A8k1oVjma1iyBrqDbVEiB557Io50nWQFecBlu7n7fJRmto/NuteIel95d4gvgRMbO9cRfLHKjCrgQ== X-MS-Exchange-AntiSpam-MessageData: jWeSm2djpfpwF/8CK+6lmx7ZM+uE+xY7E6WAGxOfnJNLR1P6+cvWWMvpx/cRW9x3tPTmpo1VfWzFa4Ci8Vn9XXtriJbTtoGhDWd9QVEVB7a0F+NnBorXErUeSqQkf1qfzcW8o/sdtb6q5SKdkHIE4Q== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c6aff3c-fdc8-48f5-09f1-08d91c396179 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:23.0608 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT150 Subject: [FFmpeg-devel] [PATCH 19/39] avcodec/pnmenc: Avoid intermediate buffer, 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: pxKLqZ/hXDJz For all p*m encoders a very sharp upper bound for the size of the output packets is available before the packet is allocated. This can be used to avoid an intermediate buffer when encoding by using ff_get_encode_buffer() instead of ff_alloc_packet2() (without min_size); this also adds support for user-supplied buffers. Signed-off-by: Andreas Rheinhardt --- libavcodec/pnmenc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libavcodec/pnmenc.c b/libavcodec/pnmenc.c index 80c7b66332..2e8b6372a3 100644 --- a/libavcodec/pnmenc.c +++ b/libavcodec/pnmenc.c @@ -23,6 +23,7 @@ #include "libavutil/imgutils.h" #include "libavutil/pixdesc.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" static int pnm_encode_frame(AVCodecContext *avctx, AVPacket *pkt, @@ -34,7 +35,7 @@ static int pnm_encode_frame(AVCodecContext *avctx, AVPacket *pkt, int size = av_image_get_buffer_size(avctx->pix_fmt, avctx->width, avctx->height, 1); - if ((ret = ff_alloc_packet2(avctx, pkt, size + 200, 0)) < 0) + if ((ret = ff_get_encode_buffer(avctx, pkt, size + 200, 0)) < 0) return ret; bytestream_start = @@ -141,8 +142,8 @@ static int pnm_encode_frame(AVCodecContext *avctx, AVPacket *pkt, ptr2 += p->linesize[2]; } } - pkt->size = bytestream - bytestream_start; pkt->flags |= AV_PKT_FLAG_KEY; + av_shrink_packet(pkt, bytestream - bytestream_start); *got_packet = 1; return 0; @@ -154,6 +155,7 @@ const AVCodec ff_pgm_encoder = { .long_name = NULL_IF_CONFIG_SMALL("PGM (Portable GrayMap) image"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_PGM, + .capabilities = AV_CODEC_CAP_DR1, .encode2 = pnm_encode_frame, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16BE, AV_PIX_FMT_NONE @@ -168,6 +170,7 @@ const AVCodec ff_pgmyuv_encoder = { .long_name = NULL_IF_CONFIG_SMALL("PGMYUV (Portable GrayMap YUV) image"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_PGMYUV, + .capabilities = AV_CODEC_CAP_DR1, .encode2 = pnm_encode_frame, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUV420P16BE, AV_PIX_FMT_NONE @@ -182,6 +185,7 @@ const AVCodec ff_ppm_encoder = { .long_name = NULL_IF_CONFIG_SMALL("PPM (Portable PixelMap) image"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_PPM, + .capabilities = AV_CODEC_CAP_DR1, .encode2 = pnm_encode_frame, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_RGB24, AV_PIX_FMT_RGB48BE, AV_PIX_FMT_NONE @@ -196,6 +200,7 @@ const AVCodec ff_pbm_encoder = { .long_name = NULL_IF_CONFIG_SMALL("PBM (Portable BitMap) image"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_PBM, + .capabilities = AV_CODEC_CAP_DR1, .encode2 = pnm_encode_frame, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_MONOWHITE, AV_PIX_FMT_NONE }, @@ -209,6 +214,7 @@ const AVCodec ff_pfm_encoder = { .long_name = NULL_IF_CONFIG_SMALL("PFM (Portable FloatMap) image"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_PFM, + .capabilities = AV_CODEC_CAP_DR1, .encode2 = pnm_encode_frame, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_GBRPF32, AV_PIX_FMT_NONE }, From patchwork Fri May 21 09:17:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27866 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp341652iof; Fri, 21 May 2021 02:21:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw+Af7tqHwli+G4C0yihcBkB7+y5aJDhkByPLd/YkBt/0ZWPmpft70jN0sbgFqUWS1dsACm X-Received: by 2002:a17:907:76e8:: with SMTP id kg8mr8801079ejc.130.1621588878916; Fri, 21 May 2021 02:21:18 -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 g3si4711878eds.351.2021.05.21.02.21.18; Fri, 21 May 2021 02:21:18 -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=qZPuO6pW; 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 22C30689E9A; Fri, 21 May 2021 12:18:28 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073026.outbound.protection.outlook.com [40.92.73.26]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 66828689E3B for ; Fri, 21 May 2021 12:18:25 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IJQuZNk8dOtUjgIcDYkyGVwOCa/+hFFzWd9kKHCUB7bwl8aYyPs3/FOExSNpoMPpEOuFgjYVOSCtNkT9zoVcC0LI4olVRdr7E8aaiJEgY4Ma74WNs8ufxsQu+sCaxrpUAdREKVvgDvqFXUTACQcjB0Wt63R2NEFZ7nKKsR/Jy/PjY9xBo0qsDTH6gSL1wmQgGQ40b0JsA8Zkeve/7k6A+zCWwYVg0TYKsu9t1Xsenziwq75mvgy3EspXNVUWbDSKlmgZUARyew3CqbSmE5ZCys5GgNKuehazWuMTzfGOSPdX11P1Rjc5PXF2llngwJ5GytN8Qep/qptUKS3bPNq3YQ== 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=efcy0sKL3ss11NdVE+bAl96uUktQN+im/rDaqwSzsQ8=; b=B2FHB4UP12AJx0x/L+zvFObFnsxQAl9K72CyDDbccTtUzs0Mhfy/TmaJAZ9GHC50CpAUDuKJgU2REgIf1X6egXRj4qlj01+SZcRPUfNprUvQ75Xy+mN4g3XpNZCAjOzTaBnghOZEtMPH5HsxWsEy2mBOwtMs0SqSOsONvrQPA/eA0WE/v8cUvSGJBvuSfMGPe2xpCs9bQCWVpv8CceIg8ZJi+IKYHQvcfpk9jYjq/b4foytFEUFJrsf1yOeL9nJFPffMUsMSA2ZaWaGCEPQa8OAqBgB+Lh74qfkObYjwWPCcr7em4KzRvS/FE4gw6L4bCT2uBrLSfPREMqpWcxme9w== 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=efcy0sKL3ss11NdVE+bAl96uUktQN+im/rDaqwSzsQ8=; b=qZPuO6pWqp7fHSr4VUA4ssZtF2h45cAl1A6hMHeioiBVznbadwC41JA42H3+nz8ync7m8Cl509+EqOTU5dUOk8IvN3QwFFF2SmJLj0sNypvxLhn7CzxoPgoARk2KWrhYUwB5LvBp6AV88w/mBOwZYJdEJCEcXhPXE9YVoGXx/y8d/8W8skzg++/fAuxTOvBC527QVp0XqUHTmi7SRj4R2AFo4TWIB098Rq0YmGqgCZVb/spUWzuaairWCBVFzAqKctYks9CFdFybd/o9o6/IeNipSV13OK0qovtdgFr3JO+Q9729JY85iL5smU3Eg2RyOckebO/Cepb6iShu93NXKQ== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::42) by DB3EUR04HT103.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::343) 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:24 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:24 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:A163B69F43B4632AAAB3DA2FDD0EF34CBA1D582B61A84BB5584DD373EC8CA873; UpperCasedChecksum:CF2318F8AD1557A8EF2CFD9572296B5CA6C198D483D03A90BD69DA4568F87CF4; SizeAsReceived:7607; 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:24 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:23 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [WTy+g7YWZw3pxOj1okuxdO9MihdGJdYt] 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-19-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:23 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: ec87a809-84d7-4bf1-4a02-08d91c396280 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfauLQAzQmnoW8wXeY5Jd3kXNXTg8Og1i0geCvFpE9A2hGYmCTK4x6mdsoIJCDuGTvtucBJuoZaWPbpJacsO1f1vwfJFcuDZCH08nxJwaEJxhK/TPDrVe2AwoXPX+FRiRGl7F/1yo8V/rdHpkwaSGOImherFkg3zRQmCOYnynKantX8RD9XK6pDLi9gtjbx1bpgyMrcymBDj2C+AFaN/QIEXn4y4VFdBQuxLCjkcSgrgJC1mlBctxti6Knu2onsghzNxZZ41No+r9+zELXj0afOPcctuCMfs23TfWoH+bCAOthFAXzHcB+Zj1gkDbl3wBy3vqQrtGqP9L3y+WCmE+6gUqhXM+pOy0sYJsuBcgJkwsgiA4aa2SpRtHDucmEPjypyeEfsbk1ZYBHbGXDV1sHkC1wnLG4H9Y23CsulLgOGn+UqZV7vefx1AS0Ekz0/2zDxDDkYBjDoR32MhAWa1JrsGY6QMqYxzqD+8YSq7qRg8B+qUidsveSvFh1lp3lvoYtnANAQvZRNbHE9UMwG7dcGJfpODEHjqdKMMDMJFDT3SHq93kJPDA56L0icLYwWo3uW5zoWVU4/JioZP1OC6t0OQOXyNSx6b2s4pbmOYqgKKCSM0wdhM4y7av2kie4NXMeI7V5NZYJA/XMnq5ULQIZ96TAxd0JQHRmf8gkBiwgLZKQhPM32CWPcdXcUGfXvdiR0c8CJvahkkdBg= X-MS-TrafficTypeDiagnostic: DB3EUR04HT103: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: P8LL6o8TerWDlQcJMcWtnlM80a41UDIbS5n7deNFTlPin4p4aAfD+rEdnLrsqCotWiWx5QVVumLac89cR70VeOw4B3wgqDE96qF6a1c49BzDF/itmZPmjo131s58VQ+kW5DTV+Cahb7cYT0hvVrRo1/I0CGPPL+2mOnp3b0GIv8lya6qqMbsVmSys8t3fZvd52el9KcpmuaZgq6DPMbgYLA9QNJg4wn2pCrdsfGoCbOgApk7EVeFrsfgWvZQgR/+xhIytQTfy2oIoDOhZLt3aNE1IEmmm0RrLrgsjTgz09Pjfs1/wtxhx/ue1Ecyn4V1g0ixSQh8gUma4joLAYE7D9D4S5zGIARul3Y7lzymkZRAhWGzynH12PEfNv9e9OiY0ebjtRzxFvIkOxjxF+mKcg== X-MS-Exchange-AntiSpam-MessageData: si5OvHt6bKTkp+XeC5pSVMpCV0pq5eOtdDJTkTPzqiIgTcUfMEavQEtI7cXNWUWHAueLDkCU4gRy+i+TwpM6jtJISZYRwnPxcImzxHzUW81fyE0+F5Xlun4/n7MGrewgxQXx6ktIPS8/S7rX34IttQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec87a809-84d7-4bf1-4a02-08d91c396280 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:24.3053 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT103 Subject: [FFmpeg-devel] [PATCH 20/39] avcodec/pamenc: 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: Y/cBmlgTU7J/ 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/pamenc.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/libavcodec/pamenc.c b/libavcodec/pamenc.c index f1df7c88f5..c38de5c607 100644 --- a/libavcodec/pamenc.c +++ b/libavcodec/pamenc.c @@ -19,16 +19,18 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "libavutil/avassert.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" static int pam_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *p, int *got_packet) { - uint8_t *bytestream_start, *bytestream, *bytestream_end; - int i, h, w, n, linesize, depth, maxval, ret; + int i, h, w, n, linesize, depth, maxval, ret, header_size; + uint8_t *bytestream, *ptr; const char *tuple_type; - uint8_t *ptr; + char header[100]; h = avctx->height; w = avctx->width; @@ -91,17 +93,17 @@ static int pam_encode_frame(AVCodecContext *avctx, AVPacket *pkt, return -1; } - if ((ret = ff_alloc_packet2(avctx, pkt, n*h + 200, 0)) < 0) + header_size = snprintf(header, sizeof(header), + "P7\nWIDTH %d\nHEIGHT %d\nDEPTH %d\nMAXVAL %d\nTUPLTYPE %s\nENDHDR\n", + w, h, depth, maxval, tuple_type); + av_assert1(header_size < sizeof(header)); + + if ((ret = ff_get_encode_buffer(avctx, pkt, n*h + header_size, 0)) < 0) return ret; - bytestream_start = bytestream = pkt->data; - bytestream_end = pkt->data + pkt->size; - - snprintf(bytestream, bytestream_end - bytestream, - "P7\nWIDTH %d\nHEIGHT %d\nDEPTH %d\nMAXVAL %d\nTUPLTYPE %s\nENDHDR\n", - w, h, depth, maxval, tuple_type); - bytestream += strlen(bytestream); + memcpy(bytestream, header, header_size); + bytestream += header_size; ptr = p->data[0]; linesize = p->linesize[0]; @@ -121,7 +123,6 @@ static int pam_encode_frame(AVCodecContext *avctx, AVPacket *pkt, } } - pkt->size = bytestream - bytestream_start; pkt->flags |= AV_PKT_FLAG_KEY; *got_packet = 1; return 0; @@ -132,6 +133,7 @@ const AVCodec ff_pam_encoder = { .long_name = NULL_IF_CONFIG_SMALL("PAM (Portable AnyMap) image"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_PAM, + .capabilities = AV_CODEC_CAP_DR1, .encode2 = pam_encode_frame, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, From patchwork Fri May 21 09:17:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27865 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp341850iof; Fri, 21 May 2021 02:21:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxeOA85Bt7HEnEZeLUjzrubPG3GAD2IIGi758FdGtVKA5F8jY2oyXkZnmXeWFL1IOE0ZM50 X-Received: by 2002:a05:6402:16db:: with SMTP id r27mr9751176edx.375.1621588901358; Fri, 21 May 2021 02:21:41 -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 e7si6217206edk.255.2021.05.21.02.21.40; Fri, 21 May 2021 02:21:41 -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=iLPiT0K2; 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 E6A93689EEC; Fri, 21 May 2021 12:18:30 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074087.outbound.protection.outlook.com [40.92.74.87]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3C4E9689DAD for ; Fri, 21 May 2021 12:18:26 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lp9p2T1pfIZ4IMySMvpF0ktkY6+z9N14IkoDYibV7xfLEG6bqGCNPBMCY4VWGzoyMCrnkjzTiHV+y1Gaz0gaTihcjmN4DB3OltKOiJopK281L+si5ND9itNb9F4ccdnVYzCyi5j0odteqVeIZy8Tmm2gHIjcdwQERi/MrWz214bzqA9QFoJZg7ozbHzz9CPDgTUHi087ZmQdXi02zabEYde5rZjv4t748Tpdvi+u6rAUrXs8mDK7KPfhLrWap3+1tCmNqAM8GUiT8sX9ceKmTgKjsi8n5wuAeHDp2EtCvzlir/C9DPDX6ku+ZDS84JLG+1w/YpGvuVlIqkTcHa1ILA== 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=Zb1+e1TiiiDEKu/wb5R65shY9OebouBGQBYa6aXUvdw=; b=FpxDRq3BNE/h0GhdtSNIvKHYHsGLRAbZgzomMGeWFt3rmIBPpvdColo/C/Qnrb+D9FFl388Y4lqmU4dlPTWop8RPvhs8AyoDdHUEVoWetWDBLfC+4T/8fsmCmLrKOtQtTns4F/GyprRp3mMiFOXyKyAFBxn657OPJP1gDKOK8PtT4RiqoBoyKuezN8xFjmJmfK8WadJSnA2FnNoQ+0KUs15qEmp1bfy5xYv7uGTj96b53KxEzNc07MYjkKb202whaTtYlBj2Hq5Qj6dMo3mD4yg6Su7Or6pxF0Yu/Uq51vk80Sju2kVEMb5nbYTNnWyezPV4qUMxwBM2ba+ED1vIqw== 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=Zb1+e1TiiiDEKu/wb5R65shY9OebouBGQBYa6aXUvdw=; b=iLPiT0K24nulqVC5McZ2snl/tG76NndcKMaSUJoWZpMU0miT5egRc7W8OKhj+s+jvo0gzgOX3lbNVwRPs3qdkqDvCjOU/ZajhPmxVcqKvskFqRpf9CpmnKX9oE92Z+/k5/fUPoaG7mU4JMe3r26URdo3zfinBes97boqZz9Oc7qwyBLdYrjMejTKLlt5M0SHuZzWAmb0BSinQ5RZhqXM747h5iVMIJ0UfYIRk5v1EcN+yf22xJZcuVa0SB7bTQaq24eF0x3eUQUA6fK+583DtHRwuV5nBVM7M7NSD0VXseo4aNoju7IpJf3ioVsgunlza9YAmtg+ipUz1oCn1AKM/Q== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::45) by DB3EUR04HT192.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::381) 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:25 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:25 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:F8D08948325125908A1C9901DA9EC7650C911D294D6CACDDC6E84558E7091142; UpperCasedChecksum:C21FACC10E7671328908F9CB6486D85ED873D90AB6382670EBA2BEB05F22B2D4; 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:25 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:24 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [P7Pt8X6IYgxrFnWQqU24V5T7/rSnhDo+] 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-20-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:24 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 030061fa-cec7-4097-ac3c-08d91c39631f X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfauLQAzQmnoW8wXeY5Jd3kXNegAXG6XnxEWDI7Sq8/FxeLAjDBuFQzmvhWQ7slfQRjGGtPq454xhuzAo5A11POQjHPCRAKmPHElwiE8osoE9UMXWYvJch9ol0txlZZm8I5Wm/JXcbvYIUn7WpdC3h08cBumaUrAMZDaX9yCTDRM1guT30dgaTR6s64lxb6BypWeLTio2frBz4O2+WXAJRfP+E7+n+9isJ9BqHeI83rlqQdunk2AsAgPitO0a+TMDByah8h+KLu6KZ2Mbk9KEN2Hx7NKdvHT5lmTVBgcxUMvb/YJ/wj4ceVp4nhbpLL9Pf4rqFOa3enxnqpRsAxRyTHSLNPfHMd5YlDveSVdcI9ln/dCmxFN6ff3LMvwlZ4NLLyGRyLbw58ApIz5QTLxa7yfz/a55EpPd3DvfR+xUB47Kc2urWh061GqbnSBt2yQSx2vCpz/Kb7nw9xMOHWg8NQcw9L/UcwfIAjCaRqunQZ1MX1rZ/pJTsbIshWbRTCjgGbAP7A5qyTQ4s6BKTvcopqcCHPazXUZE+ZFYY7Bg2rN6C2Cqd5bMXEskHvbh1YG/Y6GmbFtpe8YjIpbutkYewMDpsE698aODUNwJcFPMyC9eBzmoKvfpaTKOnPS6APxMDXr9Pwh9oZDCvo6LR+HfujO+DEiR5vsDqg+G/G+Btg9u9BDTNM16BWEsEGIlZA1Dh4ZvElO2ui+VJM= X-MS-TrafficTypeDiagnostic: DB3EUR04HT192: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pmeNu0GUwghrldeiwaMgEVNszg/MLUGH2WJwDWktPGPVsk+BVqz+xZ2h06U+zTuGrd5rnhQ9CAxhn/W2i50bqnuDwlnlEbz73k+SrkRBh0d/vi3UkLtVrzqXdLWJ9naxVDMd/w+FP7aRJ777tTnCr3weiJ0pPn946fI7xmL6gS2aplbbtcaBFTvkxNFDw4MAi8qQAZZpqxMy18lYOZI9lBwswmnRYpkypK57rChD1pEGa22NWjtXbtstliHk9qgAZjvjO/BefGI7MuRGJ6bMAqltKGnwP/+TPa06OKF41vFAZ3OWBi3+3eMm+ecPBjAgUJoZ6ExjnU33nfPfans3IO2uLmVyPS/Dbd/qo/eHUOg4bCdbCIkayC1Ln6uDeqnz6mOjNTTDmkyy04Bsscy9lw== X-MS-Exchange-AntiSpam-MessageData: 8cqqgTY3Ds/QGS022mrPztdP+58BzR7ncXNjPqUkGVL8S4r3QeRO4T7/HgOdKtVIsJM1PviaIXRdIBOxjDnt24B4i1ba6ZI/tU7l+LN4egKDOHIsnlkyMVf6+0UcQFfQL5h5zfQLH45eyTyhurOSCg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 030061fa-cec7-4097-ac3c-08d91c39631f X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:25.3728 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT192 Subject: [FFmpeg-devel] [PATCH 21/39] avcodec/flacenc: 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: Zypl00hFmHBt The FLAC encoder calculates the size in advance, so 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 --- The size was actually exact in all my tests; it seems the only way for which the size could be inexact were if the limit in set_sr_golomb_flac() (or rather set_ur_golomb_jpegls()) were triggered, but I am not sure whether this is even possible (it better be not, because if it were possible, the put_bits(pb, esc_len, i - 1) (with esc_len == 0) would run into the av_assert2() in put_bits()). libavcodec/flacenc.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavcodec/flacenc.c b/libavcodec/flacenc.c index 37ed1e4cce..e5a6dbe68d 100644 --- a/libavcodec/flacenc.c +++ b/libavcodec/flacenc.c @@ -27,6 +27,7 @@ #include "avcodec.h" #include "bswapdsp.h" +#include "encode.h" #include "put_bits.h" #include "golomb.h" #include "internal.h" @@ -1378,7 +1379,7 @@ static int flac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, } } - if ((ret = ff_alloc_packet2(avctx, avpkt, frame_bytes, 0)) < 0) + if ((ret = ff_get_encode_buffer(avctx, avpkt, frame_bytes, 0)) < 0) return ret; out_bytes = write_frame(s, avpkt); @@ -1396,10 +1397,11 @@ static int flac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, avpkt->pts = frame->pts; avpkt->duration = ff_samples_to_time_base(avctx, frame->nb_samples); - avpkt->size = out_bytes; s->next_pts = avpkt->pts + avpkt->duration; + av_shrink_packet(avpkt, out_bytes); + *got_packet_ptr = 1; return 0; } @@ -1463,7 +1465,8 @@ const AVCodec ff_flac_encoder = { .init = flac_encode_init, .encode2 = flac_encode_frame, .close = flac_encode_close, - .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME | AV_CODEC_CAP_DELAY, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_SMALL_LAST_FRAME, .sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_NONE }, From patchwork Fri May 21 09:17:25 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27889 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp341756iof; Fri, 21 May 2021 02:21:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJygIzgB5a+YYinuXY/Bs6141lr+jirCa0GJbmjNjUxs/8J/xw28R5YoxbY2LHEFWja2DcoC X-Received: by 2002:a05:6402:110b:: with SMTP id u11mr10415996edv.356.1621588890895; Fri, 21 May 2021 02:21:30 -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 lg23si4817896ejb.584.2021.05.21.02.21.30; Fri, 21 May 2021 02:21:30 -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=qQPiiBo+; 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 F27DC689E8A; Fri, 21 May 2021 12:18:29 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075076.outbound.protection.outlook.com [40.92.75.76]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1BCF5689E7C for ; Fri, 21 May 2021 12:18:27 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ejWQ5UG0rShbCk3ZKpUhcpHnwEsLW8vZNRGuNo9RnZeZ41itsoDAUMpG5SOBfyV8FF4Y5DmWYJ6TSCQBGg9Fh7DX6MR6Cc6S61pVoNUDThzXLy3Z25/groTpATUbJklP1reDfCWR2iMBQOecAcymADFBi0XGGxy1gVwIF53ckskWoyJnc0UDGN1RUKos/yRCo7j2+qybX9yDd0ndlYrVmSiAGxncmgU7eCWFAyx15JNGgAINi3CZRllJ7pxI6HgzlkJ/FVvqYSmm0M9EtJgtMHYbdd9bcn/bfsmhACK0yPhYMvumOPMbppYExHRRHr5buxUjlicBldxEggLoH50Fbg== 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=ct0d/keKDZk5zmiwKEEnoVz9HPy+Rt8LFix+hw2n2fk=; b=KYXiOQg8iWhTBj8zDcWam2vnaUtZdR1dXH6ZFGIFvsGUGI9Yoz4zp74h00Ll+dmSTKymL2Dew5zYk4m4hphILCNblQyedF6K+640ui8OSgO6WviaqU/ldGNDO4S6wMVzFKWquNe9IwuIDPzNYpgwR7Xbfbw154khlVBKgG/kxnjx++PfrWc7tud3wtvWvOHTzIpLwUAV5OVPakdYpBn14fgMyJX53TCm1+lH2gm3ZUutC1zBsgwVgqbR10moPXn8RrQi0JPKjM8tR0CT1/ZxizJgMZtXRnLQCwL/ByD9L+IbATTEzNLt/rILUpkDoRxSfKMourAE0djIv6hTR8cM0w== 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=ct0d/keKDZk5zmiwKEEnoVz9HPy+Rt8LFix+hw2n2fk=; b=qQPiiBo+QzcQHCXmT0F/CggchhcDbBXu3kiPI1Njcui8RkI/lUgqV0xDFp0N0S66RclSE2FcKZ3WtUqxiPtCXjFuWN1ahiItDaD4Ropo42uLEatu1Bkg5dGD4H+qRuZ9JJj65pHIbY4CPqMEvf8JQKolebfONFmcAA6qjJqnWn6ZfgltS7HI7fZyKGaElPUCJCPRX90n8mEcmNAAVUD7QUw23G5pYV0OF9xtsL2szHpgSOb9a+3H/vQ6EyOD96k73to18kIf0i47wVXCEgSMtit+OaACmNgOzpkidDU6Fhiki2se5f+a1N8bnXhU5Xkhy7ARTYhZ0Uzs6u1UATtidw== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::50) by DB3EUR04HT043.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::319) 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:26 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:26 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:5606BC2377737804039F2D5A10BE51E8D553B42B954F5470B7091EEB1ED49E3C; UpperCasedChecksum:90D37FCEDA464C05CC598F0BA97F7D54D386DF6778B564BA407398957CEDBB5A; SizeAsReceived:7578; 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:26 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:25 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [A+PYUU/DiYV9sswj3FL2mB6uZq08LZOZ] 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-21-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:25 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 2fcfa9a2-5de3-44c2-6418-08d91c3963df X-MS-Exchange-SLBlob-MailProps: dEG5jEBie8lPV5Pm7qExlN5LalDEj9QmR8hk3ZX8ZZOtubGZ1ze7SkstQZAfE546hqwumqP6C7aZMkbeim34GSS8L6lIFShwZlk3TBjkB7KOQnMrj5KzleSWGMjmbpN8cIGY6wWr/er/DJe6CJncbmLqshHgIKTnNC880e7fR+XrY51F/8sYF8sd75z5U3SssMJS/MO5qzWrul5LSfrGTgc14/ybGWc7BSdVmq50zAIEPL3QhLGU99yIpyJHBrtrhN5BJgD4pr5ZnQYBFwkywESR3KNxy3u8AeMaPDo36pDTVP2STbx6IM+VAzp0qbPrvDSzWgxhV9iN9srZUCgJepnc9CK71t2T1ycIrN7bQphKEqciMIVHANNOPfjEIXZeayAhotv3QvEG/fRcXFdE4jf/iUIWZdMOTNgOUWbbb9gWM9uNakI90Wpv+pi7fLOXPDURrpN06NQ5ZW3rmvHoQGzgDewsg/TZYAXBbAEH0OdfhNnTRxRe3i2BHsEEvTBjpGNILgOhP4eBjLZTsT9CYcUuvfU2vd6sl7e/JOqoRavqL1w5Eub0z7UQbfc7k8TgpYJqGNgqhfDKvjdjvPg5vfkMOgIGvjGNKKxnjr40Q80R73PD32qmoQU5mddM+G/+muC8+syCceFtk2Fue0YbtUpwsLJnZaFa10443S/I5jjzo77CsKafhQ== X-MS-TrafficTypeDiagnostic: DB3EUR04HT043: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nwRVAS/vFOshgn6Imt8MdoJkW1w775b3qdlXTejxK3nJ/BuiOR1/n1mJwWJaNMUZUyoVCxLXblLjJZxgdcxugaklLr2dYsap0fmwL3xGt3qWYdSgx5obYYffrZJ0icxTnoVIOxgXOgGCIgslE4g3AbtUeME1/7AobWeg8bVfWpvGBuxd5KYm6rB2OlJDrHudgAH95G2d5A/T1A1NhNKOnf5JW6YO1sqcRMX/5NFclSbG/jmp89t4C43+azxmSxlOzaGc+Og2pa4FnbirPSfik+o35RWp/kfB45FQ7NQi5+NKBlYtvtURkTuuKqRmbtsyYBFecXIIxaKFFm/RLx3pNfdBeTuXO+ZA3DgFxaoQYNybJXQjGR+7d8izOuewM3Fh X-MS-Exchange-AntiSpam-MessageData: ISY4HUaBQj1NoH9esR9UoIVpP5/vlNDmHXIqnQxNLgNZ9+3cE6MeCabsWEwKkuEc9HrlcXpgmMH0MRD2VmHfWsPmkSSW935dMrrP6PswqKbPoaa2PmC4LSvKsWEoqEhT5XPk7c1iiRYec35a78O/Zw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2fcfa9a2-5de3-44c2-6418-08d91c3963df X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:26.6552 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT043 Subject: [FFmpeg-devel] [PATCH 22/39] avcodec/pngenc: Remove always-true check 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: tLhkwLgn3XWe Signed-off-by: Andreas Rheinhardt --- libavcodec/pngenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c index a398155100..5a376765cf 100644 --- a/libavcodec/pngenc.c +++ b/libavcodec/pngenc.c @@ -847,7 +847,7 @@ static int encode_apng(AVCodecContext *avctx, AVPacket *pkt, size_t max_packet_size; APNGFctlChunk fctl_chunk = {0}; - if (pict && avctx->codec_id == AV_CODEC_ID_APNG && s->color_type == PNG_COLOR_TYPE_PALETTE) { + if (pict && s->color_type == PNG_COLOR_TYPE_PALETTE) { uint32_t checksum = ~av_crc(av_crc_get_table(AV_CRC_32_IEEE_LE), ~0U, pict->data[1], 256 * sizeof(uint32_t)); if (avctx->frame_number == 0) { From patchwork Fri May 21 09:17:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27862 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp341941iof; Fri, 21 May 2021 02:21:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxLx8b0AW0Z9Md7q1pPJXAB6U5sdi5qmlQP3jyS/FMjZxci6CSbhilvzsqAcs4LG0AyXFSx X-Received: by 2002:a05:6402:35d4:: with SMTP id z20mr10148146edc.164.1621588912290; Fri, 21 May 2021 02:21:52 -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 cq22si4665648edb.134.2021.05.21.02.21.52; Fri, 21 May 2021 02:21:52 -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=TLeTcnNG; 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 C5463689F14; Fri, 21 May 2021 12:18:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075021.outbound.protection.outlook.com [40.92.75.21]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 10404689E94 for ; Fri, 21 May 2021 12:18:28 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=joqPkqEIdULvFJvvFwkVsbYrlNSLAPa7SM9tcU7RFBf/1CRBG+2eg0KBjRLHFWsS3XY1yFIe0XeHKBsUQx29t/8k94975OLlQGOUQ9PjQWNxKIX641xn+9akFIlSrSUDoEF31ciweEzuHi3itBF9ChK6p6hp+qZG1QWupD1oA9MrmgdhyVsjWG4Qu6IQRIqrd82NtbI5xiTcoec0Nd7rnRdup2ugBVTNjIUIso8LWC/MgTmmA1vuv+M2T5QmAj2MxK06S3Rk1LVSI/xkjiZBcToaS/vKe1WHU/3M/t+8kaMRqigNidk38S40RDvtzg0WrRqJ48Equn+orxCOPlyP5g== 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=0gwZ7jfoQPB6thqMoZStpwoB0KyU3ZMWd4R1Lfqqr1I=; b=nAh2pOy6nkjZCDLdBAxryMhqO1mespsnbmwQDW4nEpwXVnBa+KZ/HZZpeWp7detDujA8Z2SR8e4/y6cLwb61HU0M12JLrpxANZqHrMtbTqn32pHqs1Ndf8AkrgGIYiw9NDSJ/XWtGOGMLPVy0zkNNKXxSft+TVvhgnVpwAeXL8VfdC7UyJlWqHy9RVYzmHbnemZpPzPRD/xNVD5EteVccdrQ/kn52DlJUKKu/242Yg2jJmb3tHC3Bct5mY3hFtWSWhlrNe7k9rC/ugHwxF4ePKssgJlw6QRD6hCk8ZdgstgR/Z7kijRz/dX5DExw/XqOaWrKrzhN61GrcPcFkm7j8A== 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=0gwZ7jfoQPB6thqMoZStpwoB0KyU3ZMWd4R1Lfqqr1I=; b=TLeTcnNGi+PfZRa+KBbsoswb/VANEsLJJQ/fR/SMU6jzU4eUwvFNAsYmHIBHxt+DMPPZGda3Tdc9T039xC+KM+raJO1XMcbIWlaggSrqPAABLLOAhwawWQlEXy4TnVECwNM5PHROX5MToYWHZ0E8mqzdA63t2V7pIE3CKGyRr2jXlsFlCw9efGJFJCHwjMS4FMfzdyyOCJnBA+dSJTTKrZcT88EomMZIAClZAgc+TtsA/Oo0LxYUuKIIDNTTD7O5xfUdR0QXginTw55kUysypEhYJqDThbv2Wuqv/MwtkD0lVQbSYOl4OFrDHTia/8g3HRzrMsauNL7dw8oI2K7tNA== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::43) by DB3EUR04HT093.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::103) 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:27 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:27 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:745D2D81055A2D7BC8581BD8B8D766F6245BC26AA9A69A6FC9C5A3FB23B1220C; UpperCasedChecksum:1DE77C135C632991C9C1EB7ABADFEBA0C206EEA4FFCA3C6FA9DA267417D4DD85; SizeAsReceived:7604; 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:27 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:26 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [thnZ4Ipaoex3VO/mMtiYDCfZgmF2M1X9] 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-22-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:27 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 6cc2d80a-f465-488b-d6a6-08d91c39649a X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSiYaxVAPXjtBLAGaAm06UeVcWFaqRxGVpGMVdEekYZOjmKhanrHCLoYgGksU+sM8tCwjus75dLWY4WMQfxdQPMMm3g8OGBWs1uflTk2XFvltVf5nMp1AxLihCMXrKGQGJt65zTXfY2t4d5nDpVfDj7Dqfn79y6FssZM9FpyvbacAHNcxmYjLU0RkyX/kd3zi3hpI2LaPv/2VKF0555TOwAVm96L5Bs6Nln1HSZ4LLHgAnmjf/lfBHmo0jb0NiiLyXiuZscJ/LKjBqCgFVXpg7EDkMnQAaFhlYNg+KUODIORyhd8w7VqOmVASBOyiPgAxZuov1C+TnLuod666e2yi8F0jCqk0jalShB/y4u5Qt69XYJq9Ku1wh+NQ6HJro/NJ2RjEYVOEzwDfXLJSHAf48hNg84ePlqdEIXWsIMF5CtKK0LisGyN84DToMDqxAaQwZGXlLi5EvhXI968xBw80Wczn+ESNrLlCTWbBFckAVQtBCaP89jKnBBIuFTzD0BBPQ5TfABQMaPoO/JaepfKVhutz6mJNcMQEIdzL31ihUgYKOjK7XxvdYMyuJDPYz2KB0/1P5QNhykcrWRE/nHHu3+mmuzBFlqBUEQXnc4JCT6uur2cYkJ+eZyYPKfQQSuG0NwhPw36h0K38FnFVjJgJHXrYwjPvQofWZrAbiKamLr0fyMMf6gmj1ZbYVpfuXWJa044t/BDQ9n1xNCbVoqMx22jk19SZ75ev0ENLDPWin9pJnLFW/nMlHR9M15km0n4Es= X-MS-TrafficTypeDiagnostic: DB3EUR04HT093: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hoZvuEyxHvQ+cxm23LkLQ1cgPOkT5SVCsIion0ROwWgLxCTrQlHwAqiPi85O1AzOw1yylI3waK8COnGjUr2FDoce97m5+oW+atxINjlTWpkFCjR6liJoQbDQKq+nrlUObbW46TtOnA0TipZybyAlwI6j+XiY4plXPGlMsh7pqYoBUhssf70uYihzyQF8YqsqlDBCfaekr2mUh0Q6JRJiliVsrw9ry6SW43wqZqVjzh9fjumFwY68cPHvQSi6AxCeykKS8QYjbdx3w5BnB4W8atTEBZGbl+sv67zOGq88+9nKiVaKvkcZz3YG4Wz1jxJgVv/U4qHp+cTTni7uWqr4iHFkQ/DbnUT40S9h47XykBbQqtZjLvSHQmkbjifdVs31+iOPf6/w3Y5y0IEvc2eEjQ== X-MS-Exchange-AntiSpam-MessageData: GTc3SqLHiz0QgXk2qC2+ipbfWoHP5b5fWnwp+UN5PDrwJKPVNREGL1AZjM4GpueOvaLWR6XZ7sJE7KWx6HxQpsuYQDmaGwq344Etr4XnWP3qNnGBc9Qb2qk/8isbY3MUACcfqK+VQqmaSSSvlqLhCQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6cc2d80a-f465-488b-d6a6-08d91c39649a X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:27.8587 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT093 Subject: [FFmpeg-devel] [PATCH 23/39] avcodec/pngenc: Avoid copying APNG 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: Y528XT4YU8jS The APNG encoder already uses internal buffers, 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/pngenc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c index 5a376765cf..894b44197e 100644 --- a/libavcodec/pngenc.c +++ b/libavcodec/pngenc.c @@ -20,6 +20,7 @@ */ #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "bytestream.h" #include "lossless_videoencdsp.h" @@ -887,12 +888,11 @@ static int encode_apng(AVCodecContext *avctx, AVPacket *pkt, if (!s->last_frame_packet) return AVERROR(ENOMEM); } else if (s->last_frame) { - ret = ff_alloc_packet2(avctx, pkt, max_packet_size, 0); + ret = ff_get_encode_buffer(avctx, pkt, s->last_frame_packet_size, 0); if (ret < 0) return ret; memcpy(pkt->data, s->last_frame_packet, s->last_frame_packet_size); - pkt->size = s->last_frame_packet_size; pkt->pts = pkt->dts = s->last_frame->pts; } @@ -1148,11 +1148,11 @@ const AVCodec ff_apng_encoder = { .long_name = NULL_IF_CONFIG_SMALL("APNG (Animated Portable Network Graphics) image"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_APNG, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, .priv_data_size = sizeof(PNGEncContext), .init = png_enc_init, .close = png_enc_close, .encode2 = encode_apng, - .capabilities = AV_CODEC_CAP_DELAY, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_RGB24, AV_PIX_FMT_RGBA, AV_PIX_FMT_RGB48BE, AV_PIX_FMT_RGBA64BE, From patchwork Fri May 21 09:17:27 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27859 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp342026iof; Fri, 21 May 2021 02:22:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyw0J3Zv88kXQ7bT/RHirFEX6G8cplEWlKlhYuZz7q6J7xCKbAHKHuRsHGPLyQ9VGlRaMT0 X-Received: by 2002:a17:907:9d3:: with SMTP id bx19mr9374506ejc.63.1621588921427; Fri, 21 May 2021 02:22:01 -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 z14si4942059ejp.735.2021.05.21.02.22.01; Fri, 21 May 2021 02:22:01 -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=CuSwy1Yc; 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 9C08E689900; Fri, 21 May 2021 12:18:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073098.outbound.protection.outlook.com [40.92.73.98]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5F019689922 for ; Fri, 21 May 2021 12:18:30 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AOM5XDvgmp1H+yPumm/qlnxspTxWUhfLbiWjPN6axB+ykpQfwgGgFLQLZD7ZqV6Se3zQaG9bTDPkxmts2Lqaf3z0hfWMjTxcPo+PRwZ9GV4jdwdyPb5D30dIs5hIf0wWjF2vYZbSHpYwBntMHjeMKW+/x7XB2U0lwA0+M1VjKpd/sWBAxnHFZfPNUWSZAuHjDADHLudAp2+94E6jWQPx9CRqrgFaz0d9b2qvH/ia8bh6toqfiRX8iYjBK+Jzgt6EhnvP3gleDxNLtMcbE2X2b90i9aS/ZJEf+/WVL4K4OX/tA8jRzVpiPv6AGKJtPeW5408awRoXIv0I2ndm/+1MWA== 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=VcTXb+B5BQeCDsCGJJyKF78HLHHAUWkLKSABkID+5gI=; b=mYyMBKS6Duo6LGbVD5DYrEaWedTaddxDGEcyBkrss9Wcpojb4ktYR6JtQXl835RvpOjPJ4qZh9z7+gsUDoSkp91AE/FWEZl/0MBabGtHp+TIAYoFUKEVHZGZFaEJBTa1hIUJzR9Gfq87mfcfSEFXuuujDfI3aYAez5VUGf2IzcG8MRk4XA08VkW31N9ipEdmlK6ClR2pM2wv5AI9o4vABT25rpuHIl7yWMnuDU7FV0qHSKwzQ8narCcObLp3rnrAYY+EXMcSoz1MJQE3vuYGdc7N8NdacvI3kpuiBJflhDB/HOQYV+thsNThj/0lQjvfLhw0tVAyP6WqYDmWYPTgrw== 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=VcTXb+B5BQeCDsCGJJyKF78HLHHAUWkLKSABkID+5gI=; b=CuSwy1YcxiXfjcLxuo6FW6qFPhXSW0Y+lrI2cZIeXwujbtg359KQt5gb/9WSqhLlcTO5rcimTNGzpO638n0nAMaPY/VHDge+wkdgT4IIkTjfPb5InrWwIxQQ+jAXqIlApfJ2hrcXQXyZtQfSvk+/7wGxDiZodglPRgqGbckkOSoXSw50quiXJzxfN8bLpcLw/Ca4FkUNlWyou+2Y1EJri3iupzac+knbt/MjPiROIHtCIoEaXPpUXDkmlHzZkcsxTtBGFi9YfSBc9LH5nKJeFlUWfbBKqdIYCjkLbnysVrLI7tokfPKp5WXNXg+LWkyqymYt2NlvXwH93/0blI5/Aw== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::53) by DB3EUR04HT153.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::173) 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:29 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:29 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:286A7AC2CC31AA3CAF48C43296D0F564F8F56751F14B0304301AFC4FE756450A; UpperCasedChecksum:0A509526B0B6D66DBB8E4C900D0D8D3346ABFE1002A6D230F6418BD96E4B9AF2; SizeAsReceived:7598; 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:29 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:27 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [C4kX+DzWM9+U0zGKMbcnqZnpkUo/IiBf] 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-23-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:28 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: d508a3a4-d726-4910-f75f-08d91c396545 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIohmq9k/yScywu9xPSfiUSUWWBJ9vat9yGda2uv9egNk9nm7rc5xF/JmN3PapTylVgHbG4GmG0a+R846V+JcHvCAhORMbEm9FOBgGry1hZWl3b8G7JlEo/VDsdG48o7AqKl+oiqUl6rDv+9b8R1Bq7+3uKVQWtoqQfi8tpDR1EWH37SRndk1mocs7E2g6NUFLN5pHN+aE19aOi6DM71yT1e6t/QnybKURb0fLWfzJ23th57W9JhQprtHAoJO9h9Q9aUEPq8E0t3mCC906JCtlfW+43Nwg75KNjwo4Aq+PaR6QOW2yu0Wcdek613ewCUV5RHRlz1+wp/cB1YuN+ULnaMnHq17NUJ9dC4Xjsc186GXYZxBu0boq/4YTpwTYilhh8yEtFAhYP3rOMo7E6A4hygHGyvoIYwofPH4bIaJ7K1ZBVV1mY54B8hWJ3+V+WIorROh0fYU/iKcHbVPaECMFyMw/XHgmwlDnQsrkq1sRmOnuUog05caAoX3J8BQwxVunu/qqGA/A2E6T2QZyhegOZp3GHqcRoUi318uabB9TN28grW0Dj/RHw3F+7i7M615j6SYjF3NxNf/lE0ttvs1A5JC8VBngghcz3sI22TN3e+2bT8Kf2dHIxuPw8fWDwH7NIwRGUIQNqA1Z/JX1QkJcivFw87P0LIt0B7I5RVrRXn/+ljQrtsrs2G6856x5jiz0J9fprIEHttw== X-MS-TrafficTypeDiagnostic: DB3EUR04HT153: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0SUOwDL5VdWwO9LBCLJmcoovxoaHX56EAKf4UQdRqzIMc7FCGAE/lgiH8+JNM1a0ljZ23vcjBW9WZqgCPFTt39GN/TIJLwsufTXkf2P+EHehxbGt850QxVoz+1huxBJF9E5NMQrJ2lrmi/ig1vytaz0ZAfgD8VPSsB+3xU+Oqt1m9z0dMx4kTXjolfE/h/X2KhJdQjEOfoCrgefyfQAHv7DhEQpVlFuiMhAJ3/Ri5UjNC+gX2HY17117FqztMy1kKJu750r1WH9VK0FyEaNIMe24+ibWAQw+ngG+c0qWj//Krulf9WmHO83lZt0mXck+JfDE6SZciCw/12i/uqfQBG7kzwIDmhUWKRqk7fJerwQkWQECT05mNsWJ4W4u3p6rXXi4L9UOXD5+7/xl0gNKcg== X-MS-Exchange-AntiSpam-MessageData: eHx58m3HqUqpDCLbxLq2BcImJrdk50Ld0JYIioNSX8+2wjQCtj+XzKt1uEkOenZE0O0wfKGhV74JLYAoP7JTXoGYvgax3y1Xrr9rQcgLGSMwkxorUXzE1z/PrIsYCN+qhK6V9I/1KU17PzxCNTNGHA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: d508a3a4-d726-4910-f75f-08d91c396545 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:28.9592 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT153 Subject: [FFmpeg-devel] [PATCH 24/39] avcodec/sbcenc: 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: q6nRnis6Cjn9 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/sbcenc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/sbcenc.c b/libavcodec/sbcenc.c index e87c623d4b..5f9a214a1a 100644 --- a/libavcodec/sbcenc.c +++ b/libavcodec/sbcenc.c @@ -32,6 +32,7 @@ #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "profiles.h" #include "put_bits.h" @@ -290,7 +291,7 @@ static int sbc_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if (av_frame->nb_samples * frame->channels * 2 < frame->codesize) return 0; - if ((ret = ff_alloc_packet2(avctx, avpkt, frame_length, 0)) < 0) + if ((ret = ff_get_encode_buffer(avctx, avpkt, frame_length, 0)) < 0) return ret; /* Select the needed input data processing function and call it */ @@ -346,10 +347,10 @@ const AVCodec ff_sbc_encoder = { .long_name = NULL_IF_CONFIG_SMALL("SBC (low-complexity subband codec)"), .type = AVMEDIA_TYPE_AUDIO, .id = AV_CODEC_ID_SBC, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_SMALL_LAST_FRAME, .priv_data_size = sizeof(SBCEncContext), .init = sbc_encode_init, .encode2 = sbc_encode_frame, - .capabilities = AV_CODEC_CAP_SMALL_LAST_FRAME, .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, .channel_layouts = (const uint64_t[]) { AV_CH_LAYOUT_MONO, AV_CH_LAYOUT_STEREO, 0}, From patchwork Fri May 21 09:17: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: 27890 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp348417iof; Fri, 21 May 2021 02:32:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyKC9RLzZu4Q0lJ+WPuGrNxqyCg2AA0a2jKk6kjPZPZs4mVjS7aF++26A7+ufAhgrCfVEoB X-Received: by 2002:a17:906:1cda:: with SMTP id i26mr9567343ejh.412.1621589578195; Fri, 21 May 2021 02:32:58 -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 z16si4420559edd.136.2021.05.21.02.32.57; Fri, 21 May 2021 02:32:58 -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=QqZUXG5c; 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 270916807C8; Fri, 21 May 2021 12:32:55 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075095.outbound.protection.outlook.com [40.92.75.95]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 877D76807C8 for ; Fri, 21 May 2021 12:32:48 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JCw23Xxs10hLf9w4doZ9EbqOsuzrC2bqaII66OFiv5M5bi/NprdlZH/iZ0u090Q5wc9tXdFAm2Q3XdMIWlSu2122Ms6va1I75z7uIcCfiAjc7dkCPT0IuzHPBqAc6bqYxqP63vKWiw/f8B2cHyPfovELk7Oq3v8s2tfHsiZtoKQvhzOn2S5WVn1+eWN6SwCyEB93QnBCqYavHXj/2uHUjNMExjoSyWftNxMtXXKRwBwJQX2RBCQZK88V8Gz9zQwuUVEWQhdOmOrbsBXkp5FEypOOyQjDWuNO4u/5LOF/qSLlsVqr8loNx7A47MBgq28NPunTnQo+OgaKzMpciADdqA== 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=bdBB96jAlNxPVKG9dpgo/DYHUCBgomA16vEnujPBD3o=; b=JPEWacSF78xGnbxtW/TymBVmTmRY+CTRuyMqLcxMNQUk9FzBT3wqmNczQ/GcJckly2Gu/tqvj1A4VYVzTLoMf1youapjzXoW+yq3V5k4MPSovMvXRRIATsb1sPfPwV8ncgreaolPCV/K4VXRVqVbPZzpCqKe8A1bBdDrYT1ChSBHrsD/I3JY98JdjL/kRLpRSKLkIghGD+acg5+EEawR2jKxIXZI1XNVyG46LS7PZZS/inHUzHOP/q2MuGv1o7mH9tIWWB54VculvSWqk9HTDOmroOCoGB4V0mR1gRsyFZbnuns8cPMlT4gn3w84UcVFRzSQBHGRMGw6bRPeiVkH4Q== 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=bdBB96jAlNxPVKG9dpgo/DYHUCBgomA16vEnujPBD3o=; b=QqZUXG5co1A86Z6VCvNHJZuoSW9HiYOy1Xb3ZI0lEResXGCPH7JA370K1uhdCSIJS8ZOyVQCIm1F3PgtrqgrOasYXFPBqNONTke4YTA5Nxd7ZTmNYofIHkqNRrK6/WsflWNP3sHMNRHOaW6crvCsclc0Biysvll+qbJUbvOtv14bKVbUwr80CifEpUNt6rtKcLi0PMwXLcftt1yyoix93b+EvfSBFqC5eKAOOIcORidwh3cZ0Ez74orpbcMoReWrtp+Va8FXJdFiZUBacjGZuLl8x3F3dnw7fnrhfCz4zXX0666/YDp03Vp5wknm0Qnhn/vSdYYpTG+sTOqkrlhhtQ== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::52) by DB3EUR04HT016.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::444) 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:30 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:30 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:1CC0F2FB3DA6DE0B534EFAAE09CF8A347503DD8A38E03555A55FDF981387B5FF; UpperCasedChecksum:190022F19EDC2FE93BF35E3CB893A8328FB81999A30ACB029DB4BC2309F73384; SizeAsReceived:7582; 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:30 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:28 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [jZ7ykyvneuOwY5ShZBHlrsfH0lBUynJu] 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-24-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:29 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 1adfb8f0-ad92-4b94-ca58-08d91c3965e7 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfau0R68P8nyX6jHiBTd48gO0OztJ6acMsQIjGIIm3DfDJmVb1r85LDa6wdwnEZCPY1sLCALjIefYrYE3+ZrKYwAfCPOxYx5BwERha+QZcM8omraFjaSkOM4/3Cw6rK6AJNm+wgQ4ZjOTIznFOWkq0mDIMWKf43FQA+e726bE4Q1mR3Xj25n3aOeTmz5TAkDaPX/+KiT1BpVG6mqov/Q0ys1CW44dxcqKAIypSqiGV5ZbgMbd71A/GNChH8iPUeLE29S72X9RNltqCBZ2DsGUwVlYJmUNucqx643bj4PQZIrIjaGx9Zx9d9icq5J13L+2Nb0qPP9Jutv23LRheI2aTqQgB1iVVpryy7qhk3QdmzPO+CNMV6ktmaWNEY7+g1TR2gfMjr8RXPwlwkk+wBzEj5noE1YsapHCvfmW6r4iKAo3rF6ie8FoesDmfbldwxbG9Fr2o11sUItquC00Nd3D/L8hzIpBcd6/BP6QDGk8KcgP8fA530t1kRkXhbcbQPY1BvZnYgGvoYZbH6C6tPGr366zxCW8nAULS3SEJRztXkqZRi+qf/JWXibnMylB6dWvr3qr29O3/k+SvR5SmlHGsrwhCzeBDD/3gtctkgEqBuUj8GBuxthpelDtRPS04Mhkr29slnCSUFuTNYrONtTi+Q/FSIoZOKh2AMjbyvUvmJWwciMOTM0IlknPNYKF5ZxfiGw7I5fQ/lgZYs= X-MS-TrafficTypeDiagnostic: DB3EUR04HT016: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KviXcIEStAx3QeBuRkOTalDhjWI5KIeaAqopTb8gOafZFyFqq4T2i6Va10HkJRSZ7cYkWo2oXouINE2nKGT0cR2akwXC6ZlDy4ppzITVfkCqDIblq0aSYY9Kncns4EJcnQQsxNA3YfxFnKvHxgjIAKMcR/0wXRu4QQLHLZz44ZZszuk6sJy0o5qTrRIg6IEIJVvxtH6FJxFNVmCHmou3F9+xbujkluP1dR7oBkFWIbgDfvMzeGYU6G5txBrbM2X8e+wEZo07YfmzLtgQgxiL7QuVzOwGl9mJvjWN71hvcjIjkhKRkXOft/7ky0HMGoe6EMVbZkk0WhM6FdZSGSwCrfqgayeTrZRpxozxDAH0OPRgwtyEZ2PvmXUi0JKgCCo0DwBCzsLxduOvmd7pn9fhxw== X-MS-Exchange-AntiSpam-MessageData: jRBkcdxPkP50hyvL6sAIiEQ3PYcJ3G4+X+6NUhRkLWUTg/vWTMPlmXkPr+fELB1iWIdBy2VbNVrcN2Ujdm8pMqcgo+SsLxhjaIJIVW0GwF/UQcdexgeVntGsLNNrrEpwltxsI8uo78CV8P+PLFk5mA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1adfb8f0-ad92-4b94-ca58-08d91c3965e7 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:30.0077 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT016 Subject: [FFmpeg-devel] [PATCH 25/39] avcodec/libxavs2: 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: Ojylf158ESCb Here the packet size is known before allocating the packet, so that supporting user-supplied buffers is trivial. Signed-off-by: Andreas Rheinhardt --- libavcodec/libxavs2.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavcodec/libxavs2.c b/libavcodec/libxavs2.c index 99fe0e3286..9c5a576e90 100644 --- a/libavcodec/libxavs2.c +++ b/libavcodec/libxavs2.c @@ -23,6 +23,7 @@ */ #include "xavs2.h" +#include "encode.h" #include "mpeg12.h" #include "libavutil/avstring.h" @@ -214,10 +215,9 @@ static int xavs2_encode_frame(AVCodecContext *avctx, AVPacket *pkt, } if ((cae->packet.len) && (cae->packet.state != XAVS2_STATE_FLUSH_END)) { - if (av_new_packet(pkt, cae->packet.len) < 0) { - av_log(avctx, AV_LOG_ERROR, "Failed to alloc xavs2 packet.\n"); + if ((ret = ff_get_encode_buffer(avctx, pkt, cae->packet.len, 0)) < 0) { cae->api->encoder_packet_unref(cae->encoder, &cae->packet); - return AVERROR(ENOMEM); + return ret; } pkt->pts = cae->packet.pts; @@ -230,7 +230,6 @@ static int xavs2_encode_frame(AVCodecContext *avctx, AVPacket *pkt, } memcpy(pkt->data, cae->packet.stream, cae->packet.len); - pkt->size = cae->packet.len; cae->api->encoder_packet_unref(cae->encoder, &cae->packet); @@ -290,11 +289,12 @@ const AVCodec ff_libxavs2_encoder = { .long_name = NULL_IF_CONFIG_SMALL("libxavs2 AVS2-P2/IEEE1857.4"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_AVS2, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY | + AV_CODEC_CAP_OTHER_THREADS, .priv_data_size = sizeof(XAVS2EContext), .init = xavs2_init, .encode2 = xavs2_encode_frame, .close = xavs2_close, - .capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_OTHER_THREADS, .caps_internal = FF_CODEC_CAP_AUTO_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE }, From patchwork Fri May 21 09:17:29 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27887 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp342119iof; Fri, 21 May 2021 02:22:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzRpHbz4YABFZuyBDLOUwNY6MaZPQrunvJ36jaswWJfduUcQVty9W8WgU58r/IgrAKsCXMT X-Received: by 2002:a05:6402:1256:: with SMTP id l22mr10183731edw.207.1621588931601; Fri, 21 May 2021 02:22:11 -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 b26si1973515eds.88.2021.05.21.02.22.11; Fri, 21 May 2021 02:22:11 -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=m2BA31ac; 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 840B9689CDD; Fri, 21 May 2021 12:18:34 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073018.outbound.protection.outlook.com [40.92.73.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 957B7689EC9 for ; Fri, 21 May 2021 12:18:32 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C8XGIkKXSGnhwftlqm6cRJmnFylm1KxQZQJJh8YsK9PhrfrP3y7IqVVXn2kaf7XHkkg5qRsMlcsOd+IiDeIzz8KUt/4tto1Wu+rBMKYyRossCHKbNKPHRdjY9TelmROjXf5kGBjq6+iIZ/DIaw7hakTZ8B3AHhe/LF8xIOlQSjW3CTpjpmCBMDokgb1SjwiNQEQpsFKTgzoi+Nc6ztL1bJ2VlwnW0EsXBJ9OgUoKIw7Yune4Lq8y+rr1ObSBCaVSp7qUyKgmJoXjW2+9TLzWykjm5prVVA9CN9XTY5irT4i7VOQ5uKAw8JGCk2ap0auUH9ztn21j52kpmVmtnlwZLw== 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=4Jaa+9OYN7bi+xoIcjEQVqsJ2pu7M8hQpudljGwp4Sw=; b=MMpxYHP8h0moC9Glyu34h/HqFPtaLNZiZXtCwtFCM+1UWcKXyMA+UbRGNK2U9mcsNKNbwJ1K7Z5Ki5tVA/6KJGYeMC/aGNKwoOC99eBqQCPUm07qxgc2mS9TphW1TQVzVWpDGM4PhaxXdPtj7+9xDgGkTZ94dQGL2/ujrITLASHdd2i/m3zNhtKds0hP0j+P5JE4VjJ1V+6i/wJpY5Dd5Tqa5C/vNwefo+0dzTzPnv3s9IWog35RKtnJbetPns1M/DohoJa+RFmfog7Oe79IId58IfdHL/h2TgWVBhErGBOoeIifxSeVgn8ftT8jyKEFpWZIA1hNtfnQJ8r3e5f8lg== 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=4Jaa+9OYN7bi+xoIcjEQVqsJ2pu7M8hQpudljGwp4Sw=; b=m2BA31aceoyK52cjoCiNX+ZEDJv91VDNsmzaNuZ3LuSo8D405oUMuqRwaKjviCGsJ3l1I+/F7vcscpDhb1IQ9wllljIDKhR+e2rpnfbXa5zDeTqj/mYLR8s8dfMLZxkd/e3LJPUeLyYi7sUKa1FMUcoUVHyTHS/io8jC5/E3Bub5XifjICGinEBW387butFEcmStmXOfboRZ+C4/4mDypiQ9znjq2sxHXNx1kjLdv70BuRqYgYC4ZzibAJPZgyhnE4fNl0Ep/zoTqPrEN+FPkpbYFAWwfAvv+JlhdHi5ArLJpLTOiBCwB8HMh2EFxMTpZrBHuuq1qgztC8AF2K5HgQ== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::53) by DB3EUR04HT153.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::173) 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:31 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:31 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:3B15E1B5CD759097F3F9AD73195D9C6C43F028C2AFC4C1998457A703FA257822; UpperCasedChecksum:7B42EB72031FFA3154A159D6FACBF776105BAEE10ABF96932438CBD87291BE88; SizeAsReceived:7605; 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:31 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:29 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [lPfV30KqVEPbn2SaIm9eLpkBioNoO+bw] 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-25-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:30 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 08017df5-9daf-44b2-ebb4-08d91c396680 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfau7KPNboV2V68F1F/pm1x9XFjMOAvYeBKh0eMFI+jLf4Tt+hFmq3pTK/E5Q4gyXJdMYuWqIx8dZZ3dkG4pC4O5gqZFYnbQ3rFp0HnqYrk+zPhbVfa3HvKKP9QOkF9EXcpLoc6IpVGAYnhio93fkw5tSXmKgSdQzlE5Ur/RA8NVTg9DezMeY2f0SQTn2AkWbdabg0+/6m9Lsl80c8U74CU2IBxMJ0Op3mzxwcPN+nuMpgQN5/Al6KTV/KTQw1PtweHLkGK6dV5U2fzNWER6bhN0wmDlaFcJVW5JAIA4Y0apFEHJVao0gg/Zp+O0ZzcQYQ0sT6boHTgrq6yHJ3eQZLDpE2ESSg25r2fVh/9ZZ2Uexl5EKmF7IVsJ5utCnTp7ldxY2mH+rD4uTehyiGQDxVBXgxvm9h/r/o5SaPkXQxh/vVO/bKYTusdkHm60fo3apKKox9ca4PG2CVn/jhY91EnNf0/UvC6yPyCWYtc0ulHQGY0f81ije1qp7+T7RMedq4lHM/ZtQgghhhGYTAjxKKwsKnN0oNXNt1iGeArERI2h8pLiCn3UVDvRLovmZDTTE7ngDT0tFcNa9oFLwRc/9/24u8rfi3pSKajEW7kF46ISUJ2mj+E8TUWgR86RVkYDrnBgxhxBrduSlhWZ6+tMNQprq7nDmQsWn7V1LnIJkYdk6FA7YdXwqjFgYz79c95Q9/F0bTUXrDBVLbQ= X-MS-TrafficTypeDiagnostic: DB3EUR04HT153: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GCy2mOSALGl1ekZCoQ8TCIQOddgVoQyR6fJQ0pP/iH7uunIiVs6j4Y1z8uR8egoIlO6CfhaYg9tmaCYxWwp0XEZdOzKYr58DVlJYbSFqW0migwoW8ZGrmBcjEx07mhDF+lugKA6UuKx01+5DfwNU7S6OM0CneKs95ejZAXJDCVcwcFWm+27Q7vv0tf3c6bdhcfkx7r8DnhgjM+BctthV2/eDSVWDOz24Mj58gw3RTMz6px6Yru1crAO0JgNj1lozXEk2azxklUaDtcIsfr117HWWxRJUNNqHC6cs/vLjHSf6mDRwJY3ToDUTGywxkJBM8wfW7+enSdTGJqYrH3Cb2ymZzrmw5ZY/hcTmi1ONwF8ApvCHfA4YcJxdqIUjB04AtkraZZFPxDHIHd5jQXLHrA== X-MS-Exchange-AntiSpam-MessageData: PqCWLEKu3GF/kP2gGdxf8TCOtHHjcOAiOM7oLajUjWDOIsyV1NWS9icnyASIsiciw7oN7iGv8JeCsga58v+mm+cj64HqfwtcdQRT7/A69JBJSpxMh88AwaWPf5VID1tWV61kvQBnHfuy+wl5oHn47A== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 08017df5-9daf-44b2-ebb4-08d91c396680 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:31.0393 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT153 Subject: [FFmpeg-devel] [PATCH 26/39] avcodec/dvenc: 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: VX2nUGjJ/XF0 When the packet size is known in advance like here, one can avoid an intermediate buffer for the packet data; this also makes it easy to allow user-supplied buffers. Only one thing needed to be changed: The earlier code relied on the buffer having been initially zeroed by av_fast_padded_malloc(), so one now needs to zero the packet at first. Signed-off-by: Andreas Rheinhardt --- libavcodec/dvenc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavcodec/dvenc.c b/libavcodec/dvenc.c index 393c8b34e9..a464e3ed87 100644 --- a/libavcodec/dvenc.c +++ b/libavcodec/dvenc.c @@ -39,6 +39,7 @@ #include "dv.h" #include "dv_profile_internal.h" #include "dv_tablegen.h" +#include "encode.h" #include "fdctdsp.h" #include "internal.h" #include "mathops.h" @@ -1170,8 +1171,10 @@ static int dvvideo_encode_frame(AVCodecContext *c, AVPacket *pkt, DVVideoContext *s = c->priv_data; int ret; - if ((ret = ff_alloc_packet2(c, pkt, s->sys->frame_size, 0)) < 0) + if ((ret = ff_get_encode_buffer(c, pkt, s->sys->frame_size, 0)) < 0) return ret; + /* Fixme: Only zero the part that is not overwritten later. */ + memset(pkt->data, 0, pkt->size); c->pix_fmt = s->sys->pix_fmt; s->frame = frame; @@ -1209,10 +1212,11 @@ const AVCodec ff_dvvideo_encoder = { .long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_DVVIDEO, + .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS | + AV_CODEC_CAP_SLICE_THREADS, .priv_data_size = sizeof(DVVideoContext), .init = dvvideo_encode_init, .encode2 = dvvideo_encode_frame, - .capabilities = AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS, .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV422P, AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE From patchwork Fri May 21 09:17:30 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27884 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp342194iof; Fri, 21 May 2021 02:22:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyYmvL4/fnxUrnBU4Dn6npJW9zJcRdPEHd3K9yThI8TkGyFUvNRaMpxrUGOzIB89d2dUu8N X-Received: by 2002:a17:906:3042:: with SMTP id d2mr9479822ejd.234.1621588941588; Fri, 21 May 2021 02:22:21 -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 j22si5757929eds.591.2021.05.21.02.22.21; Fri, 21 May 2021 02:22:21 -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=B9R0NcKW; 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 7013C689DE8; Fri, 21 May 2021 12:18:35 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073071.outbound.protection.outlook.com [40.92.73.71]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 818D9689F22 for ; Fri, 21 May 2021 12:18:33 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UKJJfeD4pTIymIAJowEZko6kyyHxMCEEgvMqaFG1hoamL/Sy7EDbVCv5FuxB6CHYhTzF456BKSxD+3tKLR/Abj9R6067ln/UjDzADSCTWzsGBMnP2yrqwLqDac7R+dCmcLi7xplumX1W7Z7qHNGttRV+VMP60zWRoIwO1sWTDlbrOFIvvXekZFFIdWj4yBa+3x95KyQDGZc7JxMx8z4sBmh1y2aKqCFSWWN8rRHRBqgioIHbPBt50ZqEVmS4NzrlkXj75W20vtwoVRMgL5sUoi7+dRXyO++Bp1WhzLedFprBph3Gi+Miw/lljSOhIakXLvOPRLggRRDpJR8qUScApA== 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=qQVkSBt/jjNJAW6p9tmJfYcHcnFIg5n0amcXdg3KYXY=; b=LXgFe8D3QHEiXlebRkfyIcxdyhO/n+fcHuR9X0otq7SbMYjqeg7VK72/JgzJCylrfz2QRkJdMSPxVfm7nWM/f5oKJuxiN+zLbXFN/OMf17WuNh26yL+O9J+X77DekbxOBWJYzDEgL/3ll4fhfoFmuDRQFfzmDvbvRe6rj2NF+URqFYxxCwkXRtq9m4vjnfR5ZLaplPGKyKH89lc4wWpDcLd0uN5ZmauWHsmJcyCgMjOnCkmk0zVTgIDJ/fBQU/gS78fGC0bVdxYQo50JaDc6n6qnM0vyPnEw6CNiPzh2j48972jjSqeNRQHThmNWnDsaPTJhT9gn0StPs1bLTzT1nA== 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=qQVkSBt/jjNJAW6p9tmJfYcHcnFIg5n0amcXdg3KYXY=; b=B9R0NcKWlgShqAeSKc4mOXwwtoVr2wMzA/j+qsgM/GF4SV3s+lKOsW6JZ6PUhhTpLBR+piXM2GOlCwiSiJiNQdAUYq4CyFxQN5ZECUxJGeIccoriVi/iPHIwsq9PXCDRkQRsPYYD/OqOd4+F9icezZnUJHpXDvGcrTBnJ3F3qXDlssSox025pX/yJ68g8fMLMfu/gM3pu44z/z0q8FrOCDVFpm+kJ/+MUGEM4qSnRUVw7R/6P5NnOggaR1i/HvmcoqktXj/sb3spWm7xG6EdVKJEDl8JLywbaU/lDn5fFJ8PSgR1g0/2WQPF3ItTNeMdPqYTaF4CwV/dKax2yQht9g== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::42) by DB3EUR04HT103.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::343) 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:32 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:32 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:18D22824B95B29B1B4E1E034AC230BC9CB94A4B8736478CD4B5EDEDEAEE7E73E; UpperCasedChecksum:25D2146AC5C3B96991AB7E9B2E70352416330AE42909E7A8CE96512D6F774438; SizeAsReceived:7593; 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:32 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:30 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [Gjd27SnZL3GQTKfDF95wu37gW/uRCf8I] 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-26-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:31 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 9b14afcc-b103-41fc-8b15-08d91c396716 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiSiYaxVAPXjtBLAGaAm06UeMR5OLzsfL7em8PMXfYAtJKfODzAQRXioQSGo7zTYOMD48JR4vKcU3llCcXvrKqCU6MO25VOTxcUMGnKy19sY51jTZtnwgwnjg8/vI1JoWsobo34E/yBvDiE7KYaRZ4XN6TdYTAtCr1qWHUsiwItoMre4yQNpaegKrgz/zA3NzYW+FOAIYZn9CRAhAh/uwzPSY2VfPWK9y0znNg+eCRQWPT1Mj7u1LIwPKH3nMI6HYnKzTmJKRnw2BO8SQLLEpwlverM/plHk1Rr8Eka+IWbcnTX9rIw8i9L36518+vKZXahEJwmjPr8iToQOaHV05QaiBdaIMFMMduUVnLXAJUDPLcj4aRZlutOZlprlYufoA1ilURmdu8gmi0MgkNkA3uRU8xZQs1whl66DtmA25ybNCoCp4bzP+itOeIa9gqqG2bP4nLpMofGVA/e5jLoQDmXHF2qjPKrDpztXxlpzMyq7+EGh+Ua14XkR/na3NavaKGDcXCTwv3wqC9j1qX527HithfIxucmOhRaru3AuiKDWEWSV01OkSS3T26ekFPsK5eNuy2f76RpOoLdEAa02IN0EDS/j0v+vdFRB2ZI2MryJLA9l+oGAOolvT9gXQFbExXYu0TVZBHWIBR1WdmXwoydhB81Z7XoR9IRSN1gnVmRX7ySzaAYNA2f8vF+7PwrN4e2nRQVvrDUK0Td05+8zwbKkNYTQliuL40+JMR7s25AkvEb3SjLKqoztiNACEvVHfJk= X-MS-TrafficTypeDiagnostic: DB3EUR04HT103: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: k6l2FOih940c5yUOHNPn5G7HOZkwx8E4T2NLQVyu/7QxBFEZzm5pRg3VUjj4WHimi+wQdfjp94AqbMGM/C8BPqZbDY47aDpDi38KyCVLJQyYc6J2DK3zKuq51uFg8oKRgdm4dFzqjSdIkGraSkbmk9PXFjSN0gXV1ZpMt7hYyF6cOi9wShzbCEDRVMPVZii695u731z4hcKc5Ig6vFH425vj8S/iefcfMve2rHMbNtiBbn2LFhYxd7PTBHEMLD8WzSzD3hyEKk9Grq22u45w63Nar1pmYWLa/jbw+eAAVOhAITSqMKwWk+ioepOk+tWariOaiVwacZL5pqS8qtzDq/M5g3w2qoerNiPU72qLRBfyFWrMLtIaNtw2AfoqWk8yjqUC6wAxHtkxjda5lW1LYw== X-MS-Exchange-AntiSpam-MessageData: ZwxKDO/Rp5PP5MaHF4Ja3jsV/AO3uQcTKNpQjV6uw7eV2nMikuJ7ZVGkCJfayUjtOPjsSBsqgbmf8+l99SPzWzsitWwZzPsLkvHZs1tJuaehGdM/AbYfKmzw5k6WAOHE3Ss37VJAvZgOBcQbKc85KQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9b14afcc-b103-41fc-8b15-08d91c396716 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:32.0189 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT103 Subject: [FFmpeg-devel] [PATCH 27/39] avcodec/omx: Remove remnants of old preallocated 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: S6K994s3RKxI There are no preallocated buffer packets any more; this feature only worked with the old encode API and only until said API was turned into a wrapper for the new API in 93016f5d1d280f9cb7856883af287fa66affc04c. So remove its remnants. Signed-off-by: Andreas Rheinhardt --- libavcodec/omx.c | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/libavcodec/omx.c b/libavcodec/omx.c index 3a113723d3..1e48579d4b 100644 --- a/libavcodec/omx.c +++ b/libavcodec/omx.c @@ -863,9 +863,6 @@ static int omx_encode_frame(AVCodecContext *avctx, AVPacket *pkt, avctx->extradata_size += buffer->nFilledLen; memset(avctx->extradata + avctx->extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE); } else { - if (!(buffer->nFlags & OMX_BUFFERFLAG_ENDOFFRAME) || !pkt->data) { - // If the output packet isn't preallocated, just concatenate everything in our - // own buffer int newsize = s->output_buf_size + buffer->nFilledLen + AV_INPUT_BUFFER_PADDING_SIZE; if ((ret = av_reallocp(&s->output_buf, newsize)) < 0) { s->output_buf_size = 0; @@ -885,18 +882,6 @@ static int omx_encode_frame(AVCodecContext *avctx, AVPacket *pkt, #if CONFIG_OMX_RPI had_partial = 1; #endif - } else { - // End of frame, and the caller provided a preallocated frame - if ((ret = ff_alloc_packet2(avctx, pkt, s->output_buf_size + buffer->nFilledLen, 0)) < 0) { - av_log(avctx, AV_LOG_ERROR, "Error getting output packet of size %d.\n", - (int)(s->output_buf_size + buffer->nFilledLen)); - goto end; - } - memcpy(pkt->data, s->output_buf, s->output_buf_size); - memcpy(pkt->data + s->output_buf_size, buffer->pBuffer + buffer->nOffset, buffer->nFilledLen); - av_freep(&s->output_buf); - s->output_buf_size = 0; - } if (buffer->nFlags & OMX_BUFFERFLAG_ENDOFFRAME) { pkt->pts = av_rescale_q(from_omx_ticks(buffer->nTimeStamp), AV_TIME_BASE_Q, avctx->time_base); // We don't currently enable B-frames for the encoders, so set From patchwork Fri May 21 09:17:31 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27871 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp342295iof; Fri, 21 May 2021 02:22:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxYOyVtIdTO8Wp7WaSqUthEUzDqM9jF5GG4X/E8wWrqUQSkvN31pDw/abxXgWm4/14dgPen X-Received: by 2002:a50:cdd1:: with SMTP id h17mr10139477edj.178.1621588952275; Fri, 21 May 2021 02:22:32 -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 d21si5120046ejm.343.2021.05.21.02.22.31; Fri, 21 May 2021 02:22:32 -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=elpmN5G0; 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 4967C689FB2; Fri, 21 May 2021 12:18:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073026.outbound.protection.outlook.com [40.92.73.26]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2076C689F27 for ; Fri, 21 May 2021 12:18:34 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K0SIsNclVVCLP9+SBcWV+mmNe4nYkQ6+Ie+YB9QvcpMFyKNS7tRR01QinfktN8Sa+D4L7uSNfdVMfpFrsWweF0AsNG0hfOxN9rkdqKVVHR/mH3gbKxJNt8HQlqy1kBtzn2+HdSRkFWnaHif3v/GDkj2FWgEr9+LLkvGf9TRoQ/PQXo2ilssFeUNPASnna6/UbnbOmOL2XREbZGd+ubEITOCHkBZUuIu9u6gmqzdV0aw3Sn7paEPlwMZvtj7/LfZp3FziYdxghQsZutVHamy+EbYhjSfDN3794Az7qJ9MRL0qVlTCArs/AnrIRdSWN7oymvVHn3z38KVw9uILZFBw/g== 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=Mu8U/8X85/1MZQAvPMRNC1ibCeR6MIco8vSK8qOMbpM=; b=UMZd7gr5N+n7QMCvyzD1YUGw7PF5YQzROQZ18mMcOLtW+MFh1MGsvHcCiiMuKZmu/DY7/MKomPeQE4VQ7J5UQ8NaH3lDyieF7ASNE+qBKIbyFrJmtdNRoj87x4LKu5voqYYuctKbu3cJQJxTlbIwtEhKe/9FJoYjhmDAtCHDh5MiQ+7PfGBgpeL9Z8wpfUwlAFHuVX2HxRq0PRptXlNRwEc6C5/0w+nrC/12987ATugrhNG24gk66zzZyCzZOFrtY24hJ6VA5Lgk8oeLIojldU6qIaCG0Da2+MQY+kFgETklUzAkpx1qo2t7zjzlA3qrhSpcFnEcwpm3l33xTCvxkg== 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=Mu8U/8X85/1MZQAvPMRNC1ibCeR6MIco8vSK8qOMbpM=; b=elpmN5G0yZnkBTBH0utZSu0beDrl0UYxmyPlUr+A21ys4WbI5ICpcWNGAkzmA/0BBt9Cr3r7hdHtMzttsdyK3ZfM8kRaBTYWERHQbY/LU8gz4vOAg12vDIGERo4Dn0cUTvBOAvKbHSSZ+WZSuLX4EM+ZWv5aQwhLWZB4qnOMJtAHlKSyUnOYQ0QLpIlNh+kLIYStes82laFD6oGW31E5c3dHx3FT6cyg4k5ZluRbbjVX6vIONebx1i6roF7FNFwTgsfT3cayybNu9VZOwzSpwW3jh4/8VInK2z9rl6cetgdZTfb1R25EEG8yX5YtjZL51xO3PN6yiSF+3HMU9ZZ0/w== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::47) by DB3EUR04HT128.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::439) 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:33 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:33 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:C3F9DBFA6C6AF7488FE555BD0EE3402C16E1E1330B4A213702247653B118B800; UpperCasedChecksum:9DE00A8164DE7AA637C55DB0CC7ACE530180F55337B87C3EA865241BA524D113; SizeAsReceived:7563; 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:33 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:31 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [AOsE3fcFm4vzk+Zf9qgK4EY55FPH2aXe] 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-27-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:32 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: cbaed29c-90c8-4d2c-7883-08d91c3967ac X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIohmq9k/yScywu9xPSfiUSgSubOgeY0o2oywbo0fiyvJvfQYeFTNeCGYDLzDZbYnMFrXrX74adga/IooFBygdM+b+nmwSg9VYz8xfqghw74SzySX26zkQXxbnazUBpVhg6w1tnA88YpaPc3tpdJOcu8thUScHE/efg2VsJ2miYBvhx/JQMZZVUGUmNXoJSLbpPiwN8MySXeEwsmXR2gC9zZf+FuTUd9eu3mU1F7R4EVMX8eoUcfnepW0+XvMkmQjk8jmhY2VxVm379gj1l6mx69yy9NIosGVnM1xLeow4FGDwRuv+MgR/r0vOGWhPbJRrASzzlrwoni8f2bf7X1oBtCaOb+iGJtIZPMCvoLg+Xs8nSPbQb96pZBl5xnbvSXXNWvQyWEZ9a2Ak527caHV5f4ofGI9ZdhqAfDzRFpy7dlUrF/KrRlYoqNgADBVhflBl21xXstIHF1qOjsdZxQEKTFQH0sxtXYKoWzL1cE+DJucwP+GFoIJW0aoHH49zKZNZ6khUR0xq5hUoZjjFDeGNYXz663zaAcZp2wU4jUmKWZ1s0v6Q82Q64cX82F8hgcZrpZvFvNZSu9fYFn26/Nb5NiW5R+esYNifwgiZBm7CryNc1seHW2CzjFmlkbl8jZ/fRNu6a/WTMRk4AWHjgpLz50DAqWEwT9gszm9oLtsuiToJ+dUIcslm/vKQDuw5tQHGQPpLe/Hq/rA== X-MS-TrafficTypeDiagnostic: DB3EUR04HT128: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wZjMpOBIfMLkM8rO/krzqRv9WcTkI6SvVvd+hpPU4tJzYViWavtsJZd9t1CFz6uYmfCquTnvGzJXDw3Li7sTG3DwTCD3ZdNaPlgvOt5MLQ8Lc17Rp8FP84XRcbdS2JdjIPerhGokwMwSJLp8U0zLnPs0wF7s+BYTXT4KibRSwoz61qKyb6cwYjzKM+KNBeflvhmrNKavmK4gLUi8VIykLS9QkFajhJMisTv8ximgUyri0kPXvDF58jHleTdvCdBcxGklSnFinyksT92nKkzZS5gh+0UtSdmAfB4+eG4xzvbMh42kDro6f6PMMWJhCUt/7VDF1cee6S5jYPf1Ajarfjg+644Ja5T9AkLfct7mb2R6n6iSg/ME+lDwGs/d8uD/AK7ggC6wi8cXKrbG0y5CEQ== X-MS-Exchange-AntiSpam-MessageData: 3SWW1xbD93e3Fo+DEW+nj9qUx5RkTmsDYuAnBgt7UB6aIBuvUF8jwUBrqNbXq5uxJFaewHIbhjtosZw6lBjejN/QsDvIgbxCt3RvqqyNddEB+aAsOqxr2UWtjMOyXcFpwgj4TMicHavkfz/cDNhdHw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: cbaed29c-90c8-4d2c-7883-08d91c3967ac X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:33.0284 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT128 Subject: [FFmpeg-devel] [PATCH 28/39] avcodec/omx: Reindentation 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: GaQ/anb6Ycu0 Also combine two if blocks that check for the same condition and don't check had_partial if we already have a complete packet. Signed-off-by: Andreas Rheinhardt --- libavcodec/omx.c | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/libavcodec/omx.c b/libavcodec/omx.c index 1e48579d4b..ddb3ba4f66 100644 --- a/libavcodec/omx.c +++ b/libavcodec/omx.c @@ -863,26 +863,21 @@ static int omx_encode_frame(AVCodecContext *avctx, AVPacket *pkt, avctx->extradata_size += buffer->nFilledLen; memset(avctx->extradata + avctx->extradata_size, 0, AV_INPUT_BUFFER_PADDING_SIZE); } else { - int newsize = s->output_buf_size + buffer->nFilledLen + AV_INPUT_BUFFER_PADDING_SIZE; - if ((ret = av_reallocp(&s->output_buf, newsize)) < 0) { + int newsize = s->output_buf_size + buffer->nFilledLen + AV_INPUT_BUFFER_PADDING_SIZE; + if ((ret = av_reallocp(&s->output_buf, newsize)) < 0) { + s->output_buf_size = 0; + goto end; + } + memcpy(s->output_buf + s->output_buf_size, buffer->pBuffer + buffer->nOffset, buffer->nFilledLen); + s->output_buf_size += buffer->nFilledLen; + if (buffer->nFlags & OMX_BUFFERFLAG_ENDOFFRAME) { + if ((ret = av_packet_from_data(pkt, s->output_buf, s->output_buf_size)) < 0) { + av_freep(&s->output_buf); s->output_buf_size = 0; goto end; } - memcpy(s->output_buf + s->output_buf_size, buffer->pBuffer + buffer->nOffset, buffer->nFilledLen); - s->output_buf_size += buffer->nFilledLen; - if (buffer->nFlags & OMX_BUFFERFLAG_ENDOFFRAME) { - if ((ret = av_packet_from_data(pkt, s->output_buf, s->output_buf_size)) < 0) { - av_freep(&s->output_buf); - s->output_buf_size = 0; - goto end; - } - s->output_buf = NULL; - s->output_buf_size = 0; - } -#if CONFIG_OMX_RPI - had_partial = 1; -#endif - if (buffer->nFlags & OMX_BUFFERFLAG_ENDOFFRAME) { + s->output_buf = NULL; + s->output_buf_size = 0; pkt->pts = av_rescale_q(from_omx_ticks(buffer->nTimeStamp), AV_TIME_BASE_Q, avctx->time_base); // We don't currently enable B-frames for the encoders, so set // pkt->dts = pkt->pts. (The calling code behaves worse if the encoder @@ -891,6 +886,10 @@ static int omx_encode_frame(AVCodecContext *avctx, AVPacket *pkt, if (buffer->nFlags & OMX_BUFFERFLAG_SYNCFRAME) pkt->flags |= AV_PKT_FLAG_KEY; *got_packet = 1; + } else { +#if CONFIG_OMX_RPI + had_partial = 1; +#endif } } end: From patchwork Fri May 21 09:17: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: 27875 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp342425iof; Fri, 21 May 2021 02:22:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzcKlyzeofTiHZQ/15dHH96DPALMfSQ23zXmDywUEC9/0L7v5l7fJBu38aBdcPSahAa1kw/ X-Received: by 2002:a17:906:d922:: with SMTP id rn2mr9376261ejb.469.1621588963478; Fri, 21 May 2021 02:22:43 -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 r21si6175783ejo.341.2021.05.21.02.22.43; Fri, 21 May 2021 02:22:43 -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=nbP4NuCR; 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 2B35A689FFE; Fri, 21 May 2021 12:18:37 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075019.outbound.protection.outlook.com [40.92.75.19]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B0728689F8C for ; Fri, 21 May 2021 12:18:35 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b0MdSkRlkos4SCuDPcExeYCq7DivexgukhtAtCMcUQMllFwEY4LyXsoHQTS9rJpPfhD8do9WWef82fDPaKoR8A7xYustmPpvEoVIA+ynvbMtxqr9dTHBXji21O2dmSC2g9JLNbskpqR/5sV5+x14WUXMCbJtpC/Gr53rewfnpj6T1IGF4D0RjXSSNZzXk6Yg1MU+s9pGhhsjAe9l9f5/6Kg5+HDfcAXSx+a8qleKlu/yJDwBRuv/rT5XmU7qA3G9svLYJ7VCARBdnWGjyJZMTNnO0IiV5xW4Pof5mESaJ5ldcTjwnu3NRHIulqmPMKdAMvaPBE6RPhhpP3EY1iAlzw== 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=/XpLxGdm6Vpkl6a0Qoh9Mx0keWsY77C9y7AGleh0uec=; b=VpWpUQPLWSBz3a0IMA7bqoA6VEz6p64H8BLjsSop1vkvTF1E6CpY+g+uwRcMe8tXQ/XuKwN1kpaq/IeYtnv9i3FKOLbLMf78OguggHS279MmpFHyPxw4B5H6DfQ4sV7JwiGZUQpayFpPEDm0EIAHw62O8wV1Qu8NMveUdGVW5nwUgztZ+s0h2scdh7/PvS7nt3HZzp3zsUPGlv4qBJGII2Qbfju92w3E6sctgkTUjgE1PdOrPjIWQyLGc7YAf3gTMn0k3lfLG4kfiXdeCV2WG+C02zGfVPYJ1wGQUpup01rjbQlF5PHde9HAY3+ixQhmE57JJ27zppiJlInbUcKDXg== 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=/XpLxGdm6Vpkl6a0Qoh9Mx0keWsY77C9y7AGleh0uec=; b=nbP4NuCRGF8qWdLvCHWcSHCmAtAtgwLrNzdl0t0Tg9PFarFF9OieQFafuxcXGeZZDd7+6z26MCJM5rOj7dlqPycvKNbYjzEsU6b+NcPm5TtYRPpY9tE6WYl/Lr6rV435SkKXOz2QjiindFfs1n49YJ0kN8ntM8NI31wTWJAc4u10q0QcgSqEvtMNU6IfOLJuW89QRuch19uWIpyFdFE9TfSqNVOqYzsrjgFIy2PM1OTduXUqQ0oq4Lfbm0fcrws58Rdctn1KNw4vK8mGVnwD2HbJLh9Bpn55CKX/ifajL2LJ9xQJOLnbXPDt63HqIyxmThZySKfsjvE6nKJ61CosVg== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04HT022.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::312) 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:34 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:34 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:1519BFD2270E74DC69BC482D14C94C0412D7587304B06677000E75B8DC778C70; UpperCasedChecksum:E3E08292457A6A33C33481DFDF09C5D7BE14578A764CD413E8F408146FA77125; SizeAsReceived:7586; 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:34 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:32 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [dDraQSjkTDWLRYQTWIIulFuoFmcf2gHF] 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-28-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:33 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: b6bfe028-f5ec-44dc-39d6-08d91c396856 X-MS-Exchange-SLBlob-MailProps: dEG5jEBie8lPV5Pm7qExlN5LalDEj9QmotHqbyZbqR8lgazwPW3+LzDWQiYOmy50eHex7wDB3XIjMYFnzTQ2yLG9opLWaIvdgf6C7wH0OeiGSXYQBKZcqKZlROa9qaWf0xdAYCvxypVCenRLwOgMFRKbno1//AjfTcmRrrkhRlTFujXbi8ClMwZG9T+2Di434IqY+tfCgals+12J3Oni0e5st7YKiawO51uQlKTvV+L1Dd3bLJwbKBz7Ol6yt0bXlRs+EGh3hnlF4NKOUFiKUj2fC53GRLYKAJS8aV6UJnSvwa2Plv4QQvuc/DZ8lJdrtqNJw9T+Z6oCm6HTAKPD7AjbeitbCEMoFh9wkX9mXeQTtQ/3qstdtFIl90J/pyh2++8An9xc7Mx1Syuvml7zfe7OdqVUH+5ufoZSy0MTo/vPBbwDHVlvjCachE6FqE5Jg2eCZcqOIc1lXFBqHebWX1NwHKtstwPtQgE8HHocc/h5CZGVme8nyztuM398kC0WfLZc7URifjsyeGdqtLPY2yO9RUbk0MOPrSg7X04GrLFSlFXJSB9O52ww3Ah3hBfH49m5hqQrLTMaGFPwOeJXbB1DJXIKl4Fq1RT3BTMvWp83zYOFnw1I0bmBZJAfOXsDQVF9D35p1Nqp7mVO48IUI5UjcUdUBxmcIbeETAER7jhPIUFbAiZ/NA== X-MS-TrafficTypeDiagnostic: DB3EUR04HT022: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3KiJUWqsfQaMPo+7mf/sB1kYfKGK5LMFm/FhiVK7Mt33aLDBlNQjLbteaDw3X/WOyr7q/5YbAkHBQ0kZjp6GLOzvFiPQQ5CZ0PvruCVJvCv3giAbBChloHZha2njkh+UrdMMj1JpuxMvlTO3zVXFS/ZxBKw5vNuDtSRacDhilaDHj2+m/SC7ZMdMu2Db6SM3n971TpnO16s4hnJExz0QdjxYmOBxrrd8v1H4zPvU7IcEdZmwXfiZ3+6jBx6GeG++8TC4HM0P1XE8v8hzY/l0Bhac5SALdyZGF8VXHxohREnJcrh6oAmzLt1UedP0U2TX90C6SzFDBBxAO7e4mi3SPbtgH0+pm0oies2wT3Uje3BXVcILEId3DBOBJw/FznGn0ju7jox9W0A1m2FrTg9TrA== X-MS-Exchange-AntiSpam-MessageData: cPkefmbIrA7bEn0HTzswVOLegnO/Oxo+5S6qQkHvg/q4yE7hoLcCpQzuPedxFH9R7BTpoS8vh3ahyFdfwyLFza05NfYjGqYiw9UzeZo3VnpOOia0iLABo4kQHF9XqJUk84viwnt6ybTkac2zngLbbg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b6bfe028-f5ec-44dc-39d6-08d91c396856 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:34.1249 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT022 Subject: [FFmpeg-devel] [PATCH 29/39] avcodec/omx: Zero packet padding 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: CAaGLKpHVDc9 Signed-off-by: Andreas Rheinhardt --- libavcodec/omx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libavcodec/omx.c b/libavcodec/omx.c index ddb3ba4f66..9597c60057 100644 --- a/libavcodec/omx.c +++ b/libavcodec/omx.c @@ -871,6 +871,7 @@ static int omx_encode_frame(AVCodecContext *avctx, AVPacket *pkt, memcpy(s->output_buf + s->output_buf_size, buffer->pBuffer + buffer->nOffset, buffer->nFilledLen); s->output_buf_size += buffer->nFilledLen; if (buffer->nFlags & OMX_BUFFERFLAG_ENDOFFRAME) { + memset(s->output_buf + s->output_buf_size, 0, AV_INPUT_BUFFER_PADDING_SIZE); if ((ret = av_packet_from_data(pkt, s->output_buf, s->output_buf_size)) < 0) { av_freep(&s->output_buf); s->output_buf_size = 0; From patchwork Fri May 21 09:17:33 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27863 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp342520iof; Fri, 21 May 2021 02:22:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzd41ShKqNLtR9gv0+087y5f3tebDLkJoaUXsm9voOPcE0Lt5i0qIXJE9oL5F0IW3BQsTOA X-Received: by 2002:a50:fd11:: with SMTP id i17mr10045465eds.23.1621588973817; Fri, 21 May 2021 02:22:53 -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 r17si4854534edd.427.2021.05.21.02.22.53; Fri, 21 May 2021 02:22:53 -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=iP8G1qtR; 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 1C36D68A03A; Fri, 21 May 2021 12:18:38 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074039.outbound.protection.outlook.com [40.92.74.39]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1CFF9689FE7 for ; Fri, 21 May 2021 12:18:36 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D1ts7gjfxCt7f7UPlw/QsmL/a06kkHBKViQpW3xWWSSwUMaZ0PiUaL8RwN0D4O7ChXHIeEq0G5g8K7ymSbJXHB3NLa6CN9K0ijTHBG699hHZo373lFyx8lDTECcbrKxICNHWRbd1jtY8WO/C0DbhR8W2GBRU+8i5OC+a3tZIIni+hP9Ob1ZBj27TsppoT91earCNaZoTmchNkQzGhzeVRpJHzvRU0+2hFuAUjwwnA9FD4Ko+d3wU9Q6AYsvCy07HXlBZbnvx1vdV0nOKupEe54HBPV54+8iSHO9UxKD1z+LMJQRCB1CRUq8Byh6NYyh49FsxlQDmuIgNh9nxitr5tw== 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=mXwjHvXxdd9o4jXL3/16pvIyCaYSRFZpv/SjhUbI8PY=; b=IuOuslRoeqR2QDXKezA9cidD7np0eXBCaZGnJZQhukN9nWgyz596yUotKflq+VtukTSUJdcpQAu1WS/egWVFRQSbHPhYGZgM34J0gI0Iaw2o81Jul7NyBQ2ubPzxn7YVOnh1gXXYyfiCwgTfkz0BJ2htB5KzJHx/BtCwnyjpexACw/A1JtVkU5V+VSryWJWlBgI8C5D4ihf7EjwPdlqemr3ujQJJjN3G5aNVBQbIgjts2PWA/KyP547K4ErSkEQ6vpMUhkPHzkRr28cvhD4uP5Z0DYL2nb5E3QrYWvFJNLqwWBIDzFox8xZNd1VEV4QrAsdMTXhW7DMD5Xx1xAo+Dg== 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=mXwjHvXxdd9o4jXL3/16pvIyCaYSRFZpv/SjhUbI8PY=; b=iP8G1qtR82ZZE1fkYs2+GNljprG46VwxBnkd1Gy0roxny6ecIgzi9o2XI2hFy0O4yS3LMIVDT6K+xxjT7NDPxuEfIIYloFLIM4+WuQYBQV0aX4uipyHm5jxhrdQ/FbNFyQQxpXzLWA9Qh2cjPmmopq12JUDzW/wRU/UMTOh8/xjP18VmKtYJUQ77bsnzyIIJm8mOEPrq+S8mbdy0f/LLYeDK0ZAPMWudYMrXCTazlsyCV1DKcs1tXjKrepywwfpyIBtu8beXo5BgmE+hqEeQptEV7v/BmSvI26SaQck0HX9U70Bzn3CIHxHbEYfYCAPq4XSToU/Ke45sOg2Vxzkgqw== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::53) by DB3EUR04HT144.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::228) 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:35 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:35 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:051AACCFB6893DE1235CAC92694B46848D128B002983EC0CFF7CEA7D2121CE1E; UpperCasedChecksum:11013A5B52AB4D85A8D966C4DAD22DB6F3B3773766E079EBAB2903DD44CB6D37; SizeAsReceived:7606; 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:35 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:33 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [glMi2q+NTRfa+IZ5xPRsE8Z+fnrbIvy3] 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-29-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:34 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 80d3afd0-23f8-4085-d2c6-08d91c396923 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIohmq9k/yScywu9xPSfiUSg5eMVceR/q6wPVUTZ9GT8Efr/shTyvvoOrTcry39VyOFlcd4SOw5qZS4NUnd/VbsxooAUxpVEvn75Y7+y1YF9mzomV+Trk008PuxKO+ApXRS4bCBmISMYcNaaWhilWtUcjU7mnKUF4m+F9aW3Yd2mrHh8q7KNyWlMaadJsySXNfh2xwEu1+kLaGCawqrsw+AFtcmHz17RFAm9GMbOGkuSyKXUYFpE5i8+LYeWK3pUATg54GNPfh6ioFncGUmP49HMYRhtP0GxTuutOjVIYoVwOohSlU2BqmxNsfTQSX/GDnudg41TVP7bDElF+7mHp76f0D0qER19xjppNiQ5scv1a2+VWUn158Fay9KRR99dcqZTL2o0QfqcgOXll/kSlsrrez7DzlSuWPWGCfggEHIsM6DENh/Zc8Gv74w1rwqxFLBegoDk4UebY87TcCgQJ1+9EDSa0y18kxXfgc5bmGuyI6aDroYBV8S0Di/VDPQmqrh8ZRfRLXmlzbYNJV1uRKmrd3+j4j/0sQabu3mH7I+vxBrpzk9+SJqEiRFB6SuobKRhT9X2/enElyQQ1KiX5XVHGmpyc2Yi8r3NeZfGPnEuTWlHMaPaE3BwXT42nerWJfVxfff1splUtpIvcaHyQY1bUC1HfNoRJmdHSd89djZ3pJp7yJTxmWpimVR4IAu2tP5fOuVAveWgQ== X-MS-TrafficTypeDiagnostic: DB3EUR04HT144: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gzm+RLVlWWiJPLyOByTO5PEMH+eqF8RVhAk0LIzv9nRS5QN8AcTu10od0DpmZrl//2oZ0nB12vyykEt23evV0eJ3+zHgy50qLjlm2b4f4Iv1cA1rKDMF46Go2NJtnNJRBNrB7pukm1aH8TTrTQzWekjkQvR1rpIRAidaOH7jJTils+wi1R7/FJ53OKV9SNLGSavbTUi0UeyfM0uz9EQ09Elj4hwsUpjSlLXX+hafILT7b072z+0EVdZGz/jasXvGoMXeWFPG6Tp4obT5ofT+c3n2K+6bVO6OiFdb70B0pEuOipElPiyAQpMuzLvgzK5Pr475V7RtcJ1gK2+lYxF1IZaLjy+UHGgCzFZqUUdjvG5XnQerXmqoXsQ8zZV88QrguOuZHMUyBukdDqMYZ+V0Pg== X-MS-Exchange-AntiSpam-MessageData: Fy3tbp+rikDKSs6nJwjm2jhGSpQoUHsZpQg6Si9JfpCG7rqG1uimA1hB5gg0jwmJsONYIiaaR8FilhuwYyiotDv2Su639M3xFzOPDRnilverfaa7JjVo6nPeLuEnT5tgIfIYWg/2AGac9QOdvQnEfw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 80d3afd0-23f8-4085-d2c6-08d91c396923 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:35.4803 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT144 Subject: [FFmpeg-devel] [PATCH 30/39] avcodec/internal: Remove outdated documentation of ff_alloc_packet2() 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: XeXS2ds3iYle Its documentation described the way user-supplied buffers worked before 93016f5d1d280f9cb7856883af287fa66affc04c. Signed-off-by: Andreas Rheinhardt --- libavcodec/internal.h | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/libavcodec/internal.h b/libavcodec/internal.h index 60f65d3f2c..19c4e9e3f4 100644 --- a/libavcodec/internal.h +++ b/libavcodec/internal.h @@ -229,20 +229,16 @@ void ff_color_frame(AVFrame *frame, const int color[4]); #define FF_MAX_EXTRADATA_SIZE ((1 << 28) - AV_INPUT_BUFFER_PADDING_SIZE) /** - * Check AVPacket size and/or allocate data. + * Check AVPacket size and allocate data. * * Encoders supporting AVCodec.encode2() can use this as a convenience to - * ensure the output packet data is large enough, whether provided by the user - * or allocated in this function. + * obtain a big enough buffer for the encoded bitstream. * * @param avctx the AVCodecContext of the encoder - * @param avpkt the AVPacket - * If avpkt->data is already set, avpkt->size is checked - * to ensure it is large enough. - * If avpkt->data is NULL, a new buffer is allocated. - * avpkt->size is set to the specified size. - * All other AVPacket fields will be reset with av_init_packet(). - * @param size the minimum required packet size + * @param avpkt The AVPacket: on success, avpkt->data will point to a buffer + * of size at least `size`; avpkt->buf may be `NULL`. + * This packet must be initially blank. + * @param size an upper bound of the size of the packet to encode * @param min_size This is a hint to the allocation algorithm, which indicates * to what minimal size the caller might later shrink the packet * to. Encoders often allocate packets which are larger than the From patchwork Fri May 21 09:17:34 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27882 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp342626iof; Fri, 21 May 2021 02:23:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJydcgU7fiPCP2820i8r8/04Yjog8ukGCzhpNkjAif/vk/dlnOKz0QBg3DBNjPNgQ0bDAMD7 X-Received: by 2002:a05:6402:2298:: with SMTP id cw24mr10148006edb.156.1621588984175; Fri, 21 May 2021 02:23:04 -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 h21si4829457ejt.566.2021.05.21.02.23.03; Fri, 21 May 2021 02:23:04 -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=aGof4ZIu; 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 419CF68A08E; Fri, 21 May 2021 12:18:40 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073081.outbound.protection.outlook.com [40.92.73.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2EB1B68A000 for ; Fri, 21 May 2021 12:18:38 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bm1sS+K6j1+wnTx8taBHp1lwDBRUs2ZBUci5Sz0jlO61d0CSeQBCAonG8R+Jh+RI+4L4D/Ss+TCleeCRLleL5HUQg79sOybbsFve3eKIZBqBhlc6Kzw5hkDUtYzYtcXiPQa+qHwyrAKmoMpUX+pXnhCb+e1ZK1cAH+3aXwYz66D4QrlPDA8VYl347UssH0hF5lrtiAQ2a33sQ/S6aetT9lE0IZtEFdNzlZnivu1bbA0rWQLgozDPVW/jlOLpYeEtUNzi7igdZu9rYt+vKtsEGJUwhNW4rEXQ+yIVIQB+hLqePcgxJvQQpSXU6HSci0ASjN2St/5WYjLJHQInz66a9w== 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=uvG4qWQZITL3VFQJd7e3ehVIcgnVOWK99Knylpxfo9Q=; b=lAf7MxPJeNCWG7svXYV58Z+oenxsWnnMELfaq21htZu2lTz5P8B4gL5y8KM5WpH+Y8PUMPMXqTxBu/eDkzJHibD1Lq6o7w045tw5u4XWso8pxTEg9fUDw7sNzR1/zqJSLl4/t3gAYNm2rH+KxgPd05jX7tkFka8WJwpYo4FlRiz90cG5PYjsJXbfqriZs0qr7qOfXdcxJ8QR78q2NhaMxbpHK56/g/S5KgDA6Astc5C4DOniDlcNpRDrAQFlx6qSLT8ZYO0lYyaUKj4WQaNJkAg4GwdwuiCyo3a5vX03ZWYhCSTM63W9oGGFLzHMpWdVJ1A87E9JP0FaIiuTCY/rrA== 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=uvG4qWQZITL3VFQJd7e3ehVIcgnVOWK99Knylpxfo9Q=; b=aGof4ZIu0wBIKnO2pVMRBpavYe0yX4xBddxFh9XQC+VOIvsSnCAYterIUgM6HkXmTlMCAfztKrNjhS4FqWGeK9JKgDkHV/Qy6aPojEIrAoO0YOh8AWk4wkH4U3JMWdCuFcrUWGYedw8p+3okQ/3qfTeWX78Xl19JkstNyQz9tzyO2iLfKuSFjvHq9XfCQVfeJGKQ8V7x9w6kCr/ggFR/Cu+In9XkU990nSfosEgvBeUGm9P4D27duz5bjl0SjtUV4dHdKGKYkh2aC6v6CG01sfAhizrlGRXrhIq43z0dhu7GQm24pjsRPT+VTor+Vn4SiiUh9isZv6OpFcNVCYaSDw== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::4e) by DB3EUR04HT153.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::173) 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:37 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:37 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:94E38D5874C4D0E65FD5E6B9635099ED23D50CE146871F8E58496643D614FEA5; UpperCasedChecksum:E0118780EF69820D982B5BCC09C657B9A0B032AA523AC345AB3093033871178A; SizeAsReceived:7681; 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:37 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:34 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [exNlFL8zQJT7satZvpt2ZXzM2Qgx2x+D] 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-30-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:36 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 48 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 04998e0b-3d6c-420d-dacd-08d91c396a20 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfaunEYgmBc3G+OsCSbXwL+X4g4d15+iSXvFFDfiFl+CsEIfcvuS/6ilvitrehfW+0Y+M+ZTKWrB2zFb6+hRehj8spPzPvigJa/JbV6x/6OtCwNAHtfsrmDWeEhBFYjTOgARJu6Muk3Cv3uQSzqiSpfGNYganBFJhbmQuYHlCcQsKVooD8O3opMc5N04dnPXrIsu7KmSYA1cFeNGpzskTgi9aYVX6p3waEyTl3Q8angH+MsnThehGvR8eOaCaJvgSBzH0XYgVZQScx6hedzQzxs7dscGuPLXo9CqCd9cbMGsKsgvxjgsBhBV1qp1FEtr2gjkWnUhLYBCeiVihs3+rgptEmNnQArLQ0d1GVEq9ljlWiSW7R7gPGnMJXa5JpJB23S9/LLqNagdBynDh6QadEwmFVInn5AxHDfk4cEWPp/FORKQc5BdblYlFXxLlhoI/DtUT0qoHFtRSrrghoD+VMsIOEcHlZ/fqXPCvog6YpUo81eiIVnX/D41XuDHEh5tPM5cG2r7qYtoeHFcKYhmuUGAZ0pz56dEWunz+lXp2ELg8iI7iB72oVqtUA9OIOOKX+ls+lmvwgytM3bdzoYokEkY8yFK72cgOXyXLpOEo8zvPSO0j9KX1N4vJm/LrFAQMCFnabsy57+afxvi6kLOa0DFNtHriGPci+8yusr/0zCsofp76qWK7MpdAsovlFl9Sn10+cD/5x6pSN4= X-MS-TrafficTypeDiagnostic: DB3EUR04HT153: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: T7v9XvpvxBQI5FGIWg3He9gdJl//1RQm60iEIIXX8LAChYvaIap951bw2SQINl9XfvBcIbFxy/qmrRMKnusjCvAbp4iFqO15lQbBCbSZrQQYSG9znE6+YrVzEdK1gn/lJHxJo+QqE9RVRQwRKarr5CemIXpVv6cxDMjlUVSrhSqGPo3lfz8XVbYH/fEVnmkHlafy2yNtP0FpPUzrb/fdGZMnDSs9bkLI9gsicQDXdORKSBwmHY1mhbE/OUOWPySIuV91ln637vqslTeaGbiM7LBCUgO1uGmG35zWd3SzkJA9Q7Xod3u9XCEE47+pT+XbZqRceJ9oek13l+fHAcGEbYb2PFt3eK/mPURRid9mEV7ndQt7DzIA8WFVzpKsmdHwrqrQ1ojgBngkUX8uGB/x7g== X-MS-Exchange-AntiSpam-MessageData: CRNljKP0tgDTLd6/nUO8yj5fRceGU3L2xcy/U7zTBQBDR+VTCpcQ+HNQ09LV1HC+DiaedurlqnhLcnJzEhptv/ybYiuS3xbO6Jkr9AU7rP2r8NOljSOHg7bnhsldlXU5mbXe54Uo+xG+7zuR0NnX4w== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 04998e0b-3d6c-420d-dacd-08d91c396a20 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:37.4315 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT153 Subject: [FFmpeg-devel] [PATCH 31/39] avcodec/encode: Always use intermediate buffer in ff_alloc_packet2() 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: Tbk7LkpKLR/M Up until now, ff_alloc_packet2() has a min_size parameter: It is supposed to be a lower bound on the final size of the packet to allocate. If it is not too far from the upper bound (namely, if it is at least half the upper bound), then ff_alloc_packet2() already allocates the final, already refcounted packet; if it is not, then the packet is not refcounted and its data only points to a buffer owned by the AVCodecContext (in this case, the packet will be made refcounted in encode_simple_internal() in libavcodec/encode.c). The goal of this was to avoid data copies and intermediate buffers if one has a precise lower bound. Yet those encoders for which precise lower bounds exist have recently been switched to ff_get_encode_buffer() (which automatically allocates final buffers), leaving only two encoders to actually set the min_size to something else than zero (namely aliaspixenc and hapenc). Both of these encoders use a very low lower bound that is not helpful in any nontrivial case. This commit therefore removes the min_size parameter as well as the codepath in ff_alloc_packet2() for the allocation of final buffers. Furthermore, the function has been renamed to ff_alloc_packet() and moved to encode.h alongside ff_get_encode_buffer(). Signed-off-by: Andreas Rheinhardt --- libavcodec/aacenc.c | 3 ++- libavcodec/alacenc.c | 3 ++- libavcodec/aliaspixenc.c | 5 ++--- libavcodec/asvenc.c | 5 +++-- libavcodec/audiotoolboxenc.c | 3 ++- libavcodec/cfhdenc.c | 3 ++- libavcodec/cinepakenc.c | 3 ++- libavcodec/encode.c | 18 +++++++----------- libavcodec/encode.h | 15 +++++++++++++++ libavcodec/ffv1enc.c | 3 ++- libavcodec/flashsv2enc.c | 3 ++- libavcodec/flashsvenc.c | 3 ++- libavcodec/gif.c | 3 ++- libavcodec/hapenc.c | 3 ++- libavcodec/huffyuvenc.c | 3 ++- libavcodec/internal.h | 24 ------------------------ libavcodec/j2kenc.c | 3 ++- libavcodec/lclenc.c | 3 ++- libavcodec/libfdk-aacenc.c | 4 +++- libavcodec/libilbc.c | 3 ++- libavcodec/libopencore-amr.c | 3 ++- libavcodec/libopenjpegenc.c | 4 ++-- libavcodec/libopusenc.c | 3 ++- libavcodec/libspeexenc.c | 3 ++- libavcodec/libtwolame.c | 3 ++- libavcodec/libvo-amrwbenc.c | 3 ++- libavcodec/libxvid.c | 3 ++- libavcodec/ljpegenc.c | 3 ++- libavcodec/magicyuvenc.c | 5 +++-- libavcodec/mlpenc.c | 3 ++- libavcodec/mpegaudioenc_template.c | 3 ++- libavcodec/mpegvideo_enc.c | 3 ++- libavcodec/msvideo1enc.c | 3 ++- libavcodec/opusenc.c | 3 ++- libavcodec/pcxenc.c | 3 ++- libavcodec/pngenc.c | 2 +- libavcodec/proresenc_anatoliy.c | 3 ++- libavcodec/proresenc_kostya.c | 3 ++- libavcodec/qtrleenc.c | 3 ++- libavcodec/roqvideoenc.c | 3 ++- libavcodec/rpzaenc.c | 5 +++-- libavcodec/sgienc.c | 3 ++- libavcodec/snowenc.c | 3 ++- libavcodec/sonic.c | 3 ++- libavcodec/sunrastenc.c | 3 ++- libavcodec/svq1enc.c | 6 ++++-- libavcodec/targaenc.c | 3 ++- libavcodec/tiffenc.c | 3 ++- libavcodec/ttaenc.c | 3 ++- libavcodec/utvideoenc.c | 5 +++-- libavcodec/vorbisenc.c | 3 ++- libavcodec/wavpackenc.c | 3 ++- libavcodec/wmaenc.c | 3 ++- libavcodec/xbmenc.c | 3 ++- 54 files changed, 130 insertions(+), 94 deletions(-) diff --git a/libavcodec/aacenc.c b/libavcodec/aacenc.c index 219bf02163..0bdec763ab 100644 --- a/libavcodec/aacenc.c +++ b/libavcodec/aacenc.c @@ -33,6 +33,7 @@ #include "libavutil/float_dsp.h" #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "put_bits.h" #include "internal.h" #include "mpeg4audio.h" @@ -675,7 +676,7 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, } start_ch += chans; } - if ((ret = ff_alloc_packet2(avctx, avpkt, 8192 * s->channels, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, 8192 * s->channels)) < 0) return ret; frame_bits = its = 0; do { diff --git a/libavcodec/alacenc.c b/libavcodec/alacenc.c index eddd9c97c3..a38aa6e7d7 100644 --- a/libavcodec/alacenc.c +++ b/libavcodec/alacenc.c @@ -22,6 +22,7 @@ #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "put_bits.h" #include "internal.h" #include "lpc.h" @@ -589,7 +590,7 @@ static int alac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, else max_frame_size = s->max_coded_frame_size; - if ((ret = ff_alloc_packet2(avctx, avpkt, 4 * max_frame_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, 4 * max_frame_size)) < 0) return ret; /* use verbatim mode for compression_level 0 */ diff --git a/libavcodec/aliaspixenc.c b/libavcodec/aliaspixenc.c index 01e9b3ab96..22234c091e 100644 --- a/libavcodec/aliaspixenc.c +++ b/libavcodec/aliaspixenc.c @@ -23,6 +23,7 @@ #include "avcodec.h" #include "bytestream.h" +#include "encode.h" #include "internal.h" #define ALIAS_HEADER_SIZE 10 @@ -54,10 +55,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, } length = ALIAS_HEADER_SIZE + 4 * width * height; // max possible - if ((ret = ff_alloc_packet2(avctx, pkt, length, ALIAS_HEADER_SIZE + height*2)) < 0) { - av_log(avctx, AV_LOG_ERROR, "Error getting output packet of size %d.\n", length); + if ((ret = ff_alloc_packet(avctx, pkt, length)) < 0) return ret; - } buf = pkt->data; diff --git a/libavcodec/asvenc.c b/libavcodec/asvenc.c index bf11701d17..6be7f5282a 100644 --- a/libavcodec/asvenc.c +++ b/libavcodec/asvenc.c @@ -30,6 +30,7 @@ #include "asv.h" #include "avcodec.h" #include "dct.h" +#include "encode.h" #include "fdctdsp.h" #include "internal.h" #include "mpeg12data.h" @@ -255,8 +256,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, return ret; } - if ((ret = ff_alloc_packet2(avctx, pkt, a->mb_height * a->mb_width * MAX_MB_SIZE + - AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, a->mb_height * a->mb_width * MAX_MB_SIZE + + AV_INPUT_BUFFER_MIN_SIZE)) < 0) return ret; init_put_bits(&a->pb, pkt->data, pkt->size); diff --git a/libavcodec/audiotoolboxenc.c b/libavcodec/audiotoolboxenc.c index e0e00ba2b0..f599802b7b 100644 --- a/libavcodec/audiotoolboxenc.c +++ b/libavcodec/audiotoolboxenc.c @@ -29,6 +29,7 @@ #include "audio_frame_queue.h" #include "avcodec.h" #include "bytestream.h" +#include "encode.h" #include "internal.h" #include "libavformat/isom.h" #include "libavutil/avassert.h" @@ -536,7 +537,7 @@ static int ffat_encode(AVCodecContext *avctx, AVPacket *avpkt, at->eof = 1; } - if ((ret = ff_alloc_packet2(avctx, avpkt, at->pkt_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, at->pkt_size)) < 0) return ret; diff --git a/libavcodec/cfhdenc.c b/libavcodec/cfhdenc.c index 3445295796..968962102f 100644 --- a/libavcodec/cfhdenc.c +++ b/libavcodec/cfhdenc.c @@ -34,6 +34,7 @@ #include "bytestream.h" #include "cfhd.h" #include "cfhdencdsp.h" +#include "encode.h" #include "put_bits.h" #include "internal.h" #include "thread.h" @@ -547,7 +548,7 @@ static int cfhd_encode_frame(AVCodecContext *avctx, AVPacket *pkt, width, height * 2); } - ret = ff_alloc_packet2(avctx, pkt, 64LL + s->planes * (2LL * avctx->width * avctx->height + 1000LL), 0); + ret = ff_alloc_packet(avctx, pkt, 64LL + s->planes * (2LL * avctx->width * avctx->height + 1000LL)); if (ret < 0) return ret; diff --git a/libavcodec/cinepakenc.c b/libavcodec/cinepakenc.c index 422cb3f8e9..41da231dfb 100644 --- a/libavcodec/cinepakenc.c +++ b/libavcodec/cinepakenc.c @@ -45,6 +45,7 @@ #include "avcodec.h" #include "elbg.h" +#include "encode.h" #include "internal.h" #define CVID_HEADER_SIZE 10 @@ -1140,7 +1141,7 @@ static int cinepak_encode_frame(AVCodecContext *avctx, AVPacket *pkt, s->lambda = frame->quality ? frame->quality - 1 : 2 * FF_LAMBDA_SCALE; - if ((ret = ff_alloc_packet2(avctx, pkt, s->frame_buf_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, s->frame_buf_size)) < 0) return ret; ret = rd_frame(s, frame, (s->curframe == 0), pkt->data, s->frame_buf_size); pkt->size = ret; diff --git a/libavcodec/encode.c b/libavcodec/encode.c index 62c47afb24..a569904f2c 100644 --- a/libavcodec/encode.c +++ b/libavcodec/encode.c @@ -30,7 +30,7 @@ #include "frame_thread_encoder.h" #include "internal.h" -int ff_alloc_packet2(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int64_t min_size) +int ff_alloc_packet(AVCodecContext *avctx, AVPacket *avpkt, int64_t size) { if (size < 0 || size > INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE) { av_log(avctx, AV_LOG_ERROR, "Invalid minimum required packet size %"PRId64" (max allowed is %d)\n", @@ -40,18 +40,14 @@ int ff_alloc_packet2(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int64 av_assert0(!avpkt->data); - if (avctx && 2*min_size < size) { // FIXME The factor needs to be finetuned - av_fast_padded_malloc(&avctx->internal->byte_buffer, &avctx->internal->byte_buffer_size, size); - avpkt->data = avctx->internal->byte_buffer; - avpkt->size = size; - } - + av_fast_padded_malloc(&avctx->internal->byte_buffer, + &avctx->internal->byte_buffer_size, size); + avpkt->data = avctx->internal->byte_buffer; if (!avpkt->data) { - int ret = av_new_packet(avpkt, size); - if (ret < 0) - av_log(avctx, AV_LOG_ERROR, "Failed to allocate packet of size %"PRId64"\n", size); - return ret; + av_log(avctx, AV_LOG_ERROR, "Failed to allocate packet of size %"PRId64"\n", size); + return AVERROR(ENOMEM); } + avpkt->size = size; return 0; } diff --git a/libavcodec/encode.h b/libavcodec/encode.h index 9af2f42483..300d0bd148 100644 --- a/libavcodec/encode.h +++ b/libavcodec/encode.h @@ -44,6 +44,21 @@ int ff_encode_get_frame(AVCodecContext *avctx, AVFrame *frame); */ int ff_get_encode_buffer(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int flags); +/** + * Check AVPacket size and allocate data. + * + * Encoders supporting AVCodec.encode2() can use this as a convenience to + * obtain a big enough buffer for the encoded bitstream. + * + * @param avctx the AVCodecContext of the encoder + * @param avpkt The AVPacket: on success, avpkt->data will point to a buffer + * of size at least `size`; avpkt->buf may be `NULL`. + * This packet must be initially blank. + * @param size an upper bound of the size of the packet to encode + * @return non negative on success, negative error code on failure + */ +int ff_alloc_packet(AVCodecContext *avctx, AVPacket *avpkt, int64_t size); + /* * Perform encoder initialization and validation. * Called when opening the encoder, before the AVCodec.init() call. diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c index 4df10d3e75..69b9065343 100644 --- a/libavcodec/ffv1enc.c +++ b/libavcodec/ffv1enc.c @@ -33,6 +33,7 @@ #include "libavutil/pixdesc.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "put_bits.h" #include "rangecoder.h" @@ -1159,7 +1160,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, maxsize = INT_MAX - AV_INPUT_BUFFER_PADDING_SIZE - 32; } - if ((ret = ff_alloc_packet2(avctx, pkt, maxsize, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, maxsize)) < 0) return ret; ff_init_range_encoder(c, pkt->data, pkt->size); diff --git a/libavcodec/flashsv2enc.c b/libavcodec/flashsv2enc.c index c4debe174c..56ea0ed0a4 100644 --- a/libavcodec/flashsv2enc.c +++ b/libavcodec/flashsv2enc.c @@ -48,6 +48,7 @@ #include "libavutil/imgutils.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "put_bits.h" #include "bytestream.h" @@ -844,7 +845,7 @@ static int flashsv2_encode_frame(AVCodecContext *avctx, AVPacket *pkt, int res; int keyframe = 0; - if ((res = ff_alloc_packet2(avctx, pkt, s->frame_size + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) + if ((res = ff_alloc_packet(avctx, pkt, s->frame_size + AV_INPUT_BUFFER_MIN_SIZE)) < 0) return res; /* First frame needs to be a keyframe */ diff --git a/libavcodec/flashsvenc.c b/libavcodec/flashsvenc.c index 87119c15ea..171a66ee15 100644 --- a/libavcodec/flashsvenc.c +++ b/libavcodec/flashsvenc.c @@ -49,6 +49,7 @@ #include #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "put_bits.h" #include "bytestream.h" @@ -229,7 +230,7 @@ static int flashsv_encode_frame(AVCodecContext *avctx, AVPacket *pkt, I_frame = 1; } - if ((res = ff_alloc_packet2(avctx, pkt, s->image_width * s->image_height * 3, 0)) < 0) + if ((res = ff_alloc_packet(avctx, pkt, s->image_width * s->image_height * 3)) < 0) return res; pkt->size = encode_bitstream(s, p, pkt->data, pkt->size, opt_w * 16, opt_h * 16, diff --git a/libavcodec/gif.c b/libavcodec/gif.c index 8f0a3d79c1..5e7cc47206 100644 --- a/libavcodec/gif.c +++ b/libavcodec/gif.c @@ -35,6 +35,7 @@ #include "libavutil/imgutils.h" #include "avcodec.h" #include "bytestream.h" +#include "encode.h" #include "internal.h" #include "lzw.h" #include "gif.h" @@ -480,7 +481,7 @@ static int gif_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const uint32_t *palette = NULL; int ret; - if ((ret = ff_alloc_packet2(avctx, pkt, avctx->width*avctx->height*7/5 + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, avctx->width*avctx->height*7/5 + AV_INPUT_BUFFER_MIN_SIZE)) < 0) return ret; outbuf_ptr = pkt->data; end = pkt->data + pkt->size; diff --git a/libavcodec/hapenc.c b/libavcodec/hapenc.c index 7801111e15..f4313ecf6d 100644 --- a/libavcodec/hapenc.c +++ b/libavcodec/hapenc.c @@ -39,6 +39,7 @@ #include "avcodec.h" #include "bytestream.h" +#include "encode.h" #include "hap.h" #include "internal.h" #include "texturedsp.h" @@ -200,7 +201,7 @@ static int hap_encode(AVCodecContext *avctx, AVPacket *pkt, int pktsize = FFMAX(ctx->tex_size, ctx->max_snappy * ctx->chunk_count) + header_length; /* Allocate maximum size packet, shrink later. */ - ret = ff_alloc_packet2(avctx, pkt, pktsize, header_length); + ret = ff_alloc_packet(avctx, pkt, pktsize); if (ret < 0) return ret; diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c index a67b89b49b..b35f5c3342 100644 --- a/libavcodec/huffyuvenc.c +++ b/libavcodec/huffyuvenc.c @@ -29,6 +29,7 @@ */ #include "avcodec.h" +#include "encode.h" #include "huffyuv.h" #include "huffman.h" #include "huffyuvencdsp.h" @@ -728,7 +729,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame * const p = pict; int i, j, size = 0, ret; - if ((ret = ff_alloc_packet2(avctx, pkt, width * height * 3 * 4 + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, width * height * 3 * 4 + AV_INPUT_BUFFER_MIN_SIZE)) < 0) return ret; if (s->context) { diff --git a/libavcodec/internal.h b/libavcodec/internal.h index 19c4e9e3f4..975ec0ba30 100644 --- a/libavcodec/internal.h +++ b/libavcodec/internal.h @@ -228,30 +228,6 @@ void ff_color_frame(AVFrame *frame, const int color[4]); */ #define FF_MAX_EXTRADATA_SIZE ((1 << 28) - AV_INPUT_BUFFER_PADDING_SIZE) -/** - * Check AVPacket size and allocate data. - * - * Encoders supporting AVCodec.encode2() can use this as a convenience to - * obtain a big enough buffer for the encoded bitstream. - * - * @param avctx the AVCodecContext of the encoder - * @param avpkt The AVPacket: on success, avpkt->data will point to a buffer - * of size at least `size`; avpkt->buf may be `NULL`. - * This packet must be initially blank. - * @param size an upper bound of the size of the packet to encode - * @param min_size This is a hint to the allocation algorithm, which indicates - * to what minimal size the caller might later shrink the packet - * to. Encoders often allocate packets which are larger than the - * amount of data that is written into them as the exact amount is - * not known at the time of allocation. min_size represents the - * size a packet might be shrunk to by the caller. Can be set to - * 0. setting this roughly correctly allows the allocation code - * to choose between several allocation strategies to improve - * speed slightly. - * @return non negative on success, negative error code on failure - */ -int ff_alloc_packet2(AVCodecContext *avctx, AVPacket *avpkt, int64_t size, int64_t min_size); - /** * Rescale from sample rate to AVCodecContext.time_base. */ diff --git a/libavcodec/j2kenc.c b/libavcodec/j2kenc.c index 82ad3284b5..c53c34f412 100644 --- a/libavcodec/j2kenc.c +++ b/libavcodec/j2kenc.c @@ -66,6 +66,7 @@ #include #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "bytestream.h" #include "jpeg2000.h" @@ -1534,7 +1535,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, Jpeg2000EncoderContext *s = avctx->priv_data; uint8_t *chunkstart, *jp2cstart, *jp2hstart; - if ((ret = ff_alloc_packet2(avctx, pkt, avctx->width*avctx->height*9 + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, avctx->width*avctx->height*9 + AV_INPUT_BUFFER_MIN_SIZE)) < 0) return ret; // init: diff --git a/libavcodec/lclenc.c b/libavcodec/lclenc.c index 3eee95fa04..1e15b09624 100644 --- a/libavcodec/lclenc.c +++ b/libavcodec/lclenc.c @@ -42,6 +42,7 @@ #include "libavutil/avassert.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "lcl.h" #include "libavutil/internal.h" @@ -70,7 +71,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, int zret; // Zlib return code int max_size = deflateBound(&c->zstream, avctx->width * avctx->height * 3); - if ((ret = ff_alloc_packet2(avctx, pkt, max_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, max_size)) < 0) return ret; if(avctx->pix_fmt != AV_PIX_FMT_BGR24){ diff --git a/libavcodec/libfdk-aacenc.c b/libavcodec/libfdk-aacenc.c index a7144e95dd..7ee2f13ac7 100644 --- a/libavcodec/libfdk-aacenc.c +++ b/libavcodec/libfdk-aacenc.c @@ -24,6 +24,7 @@ #include "libavutil/opt.h" #include "avcodec.h" #include "audio_frame_queue.h" +#include "encode.h" #include "internal.h" #include "profiles.h" @@ -391,7 +392,8 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, in_buf.bufElSizes = &in_buffer_element_size; /* The maximum packet size is 6144 bits aka 768 bytes per channel. */ - if ((ret = ff_alloc_packet2(avctx, avpkt, FFMAX(8192, 768 * avctx->channels), 0)) < 0) + ret = ff_alloc_packet(avctx, avpkt, FFMAX(8192, 768 * avctx->channels)); + if (ret < 0) return ret; out_ptr = avpkt->data; diff --git a/libavcodec/libilbc.c b/libavcodec/libilbc.c index 20a2951850..04192e3045 100644 --- a/libavcodec/libilbc.c +++ b/libavcodec/libilbc.c @@ -25,6 +25,7 @@ #include "libavutil/common.h" #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #ifndef LIBILBC_VERSION_MAJOR @@ -183,7 +184,7 @@ static int ilbc_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, ILBCEncContext *s = avctx->priv_data; int ret; - if ((ret = ff_alloc_packet2(avctx, avpkt, 50, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, 50)) < 0) return ret; WebRtcIlbcfix_EncodeImpl((uint16_t *) avpkt->data, (const int16_t *) frame->data[0], &s->encoder); diff --git a/libavcodec/libopencore-amr.c b/libavcodec/libopencore-amr.c index e88431ba9f..f2cbc6eeb1 100644 --- a/libavcodec/libopencore-amr.c +++ b/libavcodec/libopencore-amr.c @@ -27,6 +27,7 @@ #include "libavutil/opt.h" #include "avcodec.h" #include "audio_frame_queue.h" +#include "encode.h" #include "internal.h" #if CONFIG_LIBOPENCORE_AMRNB_DECODER || CONFIG_LIBOPENCORE_AMRWB_DECODER @@ -243,7 +244,7 @@ static int amr_nb_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, s->enc_bitrate = avctx->bit_rate; } - if ((ret = ff_alloc_packet2(avctx, avpkt, 32, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, 32)) < 0) return ret; if (frame) { diff --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c index 14808a7591..051d644c0d 100644 --- a/libavcodec/libopenjpegenc.c +++ b/libavcodec/libopenjpegenc.c @@ -30,6 +30,7 @@ #include "libavutil/intreadwrite.h" #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include @@ -661,9 +662,8 @@ static int libopenjpeg_encode_frame(AVCodecContext *avctx, AVPacket *pkt, goto done; } - if ((ret = ff_alloc_packet2(avctx, pkt, 1024, 0)) < 0) { + if ((ret = ff_alloc_packet(avctx, pkt, 1024)) < 0) goto done; - } compress = opj_create_compress(ctx->format); if (!compress) { diff --git a/libavcodec/libopusenc.c b/libavcodec/libopusenc.c index c642037aac..6602500f26 100644 --- a/libavcodec/libopusenc.c +++ b/libavcodec/libopusenc.c @@ -25,6 +25,7 @@ #include "libavutil/opt.h" #include "avcodec.h" #include "bytestream.h" +#include "encode.h" #include "internal.h" #include "libopus.h" #include "vorbis.h" @@ -483,7 +484,7 @@ static int libopus_encode(AVCodecContext *avctx, AVPacket *avpkt, /* Maximum packet size taken from opusenc in opus-tools. 120ms packets * consist of 6 frames in one packet. The maximum frame size is 1275 * bytes along with the largest possible packet header of 7 bytes. */ - if ((ret = ff_alloc_packet2(avctx, avpkt, (1275 * 6 + 7) * opus->stream_count, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, (1275 * 6 + 7) * opus->stream_count)) < 0) return ret; if (avctx->sample_fmt == AV_SAMPLE_FMT_FLT) diff --git a/libavcodec/libspeexenc.c b/libavcodec/libspeexenc.c index a7891b367c..d095b41bee 100644 --- a/libavcodec/libspeexenc.c +++ b/libavcodec/libspeexenc.c @@ -89,6 +89,7 @@ #include "libavutil/common.h" #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "audio_frame_queue.h" @@ -294,7 +295,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *avpkt, /* write output if all frames for the packet have been encoded */ if (s->pkt_frame_count == s->frames_per_packet) { s->pkt_frame_count = 0; - if ((ret = ff_alloc_packet2(avctx, avpkt, speex_bits_nbytes(&s->bits), 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, speex_bits_nbytes(&s->bits))) < 0) return ret; ret = speex_bits_write(&s->bits, avpkt->data, avpkt->size); speex_bits_reset(&s->bits); diff --git a/libavcodec/libtwolame.c b/libavcodec/libtwolame.c index e28141022d..1f6808b6f5 100644 --- a/libavcodec/libtwolame.c +++ b/libavcodec/libtwolame.c @@ -30,6 +30,7 @@ #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "mpegaudio.h" @@ -110,7 +111,7 @@ static int twolame_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, TWOLAMEContext *s = avctx->priv_data; int ret; - if ((ret = ff_alloc_packet2(avctx, avpkt, MPA_MAX_CODED_FRAME_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, MPA_MAX_CODED_FRAME_SIZE)) < 0) return ret; if (frame) { diff --git a/libavcodec/libvo-amrwbenc.c b/libavcodec/libvo-amrwbenc.c index e48dc8a5b7..dcc0071a36 100644 --- a/libavcodec/libvo-amrwbenc.c +++ b/libavcodec/libvo-amrwbenc.c @@ -28,6 +28,7 @@ #include "libavutil/mem.h" #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #define MAX_PACKET_SIZE (1 + (477 + 7) / 8) @@ -118,7 +119,7 @@ static int amr_wb_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const int16_t *samples = (const int16_t *)frame->data[0]; int size, ret; - if ((ret = ff_alloc_packet2(avctx, avpkt, MAX_PACKET_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, MAX_PACKET_SIZE)) < 0) return ret; if (s->last_bitrate != avctx->bit_rate) { diff --git a/libavcodec/libxvid.c b/libavcodec/libxvid.c index 4c635ae86f..e1a1c01f57 100644 --- a/libavcodec/libxvid.c +++ b/libavcodec/libxvid.c @@ -39,6 +39,7 @@ #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "mpegutils.h" #include "packet_internal.h" @@ -740,7 +741,7 @@ static int xvid_encode_frame(AVCodecContext *avctx, AVPacket *pkt, xvid_enc_frame_t xvid_enc_frame = { 0 }; xvid_enc_stats_t xvid_enc_stats = { 0 }; - if ((ret = ff_alloc_packet2(avctx, pkt, mb_width*(int64_t)mb_height*MAX_MB_BYTES + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, mb_width*(int64_t)mb_height*MAX_MB_BYTES + AV_INPUT_BUFFER_MIN_SIZE)) < 0) return ret; /* Start setting up the frame */ diff --git a/libavcodec/ljpegenc.c b/libavcodec/ljpegenc.c index d820b9a0f5..ce5409da34 100644 --- a/libavcodec/ljpegenc.c +++ b/libavcodec/ljpegenc.c @@ -36,6 +36,7 @@ #include "libavutil/pixdesc.h" #include "avcodec.h" +#include "encode.h" #include "idctdsp.h" #include "internal.h" #include "jpegtables.h" @@ -232,7 +233,7 @@ static int ljpeg_encode_frame(AVCodecContext *avctx, AVPacket *pkt, * s->hsample[0] * s->vsample[0]; } - if ((ret = ff_alloc_packet2(avctx, pkt, max_pkt_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, max_pkt_size)) < 0) return ret; init_put_bits(&pb, pkt->data, pkt->size); diff --git a/libavcodec/magicyuvenc.c b/libavcodec/magicyuvenc.c index a61d8555d9..8a80441cf6 100644 --- a/libavcodec/magicyuvenc.c +++ b/libavcodec/magicyuvenc.c @@ -28,6 +28,7 @@ #include "avcodec.h" #include "bytestream.h" +#include "encode.h" #include "put_bits.h" #include "internal.h" #include "thread.h" @@ -413,8 +414,8 @@ static int magy_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const int width = avctx->width, height = avctx->height; int pos, slice, i, j, ret = 0; - ret = ff_alloc_packet2(avctx, pkt, (256 + 4 * s->nb_slices + width * height) * - s->planes + 256, 0); + ret = ff_alloc_packet(avctx, pkt, (256 + 4 * s->nb_slices + width * height) * + s->planes + 256); if (ret < 0) return ret; diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c index f200f45e86..7693feb127 100644 --- a/libavcodec/mlpenc.c +++ b/libavcodec/mlpenc.c @@ -21,6 +21,7 @@ */ #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "put_bits.h" #include "audio_frame_queue.h" @@ -2214,7 +2215,7 @@ static int mlp_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, int restart_frame, ret; uint8_t *data; - if ((ret = ff_alloc_packet2(avctx, avpkt, 87500 * avctx->channels, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, 87500 * avctx->channels)) < 0) return ret; /* add current frame to queue */ diff --git a/libavcodec/mpegaudioenc_template.c b/libavcodec/mpegaudioenc_template.c index 8e6e20c358..1df3cc704a 100644 --- a/libavcodec/mpegaudioenc_template.c +++ b/libavcodec/mpegaudioenc_template.c @@ -27,6 +27,7 @@ #include "libavutil/channel_layout.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "put_bits.h" @@ -760,7 +761,7 @@ static int MPA_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, } compute_bit_allocation(s, smr, bit_alloc, &padding); - if ((ret = ff_alloc_packet2(avctx, avpkt, MPA_MAX_CODED_FRAME_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, MPA_MAX_CODED_FRAME_SIZE)) < 0) return ret; init_put_bits(&s->pb, avpkt->data, avpkt->size); diff --git a/libavcodec/mpegvideo_enc.c b/libavcodec/mpegvideo_enc.c index c01488f483..b38d6faaf6 100644 --- a/libavcodec/mpegvideo_enc.c +++ b/libavcodec/mpegvideo_enc.c @@ -42,6 +42,7 @@ #include "libavutil/thread.h" #include "avcodec.h" #include "dct.h" +#include "encode.h" #include "idctdsp.h" #include "mpeg12.h" #include "mpegvideo.h" @@ -1721,7 +1722,7 @@ int ff_mpv_encode_picture(AVCodecContext *avctx, AVPacket *pkt, int pkt_size = growing_buffer ? FFMAX(s->mb_width*s->mb_height*64+10000, avctx->internal->byte_buffer_size) - AV_INPUT_BUFFER_PADDING_SIZE : s->mb_width*s->mb_height*(MAX_MB_BYTES+100)+10000; - if ((ret = ff_alloc_packet2(avctx, pkt, pkt_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, pkt_size)) < 0) return ret; if (s->mb_info) { s->mb_info_ptr = av_packet_new_side_data(pkt, diff --git a/libavcodec/msvideo1enc.c b/libavcodec/msvideo1enc.c index 3680c32b11..df621a6f48 100644 --- a/libavcodec/msvideo1enc.c +++ b/libavcodec/msvideo1enc.c @@ -25,6 +25,7 @@ */ #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "bytestream.h" #include "libavutil/lfg.h" @@ -76,7 +77,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, int skips = 0; int quality = 24; - if ((ret = ff_alloc_packet2(avctx, pkt, avctx->width*avctx->height*9 + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, avctx->width*avctx->height*9 + AV_INPUT_BUFFER_MIN_SIZE)) < 0) return ret; dst= buf= pkt->data; diff --git a/libavcodec/opusenc.c b/libavcodec/opusenc.c index ac8a5d651c..7b22b929f7 100644 --- a/libavcodec/opusenc.c +++ b/libavcodec/opusenc.c @@ -19,6 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ +#include "encode.h" #include "opusenc.h" #include "opus_pvq.h" #include "opusenc_psy.h" @@ -577,7 +578,7 @@ static int opus_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, /* Worst case toc + the frame lengths if needed */ alloc_size += 2 + s->packet.frames*2; - if ((ret = ff_alloc_packet2(avctx, avpkt, alloc_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, alloc_size)) < 0) return ret; /* Assemble packet */ diff --git a/libavcodec/pcxenc.c b/libavcodec/pcxenc.c index 96132105f1..4c43c9e344 100644 --- a/libavcodec/pcxenc.c +++ b/libavcodec/pcxenc.c @@ -29,6 +29,7 @@ #include "avcodec.h" #include "bytestream.h" #include "libavutil/imgutils.h" +#include "encode.h" #include "internal.h" static const uint32_t monoblack_pal[16] = { 0x000000, 0xFFFFFF }; @@ -133,7 +134,7 @@ static int pcx_encode_frame(AVCodecContext *avctx, AVPacket *pkt, line_bytes = (line_bytes + 1) & ~1; max_pkt_size = 128 + avctx->height * 2 * line_bytes * nplanes + (pal ? 256*3 + 1 : 0); - if ((ret = ff_alloc_packet2(avctx, pkt, max_pkt_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, max_pkt_size)) < 0) return ret; buf = pkt->data; buf_end = pkt->data + pkt->size; diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c index 894b44197e..9a9aee06f9 100644 --- a/libavcodec/pngenc.c +++ b/libavcodec/pngenc.c @@ -539,7 +539,7 @@ static int encode_png(AVCodecContext *avctx, AVPacket *pkt, ); if (max_packet_size > INT_MAX) return AVERROR(ENOMEM); - ret = ff_alloc_packet2(avctx, pkt, max_packet_size, 0); + ret = ff_alloc_packet(avctx, pkt, max_packet_size); if (ret < 0) return ret; diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c index 280197c9c6..3098b9db05 100644 --- a/libavcodec/proresenc_anatoliy.c +++ b/libavcodec/proresenc_anatoliy.c @@ -31,6 +31,7 @@ #include "libavutil/opt.h" #include "avcodec.h" #include "dct.h" +#include "encode.h" #include "internal.h" #include "profiles.h" #include "proresdata.h" @@ -727,7 +728,7 @@ static int prores_encode_frame(AVCodecContext *avctx, AVPacket *pkt, int frame_size = FFALIGN(avctx->width, 16) * FFALIGN(avctx->height, 16)*16 + 500 + AV_INPUT_BUFFER_MIN_SIZE; //FIXME choose tighter limit - if ((ret = ff_alloc_packet2(avctx, pkt, frame_size + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, frame_size + AV_INPUT_BUFFER_MIN_SIZE)) < 0) return ret; buf = pkt->data; diff --git a/libavcodec/proresenc_kostya.c b/libavcodec/proresenc_kostya.c index 2e39ed41da..4f303593ce 100644 --- a/libavcodec/proresenc_kostya.c +++ b/libavcodec/proresenc_kostya.c @@ -27,6 +27,7 @@ #include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "avcodec.h" +#include "encode.h" #include "fdctdsp.h" #include "put_bits.h" #include "profiles.h" @@ -998,7 +999,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, ctx->pic = pic; pkt_size = ctx->frame_size_upper_bound; - if ((ret = ff_alloc_packet2(avctx, pkt, pkt_size + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, pkt_size + AV_INPUT_BUFFER_MIN_SIZE)) < 0) return ret; orig_buf = pkt->data; diff --git a/libavcodec/qtrleenc.c b/libavcodec/qtrleenc.c index fc92f5cb06..4089157d47 100644 --- a/libavcodec/qtrleenc.c +++ b/libavcodec/qtrleenc.c @@ -25,6 +25,7 @@ #include "libavutil/imgutils.h" #include "avcodec.h" #include "bytestream.h" +#include "encode.h" #include "internal.h" /** Maximum RLE code for bulk copy */ @@ -369,7 +370,7 @@ static int qtrle_encode_frame(AVCodecContext *avctx, AVPacket *pkt, QtrleEncContext * const s = avctx->priv_data; int ret; - if ((ret = ff_alloc_packet2(avctx, pkt, s->max_buf_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, s->max_buf_size)) < 0) return ret; if (avctx->gop_size == 0 || !s->previous_frame->data[0] || diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c index aa4f376431..f8e363ada7 100644 --- a/libavcodec/roqvideoenc.c +++ b/libavcodec/roqvideoenc.c @@ -62,6 +62,7 @@ #include "roqvideo.h" #include "bytestream.h" #include "elbg.h" +#include "encode.h" #include "internal.h" #include "mathops.h" @@ -1071,7 +1072,7 @@ static int roq_encode_frame(AVCodecContext *avctx, AVPacket *pkt, /* 138 bits max per 8x8 block + * 256 codebooks*(6 bytes 2x2 + 4 bytes 4x4) + 8 bytes frame header */ size = ((roq->width * roq->height / 64) * 138 + 7) / 8 + 256 * (6 + 4) + 8; - if ((ret = ff_alloc_packet2(avctx, pkt, size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, size)) < 0) return ret; enc->out_buf = pkt->data; diff --git a/libavcodec/rpzaenc.c b/libavcodec/rpzaenc.c index e4651d9d9c..337b1faf5b 100644 --- a/libavcodec/rpzaenc.c +++ b/libavcodec/rpzaenc.c @@ -28,6 +28,7 @@ #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "put_bits.h" @@ -776,9 +777,9 @@ static int rpza_encode_frame(AVCodecContext *avctx, AVPacket *pkt, RpzaContext *s = avctx->priv_data; const AVFrame *pict = frame; uint8_t *buf; - int ret; + int ret = ff_alloc_packet(avctx, pkt, 6LL * avctx->height * avctx->width); - if ((ret = ff_alloc_packet2(avctx, pkt, 6LL * avctx->height * avctx->width, 0)) < 0) + if (ret < 0) return ret; init_put_bits(&s->pb, pkt->data, pkt->size); diff --git a/libavcodec/sgienc.c b/libavcodec/sgienc.c index 962dac0f8a..d323e41172 100644 --- a/libavcodec/sgienc.c +++ b/libavcodec/sgienc.c @@ -23,6 +23,7 @@ #include "avcodec.h" #include "bytestream.h" +#include "encode.h" #include "internal.h" #include "sgi.h" #include "rle.h" @@ -154,7 +155,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, else // assume sgi_rle_encode() produces at most 2x size of input length += tablesize * 2 + depth * height * (2 * width + 1); - if ((ret = ff_alloc_packet2(avctx, pkt, bytes_per_channel * length, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, bytes_per_channel * length)) < 0) return ret; bytestream2_init_writer(&pbc, pkt->data, pkt->size); diff --git a/libavcodec/snowenc.c b/libavcodec/snowenc.c index 5d384e8d91..d2c0beb1aa 100644 --- a/libavcodec/snowenc.c +++ b/libavcodec/snowenc.c @@ -24,6 +24,7 @@ #include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "packet_internal.h" #include "snow_dwt.h" @@ -1569,7 +1570,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, uint8_t rc_header_bak[sizeof(s->header_state)]; uint8_t rc_block_bak[sizeof(s->block_state)]; - if ((ret = ff_alloc_packet2(avctx, pkt, s->b_width*s->b_height*MB_SIZE*MB_SIZE*3 + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, s->b_width*s->b_height*MB_SIZE*MB_SIZE*3 + AV_INPUT_BUFFER_MIN_SIZE)) < 0) return ret; ff_init_range_encoder(c, pkt->data, pkt->size); diff --git a/libavcodec/sonic.c b/libavcodec/sonic.c index 74b388c64f..63a613f77d 100644 --- a/libavcodec/sonic.c +++ b/libavcodec/sonic.c @@ -19,6 +19,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "avcodec.h" +#include "encode.h" #include "get_bits.h" #include "golomb.h" #include "internal.h" @@ -721,7 +722,7 @@ static int sonic_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const short *samples = (const int16_t*)frame->data[0]; uint8_t state[32]; - if ((ret = ff_alloc_packet2(avctx, avpkt, s->frame_size * 5 + 1000, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, s->frame_size * 5 + 1000)) < 0) return ret; ff_init_range_encoder(&c, avpkt->data, avpkt->size); diff --git a/libavcodec/sunrastenc.c b/libavcodec/sunrastenc.c index e4c7c6b090..b77bed01a5 100644 --- a/libavcodec/sunrastenc.c +++ b/libavcodec/sunrastenc.c @@ -23,6 +23,7 @@ #include "avcodec.h" #include "bytestream.h" +#include "encode.h" #include "internal.h" #include "sunrast.h" @@ -175,7 +176,7 @@ static int sunrast_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, SUNRASTContext *s = avctx->priv_data; int ret; - if ((ret = ff_alloc_packet2(avctx, avpkt, s->size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, s->size)) < 0) return ret; bytestream2_init_writer(&s->p, avpkt->data, avpkt->size); diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c index 09fa15a3a2..bfc0fce440 100644 --- a/libavcodec/svq1enc.c +++ b/libavcodec/svq1enc.c @@ -27,6 +27,7 @@ */ #include "avcodec.h" +#include "encode.h" #include "hpeldsp.h" #include "me_cmp.h" #include "mpegvideo.h" @@ -580,8 +581,9 @@ static int svq1_encode_frame(AVCodecContext *avctx, AVPacket *pkt, SVQ1EncContext *const s = avctx->priv_data; int i, ret; - if ((ret = ff_alloc_packet2(avctx, pkt, s->y_block_width * s->y_block_height * - MAX_MB_BYTES*3 + AV_INPUT_BUFFER_MIN_SIZE, 0)) < 0) + ret = ff_alloc_packet(avctx, pkt, s->y_block_width * s->y_block_height * + MAX_MB_BYTES * 3 + AV_INPUT_BUFFER_MIN_SIZE); + if (ret < 0) return ret; if (avctx->pix_fmt != AV_PIX_FMT_YUV410P) { diff --git a/libavcodec/targaenc.c b/libavcodec/targaenc.c index b955a4616e..82870c089b 100644 --- a/libavcodec/targaenc.c +++ b/libavcodec/targaenc.c @@ -27,6 +27,7 @@ #include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "rle.h" #include "targa.h" @@ -91,7 +92,7 @@ static int targa_encode_frame(AVCodecContext *avctx, AVPacket *pkt, picsize = av_image_get_buffer_size(avctx->pix_fmt, avctx->width, avctx->height, 1); - if ((ret = ff_alloc_packet2(avctx, pkt, picsize + 45, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, picsize + 45)) < 0) return ret; /* zero out the header and only set applicable fields */ diff --git a/libavcodec/tiffenc.c b/libavcodec/tiffenc.c index 0abedc4ae4..f8623be3e9 100644 --- a/libavcodec/tiffenc.c +++ b/libavcodec/tiffenc.c @@ -36,6 +36,7 @@ #include "libavutil/pixdesc.h" #include "avcodec.h" #include "bytestream.h" +#include "encode.h" #include "internal.h" #include "lzw.h" #include "put_bits.h" @@ -334,7 +335,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, packet_size = avctx->height * bytes_per_row * 2 + avctx->height * 4 + AV_INPUT_BUFFER_MIN_SIZE; - if ((ret = ff_alloc_packet2(avctx, pkt, packet_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, packet_size)) < 0) return ret; ptr = pkt->data; s->buf_start = pkt->data; diff --git a/libavcodec/ttaenc.c b/libavcodec/ttaenc.c index 8f8afdd338..addaf30bb5 100644 --- a/libavcodec/ttaenc.c +++ b/libavcodec/ttaenc.c @@ -22,6 +22,7 @@ #include "ttadata.h" #include "ttaencdsp.h" #include "avcodec.h" +#include "encode.h" #include "put_bits.h" #include "internal.h" #include "libavutil/crc.h" @@ -92,7 +93,7 @@ static int tta_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, pkt_alloc: cur_chan = 0, res = 0, samples = 0; - if ((ret = ff_alloc_packet2(avctx, avpkt, pkt_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, pkt_size)) < 0) return ret; init_put_bits(&pb, avpkt->data, avpkt->size); diff --git a/libavcodec/utvideoenc.c b/libavcodec/utvideoenc.c index 30d3e33ee7..1402825fa7 100644 --- a/libavcodec/utvideoenc.c +++ b/libavcodec/utvideoenc.c @@ -29,6 +29,7 @@ #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "bswapdsp.h" #include "bytestream.h" @@ -530,8 +531,8 @@ static int utvideo_encode_frame(AVCodecContext *avctx, AVPacket *pkt, int i, ret = 0; /* Allocate a new packet if needed, and set it to the pointer dst */ - ret = ff_alloc_packet2(avctx, pkt, (256 + 4 * c->slices + width * height) * - c->planes + 4, 0); + ret = ff_alloc_packet(avctx, pkt, (256 + 4 * c->slices + width * height) + * c->planes + 4); if (ret < 0) return ret; diff --git a/libavcodec/vorbisenc.c b/libavcodec/vorbisenc.c index d8d7d4d4eb..332c09f9a1 100644 --- a/libavcodec/vorbisenc.c +++ b/libavcodec/vorbisenc.c @@ -28,6 +28,7 @@ #include "libavutil/float_dsp.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "fft.h" #include "mathops.h" @@ -1134,7 +1135,7 @@ static int vorbis_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, if (!apply_window_and_mdct(venc)) return 0; - if ((ret = ff_alloc_packet2(avctx, avpkt, 8192, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, 8192)) < 0) return ret; init_put_bits(&pb, avpkt->data, avpkt->size); diff --git a/libavcodec/wavpackenc.c b/libavcodec/wavpackenc.c index ba7ea2e45f..bd548a5c30 100644 --- a/libavcodec/wavpackenc.c +++ b/libavcodec/wavpackenc.c @@ -23,6 +23,7 @@ #include "libavutil/intreadwrite.h" #include "libavutil/opt.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "put_bits.h" #include "bytestream.h" @@ -2869,7 +2870,7 @@ static int wavpack_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, buf_size = s->block_samples * avctx->channels * 8 + 200 * avctx->channels /* for headers */; - if ((ret = ff_alloc_packet2(avctx, avpkt, buf_size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, buf_size)) < 0) return ret; buf = avpkt->data; diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c index cf42aeaca0..66e3537cb0 100644 --- a/libavcodec/wmaenc.c +++ b/libavcodec/wmaenc.c @@ -23,6 +23,7 @@ #include "libavutil/ffmath.h" #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "wma.h" #include "libavutil/avassert.h" @@ -392,7 +393,7 @@ static int encode_superframe(AVCodecContext *avctx, AVPacket *avpkt, } } - if ((ret = ff_alloc_packet2(avctx, avpkt, 2 * MAX_CODED_SUPERFRAME_SIZE, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, avpkt, 2 * MAX_CODED_SUPERFRAME_SIZE)) < 0) return ret; total_gain = 128; diff --git a/libavcodec/xbmenc.c b/libavcodec/xbmenc.c index 3451ecc88c..37773bc382 100644 --- a/libavcodec/xbmenc.c +++ b/libavcodec/xbmenc.c @@ -21,6 +21,7 @@ */ #include "avcodec.h" +#include "encode.h" #include "internal.h" #include "mathops.h" @@ -43,7 +44,7 @@ static int xbm_encode_frame(AVCodecContext *avctx, AVPacket *pkt, } size = rowsout * (lineout * 6 + 1) + 106; - if ((ret = ff_alloc_packet2(avctx, pkt, size, 0)) < 0) + if ((ret = ff_alloc_packet(avctx, pkt, size)) < 0) return ret; buf = pkt->data; From patchwork Fri May 21 09:17:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27860 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp342737iof; Fri, 21 May 2021 02:23:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwwoBsYpEjPacVQ44WIglPfHBE5f3fvcW13cTtWoMce0Om6vlbWvn4vhAi0JrKZs7VdmIQq X-Received: by 2002:a05:6402:5174:: with SMTP id d20mr10330547ede.248.1621588994988; Fri, 21 May 2021 02:23:14 -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 g11si690012edu.494.2021.05.21.02.23.14; Fri, 21 May 2021 02:23:14 -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=XHUx6MGb; 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 51B3268A000; Fri, 21 May 2021 12:18:41 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074057.outbound.protection.outlook.com [40.92.74.57]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 906E668A000 for ; Fri, 21 May 2021 12:18:39 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GoSWAdaqMQmIop+IiiJQc24/T1YRiAnOCPprU4nnzeVF9BgzlB10J7OPq+Ju88AcIh3lcQR5Lt1W+06GJlT0lPfhEeCfieH1TCX7sEgYMo+i63Jyow78D7jPE4/UVHJDFUwP1HJXzl5eHsy2RJs46B6r6rEF9tvXbjbDED9JqYJdmNUTuSnnZUs2/sjJDuCHjqwW6sGcClSQRzYto5ds+k0wT7hC8nV/b8bRYUMdWvvBQduFgbGV6Ij1f+HpbWdEa0nOwXIjzr7jPD6Xesq2R/Rh9ssAY+Cvp33LAtKGbyQShSylWw7zl+z6zDVihQfmIODx/wJlKYpVrrGVrcqMTg== 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=hOsSMM2E2ByPZQih/3kpaqqBjUZEzmJTXOGIjJAMm9o=; b=X+MWji2fOfVHxLbC9zSsZ4oJc8OmbwfofTpcX9CMxZ5ukn/MjRnW8cpeRnoIlUyhtOeQZcpSi5ggB73g3RAlMq0bb/LS7CDbaIiPdTaw5AU2yMLx5etAv8cq8J45eeC1zNkErfvrPKRL4Xyy6rqpgs4WwvivFxy7/x6gircnxV/eJz6NWZjNDIaGwl8MzcBFihQEzV5O2GJh6cDEVCBd8Xuy0TjsHDBWZxyDB+lNlJL8Kzg3ZJDW2DZYYX5Ip4Wuzcfxuk3mfbx4W3KebaBsvqoaZ0nrHWpFQ5oIdnTChlFD8yb0Wopckc4ZGsGZFi9Dq9t+BQ6pseE6vyB1aijYfQ== 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=hOsSMM2E2ByPZQih/3kpaqqBjUZEzmJTXOGIjJAMm9o=; b=XHUx6MGbhOx5w2vzLwvW2aMDvP7YBJ6b0LaZg+IQAtcJ59JmaLpmdM40TLKcbYeQC3NouJoDoVYM3+F2v2aySlqNp1WmH1VXaQ3F7B8oPgWxCz2EMBylvuAo2h5pC8mAXjbTyXD/CohyzrTwvZILZUg53bBb19AaXYGji+oEzisgCQU8ZkoJsCzSufnr3tlQFuLXRqSrAQLdhf3m3W7JvdVInOXpxGcmE9V6fFNdldgT/yXXv3LnBWUl9Web6cHyyiD9YLNM2OLa7R13Apx5GKnMmbZNeXMVvD2knrZp2AeAfFADmg5OX9snk4+KeTdnWn61uXwlRC2yiJ5wjJh7og== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::53) by DB3EUR04HT144.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::228) 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:38 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:38 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:A31F070AC139AA9724F2A45B3208CE094B3FF53B1CCAD912D2B5C3C96A2D535D; UpperCasedChecksum:7708A3186DF1CF86E305334B69DA56C54422F175A30768DC0403FB4889B57594; SizeAsReceived:7750; Count:50 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:38 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:35 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [eyd83Oiwkuh/2s/D58anYDiT8mnJMfLP] 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-31-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:37 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 50 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 1027e79f-e176-4365-0d2a-08d91c396ac4 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfauU/cuv7cFkMNp0wy3Bdc2NYQZ9Zmq5nqLOstT3/ShkT7hMriWMGZ/6/wc/kMeDZYFKPXAV1qnmWK4WANS0z8EZP06vPmxevNUVWyxfh6ftVXD7Crq3ld7R++C2aL8x9CukC45w7ERTDbPIMThaItTABrASsrJHS6xkE6mfwilWjYYcjssC28oFc01EW6b5UspfHfwWRaPvdAlqzCqY8vTfNYPpGIIb/HSq/UUQKVq8xUstkDzuDB0jW0QTndGvNUQ/4S9JZ7eL+LFBfJppVSXPXwefFl/y3RIyKkji8P1lMl0uw5di1E8txAX81X0Jzqv//eh0R8R0F61d5E243LxjMkqhGyr44XgZCOg+y/maxyeLNAOUHORCYzU+wrZhBzttGQPo93PBtM6MCqjV6DxCMI5htPzNbBW7t97n0QuKOkygdZSCW3XTG7EkuH7BxnxiSiLZsVxWTQf5CJGEKytPGHfWE3GXTJmnXkGdcj3NGzsmEUX1RyWEHu+Tn1sURU+f21PMZ74Us74T7x+4afH0HrrOJQznkUZIiBFBwNDGwtPrkWtevr1QtmkTHBuaVo7O6eoslxD6DCDzjf0Kn0fIE9zrIZmmzkeCmkXU1BbKq/Y5wtJIapqdbBBohv4a28wS0MKZ/27dypbvvz9jnONSou8DXR+H//jqr0Lru9wTYyh5trYGSSnlcv99phHKyqFOAgtP1h4M0c= X-MS-TrafficTypeDiagnostic: DB3EUR04HT144: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zon3zLYbmn4GUKmG0ea7yp8aKatScR5Xv+MUx5jOadc1V3LJHTxkFDPPKOT4SLECOKQ6N+H6tMiLkvBia3mZcHeDTD7LKz94GzVH4/9A2WRKL3HM+O/Uq5SvWg2VZG0aV7cwPecdT2HVCzIDhltiKL//66bq4IfqbV7uc7XXQYK3sJXyNx/wXCdTR5+BaUpoffslCO+qMaCr3NdVanGuLMka6i2gFb7k0ipHF1jBd67BuQ0FW8k+OLiumdRBIljLBUAEa/+3mQ3hzmzgVi/xbl1uSeHlKEx8IXaYPA0eNbxv0og/vmuxRVPJIPI4Y+NKTwu1KH2Rrh57FnI/6KbMJha717qpDdrorLOSx3S8Ja/zEtgk4nk9a5NqvjtYjHtevJIcfWZR0yFBY9k984PUJA== X-MS-Exchange-AntiSpam-MessageData: yd3MQOkSwprA9pmwyTlvbnKzeeDWjOIE823CYJxVkUaKWM5zC/sNuu6SlMhnClj9Z1rdGcN2GTfvEzIERw39JLd7XSYPeGsFvJLPhL5T9fbZDIqE4QjRfNklDN/ZeyMWDWiVR9RGkw+f/t4hOQOLaQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1027e79f-e176-4365-0d2a-08d91c396ac4 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:38.2061 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT144 Subject: [FFmpeg-devel] [PATCH 32/39] avcodec/frame_thread_encoder: Avoid dictionaries 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: 9yUN2MJiGG8l avcodec_open2() allows to provide options via an AVDictionary; but it is also allowed to set options by simply setting the value of the AVCodecContext or via the AVOptions API if the codec has a private class. Any options provided via an AVDictionary have already been applied before ff_frame_thread_init(), so in order to copy all the options from the main AVCodecContext and its private context, it is enough to av_opt_copy() these options. The current code does this, but it does more: It also copies the user-provided AVDictionary and uses it for the initialization of each of the worker-AVCodecContexts. This is completely unnecessary, because said options have already been copied from the main context. Furthermore, these options were also examined to decide if frame threading should be used for huffman encoding in case this would incur nondeterminism. This is wrong, because options not set via the AVDictionary are ignored. So instead inspect the values stored in the contexts directly instead of searching for an options in the provided AVDictionary. (In order to maintain the current behaviour, the default value of the "non_deterministic" option has been changed to false, because the absence of a an entry with said key in the AVDictionary had the consequence of disallowing nondeterminism. Finally, the AVDictionary has been removed from the signature of ff_frame_thread_encoder_init(). Signed-off-by: Andreas Rheinhardt --- libavcodec/avcodec.c | 2 +- libavcodec/frame_thread_encoder.c | 25 ++++++++----------------- libavcodec/frame_thread_encoder.h | 2 +- libavcodec/huffyuvenc.c | 2 +- 4 files changed, 11 insertions(+), 20 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 882700f357..6f61ae246d 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -303,7 +303,7 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code if (CONFIG_FRAME_THREAD_ENCODER && av_codec_is_encoder(avctx->codec)) { unlock_avcodec(codec); //we will instantiate a few encoders thus kick the counter to prevent false detection of a problem - ret = ff_frame_thread_encoder_init(avctx, options ? *options : NULL); + ret = ff_frame_thread_encoder_init(avctx); lock_avcodec(codec); if (ret < 0) goto free_and_end; diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index 778317d60b..5d14442c01 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -121,7 +121,8 @@ end: return NULL; } -int ff_frame_thread_encoder_init(AVCodecContext *avctx, AVDictionary *options){ +int ff_frame_thread_encoder_init(AVCodecContext *avctx) +{ int i=0; ThreadContext *c; @@ -148,18 +149,14 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx, AVDictionary *options){ if (avctx->codec_id == AV_CODEC_ID_HUFFYUV || avctx->codec_id == AV_CODEC_ID_FFVHUFF) { int warn = 0; - int context_model = 0; - AVDictionaryEntry *con = av_dict_get(options, "context", NULL, AV_DICT_MATCH_CASE); - - if (con && con->value) - context_model = atoi(con->value); + int64_t tmp; if (avctx->flags & AV_CODEC_FLAG_PASS1) warn = 1; - else if(context_model > 0) { - AVDictionaryEntry *t = av_dict_get(options, "non_deterministic", - NULL, AV_DICT_MATCH_CASE); - warn = !t || !t->value || !atoi(t->value) ? 1 : 0; + else if (av_opt_get_int(avctx->priv_data, "context", 0, &tmp) >= 0 && + tmp > 0) { + warn = av_opt_get_int(avctx->priv_data, "non_deterministic", 0, &tmp) < 0 + || !tmp; } // huffyuv does not support these with multiple frame threads currently if (warn) { @@ -202,7 +199,6 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx, AVDictionary *options){ } for(i=0; ithread_count ; i++){ - AVDictionary *tmp = NULL; int ret; void *tmpv; AVCodecContext *thread_avctx = avcodec_alloc_context3(avctx->codec); @@ -225,13 +221,8 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx, AVDictionary *options){ thread_avctx->thread_count = 1; thread_avctx->active_thread_type &= ~FF_THREAD_FRAME; - av_dict_copy(&tmp, options, 0); - av_dict_set(&tmp, "threads", "1", 0); - if(avcodec_open2(thread_avctx, avctx->codec, &tmp) < 0) { - av_dict_free(&tmp); + if (avcodec_open2(thread_avctx, avctx->codec, NULL) < 0) goto fail; - } - av_dict_free(&tmp); av_assert0(!thread_avctx->internal->frame_thread_encoder); thread_avctx->internal->frame_thread_encoder = c; if(pthread_create(&c->worker[i], NULL, worker, thread_avctx)) { diff --git a/libavcodec/frame_thread_encoder.h b/libavcodec/frame_thread_encoder.h index c400d6b32c..2cdc40a830 100644 --- a/libavcodec/frame_thread_encoder.h +++ b/libavcodec/frame_thread_encoder.h @@ -23,7 +23,7 @@ #include "avcodec.h" -int ff_frame_thread_encoder_init(AVCodecContext *avctx, AVDictionary *options); +int ff_frame_thread_encoder_init(AVCodecContext *avctx); void ff_frame_thread_encoder_free(AVCodecContext *avctx); int ff_thread_video_encode_frame(AVCodecContext *avctx, AVPacket *pkt, AVFrame *frame, int *got_packet_ptr); diff --git a/libavcodec/huffyuvenc.c b/libavcodec/huffyuvenc.c index b35f5c3342..266984c026 100644 --- a/libavcodec/huffyuvenc.c +++ b/libavcodec/huffyuvenc.c @@ -1016,7 +1016,7 @@ static av_cold int encode_end(AVCodecContext *avctx) #define COMMON_OPTIONS \ { "non_deterministic", "Allow multithreading for e.g. context=1 at the expense of determinism", \ - OFFSET(non_determ), AV_OPT_TYPE_BOOL, { .i64 = 1 }, \ + OFFSET(non_determ), AV_OPT_TYPE_BOOL, { .i64 = 0 }, \ 0, 1, VE }, \ { "pred", "Prediction method", OFFSET(predictor), AV_OPT_TYPE_INT, { .i64 = LEFT }, LEFT, MEDIAN, VE, "pred" }, \ { "left", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = LEFT }, INT_MIN, INT_MAX, VE, "pred" }, \ From patchwork Fri May 21 09:17: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: 27870 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp343057iof; Fri, 21 May 2021 02:23:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzwuD2lsOEgrswCzDgwhoa25wLQVGRtaixcD6eMca8Ld3apxlF5Ffn68SfwQOJG+VY6c0GH X-Received: by 2002:a05:6402:20f:: with SMTP id t15mr10120581edv.370.1621589026071; Fri, 21 May 2021 02:23:46 -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 a22si5011301edv.404.2021.05.21.02.23.45; Fri, 21 May 2021 02:23:46 -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="X/OwiFYC"; 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 9AEC0689888; Fri, 21 May 2021 12:19:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073053.outbound.protection.outlook.com [40.92.73.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DFC69689907 for ; Fri, 21 May 2021 12:19:10 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KeWyEPxGG1hsBG+y359wyChA8FpkiV/ab/Xlxp2SAY50dCevk3RLtZXbrGVkuZ74yHGcFtnMxUM9kQoYfAY8Tflw/0RxNgdo02jpJt0IWurNC4F85lEJUT9LiNHQgiwkkJGFCAI4CuEmX+DtE5WiSBapskabbbjrC51+mts7Toz0CRMGEXJrnWxTl5sT377e9bQv+/5uXKPn0gGdq1wiOal+4U20YmkBF+qCGDhlcirH8czfYDmJcV6D2d2ab/2wXaUYClfFAf7tlX62814q+iAXosf22VD44XG4uoCl3D79PRsDXjvUDDScEn5X9XdXMDpkvx0GHe9FUjWJkmESjA== 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=v1H9sASl7U+KaLSlcchuTvburF5ulDB+XeEglbG5vy8=; b=kf7ixqz745POgGrswMFnPZpwfZKqF7ey72j78lFQYCM+Dj2MfTeHYZo8iv49GR6muo7ka2fMuoXkIGqUElAtpK+kAZrskcZ5du3LdVD9u+ofqVy9CkRjZS5O3XdFVJz6rjjHhT66X8gULmBJCa3Gi5cSFpI7vcEFo99/E1ETi+tn45jkBgwDFLsNx6pxnCvA5QAoSlDzd6xwxWN/ba0g4MGM22JjGDD5v3ir/jmow0FWwnyhiHusNtEd1MI4BUgXS//DkTt9tqNSOaNgKkXZgZvS6ifdN+wyUVOCss4Oys8LWkMIrv7uoFv/PA1P4fu2POZqdSjU4RRcFCG9UC8JHw== 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=v1H9sASl7U+KaLSlcchuTvburF5ulDB+XeEglbG5vy8=; b=X/OwiFYCD53h4m0tkvDvOGxTc6SDYdOA0GsoHTOC9CggLtyM+34pH9nc5DueieSL1l8DoNq3wHvmg1OhIYKneDe/YkK5O27I6H2HIdcYOGkUEmNTCkUKSsr6Ewt5IuXgCRJ/U0qhRGuhm6qcDyxN14547m2/TQA1QdhYKbBudcJ+F6JQHO+QGSKXujHluzYAldIX7lQ89ki4vPNqUpSmsFyqeLTl+sYDSGvULSVjUYOvPXYY1MB7V2BjgTyyiGLiplH9En4fSDyLU/Y6TPZ2m9LXid3f59bq44jDqgq9DOgwdqhcc2U0AUhMyXK41A4UhB3qdV0NOvGfc4E7Bkj7fQ== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::4f) by DB3EUR04HT098.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::124) 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:19:09 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:19:09 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:68C7AD32885D93268083FFA6B83AAB30DB58BB68CE9398338520D8DD28FB8D2F; UpperCasedChecksum:F9E4940517FB32E04A186EAF0526BBA96D7A6F94DDA89D10D882BCA6F3B6DD48; SizeAsReceived:7782; Count:50 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:19:09 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:36 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [KLcD5sYdAltwd3n0LtLQG03TabZtEEuk] 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-32-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:38 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 50 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: b7a033c0-fbf9-4fc0-c601-08d91c396b68 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfausjbMYUQGfIksHjGdobpoGiT9HSY8DZ4jM3/DVkfdA26LBSjsu1o9OK5rMhSmvyV5VWPvUtyEzPCrhFmSJvc9HWOOXk+fauscCKRg2Me9CFGGH97hdC35ye685/lidJmnDYQR/ZtXlYYOwbsU7APYytotG28Xzn6vN3P/+9sa7L9o7py/ZfOrD6OrwGPIfKU2PfLFn/sJAgpVuSlZDxeOnktZEuiYmgbz7xrgLb1MJ+OGzPT5YzbVMfohoVWTOxVPv5HCn5risd3s+CNYNpZ3f2C2Kqgm1271Xyy4hqSTBjezTyZO2bm//ZrVaa6GHtZ++H1BcvsgPniV0ozaREQbGqrY1Ktd8mgCc27u93tz26f2msYFcqUkL3YpX7VLiitbDOS7flpLWO6Lo3crO08Yc8AKPl701WfrRoVNpCXdVZSe/0BcjKwypqT3kOEZ8g0M5daPgWZJDfO7Ozp6GNR8T0K8k44ZkI/RBq9hgH2solLWQdVfXq5SF6jmPRa5kfjIvr7Dgf9wNwqd8hTJwzdYNH9StdhgFqjgKUE8tswfdnrwlpbHs1irUQuBDya7xMOYyutaAWpaYwGkbeq3JSMsSE2Z+N2cP8TWgi4zZmXUKPT4j7pXR/d9jeFsqxJkrm+AK4WKJDT5JhFYIej5pYcoWyyDCxCB5Mr9lcZAHRu7oQs2/28cHM39BVZl923hSGkdg3ntfdDOFwY= X-MS-TrafficTypeDiagnostic: DB3EUR04HT098: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0Te4s4N/cQaH1mdPlrFCEHcMxDzznEFDT/N175KmuGSezqngDtEzckGkd/lVONhu4d5prIG6pKxlx9pebOifE1YVTu9itJ+hMx0nKkgpnBglv4Y4TemBcU9XYc3VT7NyxJMugoCIX/PoegnpEGyuR4Nor+PX5imqX3P+qFT16QOImbn0478RuC5wSUkchUgOPZWpUCYJ0ABgR3ZEt29IpysC2Rh9FpYHD5L/r0BwdAiaVtfScc8VclB1Hjih5MqSS8gtYkMGqr2+z2mu+FD8InCHVqnc/xY+tNnmXFxvnPhFDZ1BzXImVQYxAiG4JlvXEhWPuU7Dmls/UHiBv/Cm5CAVe8D1hItTZig10XTAPo3Kee8p+WzvaQRGeOZt22o0yUPv5OrQqj7G5fxv8UAosg== X-MS-Exchange-AntiSpam-MessageData: hB5dR5cMvSlM7LT1qw87bzLlOIH3hC1oHyfjcKGAcPAu9Kfbe4XXII46J8SgKZElDzY2Pd1C6uxKkpeOZjeBTrlKn99IAcxrYk52n2MD7Bi1s1kHlFcvVgE7nOG9fK6n8kCCmq1NtEymyReZ02+n8g== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7a033c0-fbf9-4fc0-c601-08d91c396b68 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:39.3136 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT098 Subject: [FFmpeg-devel] [PATCH 33/39] avcodec/frame_thread_encoder: Remove redundant memcpy 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: Oof6VvTogAsv In case the underlying AVCodec has no private class, the private data of both the main as well as each worker AVCodecContext is just zeroed (the codec's init function has not been called on any of them and without a private class there is no way to legitimately set anything before the aforementioned init function). Signed-off-by: Andreas Rheinhardt --- libavcodec/frame_thread_encoder.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/libavcodec/frame_thread_encoder.c b/libavcodec/frame_thread_encoder.c index 5d14442c01..b3e571f4b0 100644 --- a/libavcodec/frame_thread_encoder.c +++ b/libavcodec/frame_thread_encoder.c @@ -215,8 +215,6 @@ int ff_frame_thread_encoder_init(AVCodecContext *avctx) int ret = av_opt_copy(thread_avctx->priv_data, avctx->priv_data); if (ret < 0) goto fail; - } else if (avctx->codec->priv_data_size) { - memcpy(thread_avctx->priv_data, avctx->priv_data, avctx->codec->priv_data_size); } thread_avctx->thread_count = 1; thread_avctx->active_thread_type &= ~FF_THREAD_FRAME; From patchwork Fri May 21 09:17:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27872 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp342835iof; Fri, 21 May 2021 02:23:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzN1dslJyVOvBF/0bvl8QglHMp175WBw+EKg/lZMXStYCxl4J/f+zcPtO+gFLLdLCp1k58v X-Received: by 2002:a05:6402:1c97:: with SMTP id cy23mr10202941edb.213.1621589005178; Fri, 21 May 2021 02:23:25 -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 j1si5226847ejx.156.2021.05.21.02.23.24; Fri, 21 May 2021 02:23:25 -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=mvhHWC6L; 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 6F39B689D6C; Fri, 21 May 2021 12:19:11 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075093.outbound.protection.outlook.com [40.92.75.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6D19B6898FF for ; Fri, 21 May 2021 12:19:10 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nzBue09GiFf7yIKDOambvFSbfimCZzIU5egzm8V2wowWtkSYUevb0WMG2aEAGQIk5FbFSxSmVdgr1mapuuYBexmqfuWUv+K9XzvGtKXNYUAW/uj59da6vugC+atixjBQGFlDriy2BxQ1vqWaM7ZLM2yIYjwTZArvi4m9/h4vzGBTDab5Mqd98vcJyCRWjbjN+6DZsNrRyqsUuhcSwSICPh6r0FVLkcCOJ77FtG+g6krK0mCd2j5g+q3uk+ImxonlCevhflXaU+aufRG1gKX6wmklEyP/hVW8umEm0PRkrzEh/8G7Iwh/kBk+CI/cTqvU9o9dgiK/NevtkHSWcbhLQA== 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=8IWXfLVGovkS6kJ4g7gJxxHFK5y9tt7iWG5NncSqD7M=; b=ITZkf+/o1R1U6Z5oKbCVqV0Ndh8HYy76GbqdgBXPo9W9OTmnbUXByfCNUG9rA83IiNhU9WdiiUxUavGqTskFr6ul6jA9InXOPZw/piIVRHvmaCA98apH3EjJYtu3dpSCq9BVDrBgZRm5omp4jggcu0QgwHpEArfEjTip2lQEbrBfPBDpyLoppJc34HPXcJIrC7YWbnUg4ToNRiVgyWpgW890SMyN0wD2GAIpGV9JE7KSke1wHrAUmjnZq3D9yCz5UPjQsWmJNgZR2b9rlMrc7khpaKX5zURqcGT3sQb2OYwxQqUxBQN/Brnvgw7Ryg6s+Fc1lDdh7muvZs2cRQ3FHQ== 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=8IWXfLVGovkS6kJ4g7gJxxHFK5y9tt7iWG5NncSqD7M=; b=mvhHWC6LQ14qmuHB6jEtuURRnQ//mgVKdUDAJBOyU4TlzOh5TXu9L4B6Mu38cemLsWyXYo9Zj0DhNfnv4C9MzWl0tOSFRBOj/RSOVw9dxb3gAETHutzpue/GUFd6Nyjmso+0Nc9PAELaDQ6K/BD56aeNUfUB1Duxm6QAu+J5OAb5L6yyE/NHIlxcw2BoPD9Y9LxHeqjz2NBIUVgtu37SI2RyEJMF12qci1HcV+Qf+P3VdfojSshTA9kEqApNjPpcVRtoMs6tmFFpTJydjw1YVgt2b5jbChAslnkvQEGYfusuYsp4CBiqdotCqGr8s36ijw3LUgwhwAU868qae/Np/A== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04HT022.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::312) 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:19:09 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:19:09 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:E2FE9D74634037DED5F5EF4EB7BEAE7CCF9AFAABA5ED1DCCE558C30909C7673F; UpperCasedChecksum:D9B2068821601C36D5A35D997798045824CECF5FD4C008C607DD13BCAAB1DD30; SizeAsReceived:7767; Count:50 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:19:09 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:37 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [o3yOUdI/BJ1OnhTiGGPaKB1gWPtdt10P] 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-33-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:39 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 50 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 655d10a2-15d1-401e-efdd-08d91c396c06 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIohmq9k/yScywu9xPSfiUScGxWs4kdpJLON82pBAb6dFrvGcGp5o5p2hSbXT074X6j43G4m3q/dU6lgOZ78qx6Wu2P+KIUah8XrqdqwUa88xwFYZG2/mU1A8Pxf4DYm1sqa9m0yQ3S7hMG+4vNeJQSqX4ZpHHcb4YhBsU+pYIJ0k84TSVRCefoWzXgsQ0JcdbHC6OxzwO4WIP7TbVvhRBFXkEpxLrbbvhLN4jMFfN8iyqWNePr5iXGHGGBslCqzRiYlM+k71x8mlVHYMwK7yhvvUvESRiJcWHTA+rmP926FLEMj3v1BFQ9IXt+EyPdlfMAMbS/T7KRVK6SNINUOh0qQIrcD7FsAHSAZSAw+1AgSc8WU5P+30290w8ZfPq71uplwmbIrE3ES3eE0PBoOERmJiSS8JxcQQr9j3gpcUYL+whZ2qdJOcKeuLG58/QqCheJRw3UBW/1LG1fY3ne0T1OmWmN7DgRG96OyadXSY0amdf3DbdAVC8Wxt05lqdZzvMTnCjYWlmE78Em+UEsLO/eKaEwGQZpR7/OEed6cP+uuHDXL9Bl1jbynkdc8RuaTGejtR2Kgmd1U9+aKL8JNCDg1L0NV/bw7loaZ2SRAI7wmwZp3r07oTfNeL3gH/Vx65rCGNLaGs+mibNUBOcoNnlI4mTwCU0n37PLuB1DXhyE3fOS01+cGNqqlgRjOCH2dHBEIxmAHSSltQ== X-MS-TrafficTypeDiagnostic: DB3EUR04HT022: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9ecneZHPBtgM4J6l5Lxl1ZRLuRkIjwaqWyL5/Wmz890aryqOh5wfB3LahKtDBy4dKeRP9CgThP12SK2anLNFU3KKc7x325Lm4QaA17ZSKuozGc2I1g6ASkgJrnTaBjTngZ5G60BbdbHJodXjrw90eEnAQlz1V6PlMIB59gvEN2XT17kvx70uIaoc1FPAmMVZ7jb+pAYQN6IyQ470uoMC28ks6lN30PEwV4K4WYoMJdYljjqdkN4YooqY4WNYm1EpMUYi6iReASJk9b8YjLksnDf+u5AbT6n7+LPY+yMnWsuJslZSfWCT1KXB98QIt6arU8vHS6a/D51FNm37kBQf+BQWLP9hXZJhpNQstU+X2F7gAvwlHu8dKGT/yin0+z0tQ136IdVebuRsT18UUlK3pw== X-MS-Exchange-AntiSpam-MessageData: G3pAs+u/uPX8CMqBP2QyefvM+IbRSMlf9V8ezhwJVZDf23j7HiC0yR5eV6ZUHjWfNzfE5kwCOPV7Zt3AymV0Xc+6KYV9jIs3abW0yio95WDQlWGwO01WdSOIkJvbI6S3undt9q8ob6AGd1OQkZSSgQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 655d10a2-15d1-401e-efdd-08d91c396c06 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:40.4481 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT022 Subject: [FFmpeg-devel] [PATCH 34/39] avutil/opt: Check directly for av_dict_copy() failure 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: GvUn0vMMoO0G av_dict_copy() returned void when this code was written. Signed-off-by: Andreas Rheinhardt --- Should one add AV_DICT_MULTIKEY to the flags to also copy dictionaries with multiple entries? libavutil/opt.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavutil/opt.c b/libavutil/opt.c index 4124efd9b6..41284d4ecd 100644 --- a/libavutil/opt.c +++ b/libavutil/opt.c @@ -1807,12 +1807,13 @@ int av_opt_copy(void *dst, const void *src) } else if (o->type == AV_OPT_TYPE_DICT) { AVDictionary **sdict = (AVDictionary **) field_src; AVDictionary **ddict = (AVDictionary **) field_dst; + int ret2; if (*sdict != *ddict) av_dict_free(ddict); *ddict = NULL; - av_dict_copy(ddict, *sdict, 0); - if (av_dict_count(*sdict) != av_dict_count(*ddict)) - ret = AVERROR(ENOMEM); + ret2 = av_dict_copy(ddict, *sdict, 0); + if (ret2 < 0) + ret = ret2; } else { int size = opt_size(o->type); if (size < 0) From patchwork Fri May 21 09:17:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27878 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp342951iof; Fri, 21 May 2021 02:23:36 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzC/6PQAeiWNTwLWNaB9pBh0CJs5NvG3IQy4uDJZNvWCQHsMo5OLggFTpzj50SbJ22i3TPx X-Received: by 2002:aa7:c84a:: with SMTP id g10mr9940815edt.326.1621589016015; Fri, 21 May 2021 02:23:36 -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 f12si5679114edx.197.2021.05.21.02.23.35; Fri, 21 May 2021 02:23:36 -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="RXfrKf/7"; 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 867B968991B; Fri, 21 May 2021 12:19:12 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075093.outbound.protection.outlook.com [40.92.75.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 88957689907 for ; Fri, 21 May 2021 12:19:10 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GeqkvmyF5XSXzPS9dmSZAiLWFiO7RrPE4YeQaIdG9nPJyuy4r+bF5zeBhdKdaIOtrR3uOt0bxXXKrVTLKXdNM8v1Xxyn0kSISaaIisvbJVuUKW1Oly8MYnvQvUalPnhhxIxMsxMBb+KWewo5zP2kRpqrwqYwrb1Ae1OB4pAK4SITqlVLxrblRM0/t6Gg86s5l7idB8kvtHVR7jZgxntOZ4nD9F7OjjITXk3Glpi1Ad8QiWpcmFsuQmeq04oWFkBAUmYFfVtjuLoOAR9s07/pwzteZL/ayOjgh4d5LVF3VaCi6pcP+NBM88F5MXIk/1FSerey4+tA0iP9k5F/6P30Jg== 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=nZYxxTPqpJr1vm4dUSMAovzugEECt0rtVW9Rxrd1bdY=; b=if+g7lEXTEli9uN9Ug6MjUI2nSBbJGrd4DBbqcs4AjQ2rMCXbA8I3GIWJG+t27I7CBv9wa3w+WbHbsivxjfyc78Ttb82WIR6/QEnSTMjPil9Sjw6JbGE32S4D5wnAAwKvu+UilW6za7MrRf7zRbPq2nJHdICmnHjNr7/hmEUud11lIB+oYzVA5Z5y9ZTnz47jpXQdDhHtrqCY3LkzL9W0DfAMs9GFdmKZkgD/SdfbBSWJsOjA9Bu2tewL3DfTTRk/rY9VJ9JCFL6gmsIR9ILQhDDmzwD3z6OOLPezDsHtWW3nL8jZELfkuS6wtGeyO1QR/m9TKf5P4jhe5wyylE2bw== 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=nZYxxTPqpJr1vm4dUSMAovzugEECt0rtVW9Rxrd1bdY=; b=RXfrKf/7sN2uen9iwTVClymu1isC3HlvLUtmu0KS+EiRbaHOF/cMxBwt9ddoDHxUvPIWmuR0H9Igpuufs3gEznKHiRE6ugH06sT/ojhJPzBTdE4aQ2qc6Ne1VWX9bfDmrGGWinEQDN0WbyQpi/mXV6I/FIqM7ixRl2bA5rVPzFhdoaUhnfnLS0hTjbroxFZ8+88584LkgzVBLZZOvKnSGIlehH7GDKdmOC7ft3XXQZfHsQKpf2qf0TijIxDxzQU1iyPuSfnCZ1Sw7d8kTprmG2Spi2lAUYQ2Xlge+57S1qyHYT46RdcwFU9KD0IKI8QAiUrmUmm7qXLV2IbywRRHZQ== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04HT022.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::312) 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:19:10 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:19:10 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:FBBC7F47AE9E47C892E213F1222B35232B5332F73692CFF3FD5542BA67B4F6DE; UpperCasedChecksum:66CAE54F40D4D82A1D4CE14659BF9F3833D2DCDC480E949C273C97E1A140E9EF; SizeAsReceived:7780; Count:50 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:19:10 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:38 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [mozbNpY4YbnA0NaQbE/SXBYXd233roH9] 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-34-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:40 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 50 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 09689f23-5792-4fa3-48f7-08d91c396cb3 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIohmq9k/yScywu9xPSfiUShP71Z1YwQDJUUhfUm4p7OHxzVkw13+O9t4URNqNXAqaztbX8wHa0Ru+z2Ep9v10dECzxNpsFrocR4OKgCt84yQJsv2lLssXz82blX07ycFHY1s2Jw/MR17vCZXdgTpMiA8Hqpb7EM2xnbJYfHK798vOAStxWZy4EemTxXXJ58Hv6tH1O9It/aCNls2Uqcc+bRh11dhZnXl4rKjlJy1gvhRtiYrMLOJOLUr7ayo3Jm8y7p7fMjI0Sww5BNFA3fO4E3KIXgoyGHAddXCoEkS2P9LsBLAa0/RqHzHsWl4uo5TfuQhatVbHT0nvonOzWUh03GjbiANJIw6N3kWb94Gfo94ryChJ9jsBCsXDN5TO2Y3mWwMeMep6sa3fyNqaJkxgPNJDXjAE3h7W4NvBH1sGPIKWVd2VCBjYwYYmPIfg/3mVzKcau4adS/VCrOeX7Nmv2ZR31fDeMHb0BnfS/61nL3OsDqeFLdaoYk+1g+oqdYWz5++1liDoH91kRcH1Cz58yS15xPcivK3j36URXzZi5g+4Da59bA1HugufQBYmrzzuUpua4JWiP6no9pYNTQ1fTtVcu8XxDELwWFMiu1VnSAS9JP5aTrkiTHKg8gnilOPzKyu6qiw7s6anWxmgQ1FR3fXaNeJoJLIYpHcay6+Fhs/aGN9jww6uJh4HPQfIAVP+8kneQHXVbPQ== X-MS-TrafficTypeDiagnostic: DB3EUR04HT022: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: JDZdBdw5k1+FmNi23LzjejktcA6fJ4vQZIav6h1F2dG6aiew53IXF91PlCkJhMkA8An/kMPpI57VcGlc+WjaG7p0rzSaG9550EVzRTx2sNxXQAhtbOWZLSxumKjUaIZgAAUlSmsAnyr+VGUiEPcIjoKwm9ZiA3/btAuVkBKUgbdJnUPyH/EAICzSEp5AKZTSc72jTUOFN6xX581uJlnDusv+3thNQK81rnfK6CjiaOm/JlorAkPnhVBTn/onNe9zzxGuUKN3l5Ki4NxcoFmh9QANQvmBqE+pzQCx9DkieLCE0KuVJyEhXn6+/3upIo6QoBW+P1Sj5G5WPXpt92ByiYTTjtajeLr6VhVLXtm5p6xGQkZyvhfQpXHmTdhMAaK3T1ss9Od8pUsZnBO+QaHdrQ== X-MS-Exchange-AntiSpam-MessageData: zfwsaw2jgISBe8rnqWG5psMQY05K9TomgbEl103NVuubxZiFQva78E/Nfw243L1hMTiwqNKaby/Yhz1eU4XIPft5aGPu80QoqzZXZ1IOcUWaFJ1pLdJwY8o8+sVgEZp9vwx+rvmJGjJDBjcu9wWCTA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 09689f23-5792-4fa3-48f7-08d91c396cb3 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:41.4117 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT022 Subject: [FFmpeg-devel] [PATCH 35/39] avcodec/avcodec: Avoid redundant copies of options in avcodec_open2 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: +Hr8LnheEdKV It is no longer necessary now that ff_frame_thread_encoder_init() no longer receives an options dictionary. Signed-off-by: Andreas Rheinhardt --- libavcodec/avcodec.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index 6f61ae246d..a65109e799 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -135,7 +135,6 @@ static int64_t get_bit_rate(AVCodecContext *ctx) int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options) { int ret = 0; - AVDictionary *tmp = NULL; AVCodecInternal *avci; if (avcodec_is_open(avctx)) @@ -168,9 +167,6 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code if (avctx->extradata_size < 0 || avctx->extradata_size >= FF_MAX_EXTRADATA_SIZE) return AVERROR(EINVAL); - if (options) - av_dict_copy(&tmp, *options, 0); - lock_avcodec(codec); avci = av_mallocz(sizeof(*avci)); @@ -207,12 +203,12 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code av_opt_set_defaults(avctx->priv_data); } } - if (codec->priv_class && (ret = av_opt_set_dict(avctx->priv_data, &tmp)) < 0) + if (codec->priv_class && (ret = av_opt_set_dict(avctx->priv_data, options)) < 0) goto free_and_end; } else { avctx->priv_data = NULL; } - if ((ret = av_opt_set_dict(avctx, &tmp)) < 0) + if ((ret = av_opt_set_dict(avctx, options)) < 0) goto free_and_end; if (avctx->codec_whitelist && av_match_list(codec->name, avctx->codec_whitelist, ',') <= 0) { @@ -372,15 +368,11 @@ int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code end: unlock_avcodec(codec); - if (options) { - av_dict_free(options); - *options = tmp; - } return ret; free_and_end: avcodec_close(avctx); - av_dict_free(&tmp); + av_dict_free(options); goto end; } From patchwork Fri May 21 09:17:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27883 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp343146iof; Fri, 21 May 2021 02:23:57 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzR7go9AOYds8GtE/py+NW4I6mhM9buU4cLJ7cLZlIK6H0fkONdNuRROApiNquAwSF5CRmU X-Received: by 2002:a17:906:4341:: with SMTP id z1mr9419728ejm.422.1621589036976; Fri, 21 May 2021 02:23:56 -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 y16si4707349edr.498.2021.05.21.02.23.56; Fri, 21 May 2021 02:23:56 -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="qS/RGug2"; 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 B024668A0BF; Fri, 21 May 2021 12:19:14 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075018.outbound.protection.outlook.com [40.92.75.18]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CC757689E5B for ; Fri, 21 May 2021 12:19:11 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WUGaXMg7LEMZFX5aarS4jLI0WP9Dg3JjLrDXkDas5t6LBX5OJvFtaATFKX+IPVg7mLp9M97Kkk0PzryIGY10CG+exq7cWhZ21q+s0jQ/4np56c7crlzfzbGpOnbbNigsMnnx91xNO+3a3OfO77mQ0UoqELYEn7M1eSCCS6//x0eWwhCurAedtLXRWH80d+jh/XiE64gefc38g+ToXElC37yDKhJ08zEfJfSTduI3sOx8OCsBeBkcOZPXJ6iYCybpcpggXY9ANqAbQV262z437jqBkVg/51dEfBN3vB5+NzfR8C7NclpC4q+B6iiGfKnDWKU5kPdCI2HNATRgbadgxw== 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=09ofr0YnFHCP+ggeoF/sDzbRuoAmQRxggdh2eBo8VRg=; b=ccaCBCjaKdquZuC3fCf7bkOq6tOGcGvJWvvSCFuUkOT9CcckxGXwgpMBNHBsZ344wYlEOSJyY7uHwOMw42RRMyiMOoDhk0+FDqo8Y7Re1lmovv5jzQze3+7EXtWxS88ibyxxhE2+6OTX12cUrF/ZFoutpcLxH2tGj76U/vGoNeq0U+v7mRGP29iv/WXuyCpy17z42slFvAAdtXsQv7ILGJf2XzMyjECLmpfm9RJ5wlIpt5PjfmM0p8c49yqYiyRbX3nP5mZ1NQOy5fETlCL5RDdQz+7LL9OIM9pDjTcIHB1RyOYrI2V+u7XbRin5dLFN/oPwRYSXvO55pZTNgcA34w== 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=09ofr0YnFHCP+ggeoF/sDzbRuoAmQRxggdh2eBo8VRg=; b=qS/RGug2EJUZo3xXYuHnZFCSDr1y9rRzhz5xjQ5kBkjSNwwgvbHZmN5KCUBxRDZw79SZB22fY4aWp1QnAFyhpQsxJkwmYNEge+8niey/CKz7f8nig8nsrqfL5sZJU6AfgICebCoUJFYBGBRHIDSOhj1NN3Jk3SK8Zj7fycG2yBRmPvBSTClItpd+X5m1XrClK6wu+cF/4b1Vpyl6CFniHILN6YDsXFA563aIPzOuVj1sNstXMfD4vnLDx3t9Tqg+MJKsvg841iFhqbPxTC3LjSJfeDGpI2qvcyuXeJ5f6JXumeIDt22GH4Cpjxq/w2DoDvsK2lt2dKksJqRZ2PKMkw== Received: from DB3EUR04FT030.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::43) by DB3EUR04HT088.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::96) 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:19:10 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::41) by DB3EUR04FT030.mail.protection.outlook.com (2a01:111:e400:7e0c::99) 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:19:10 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:821E8AF98F03C7348E128FAFDCE9443AE5424E7A8AD5CD06D3F612168A8383D3; UpperCasedChecksum:0289D4DC61C14BB46AFEEFC9D090EFE69DDFDADB76E2D990A6AD2072D2EEBB50; SizeAsReceived:7766; Count:50 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:19:10 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:39 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [lV2ciVVvvDF+l3IBN56V33CXCr6GIFCI] 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-35-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:42 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 50 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 7a2c24da-de43-465d-0e1e-08d91c396de0 X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfausjbMYUQGfIlkhKO4W5S/SG9yOmt3Ijl2y2COfX+YbqLMeVe3w79gVisUetvH8VZMUDMrlapWrzGa1jr9IxROrdqakAWiGlHNHC18sOGBnTdPg+S6BQhncsPIeDnUqImJ9zesslH2dRlp0L23R0cxhGBj1v8DP/cS9mKhpRf4add9dKSLjcOdHo/7JuLbLtyLyo5hdt2V4AqejOjwX7b2ZPKLEsq16VWoOydwlgK9kewV2GE/y/CG9t8/CBrFK5vJt4rMy3UuWlac8A6M96bDVODmXtBml0suTKqxunVwfcKBbBcQlygccp/02Rgxtc13UOvyu+hx/+pcQrLLkkJrB+GjboAuBZPpwoVU3wKghlmWbgsy58B0x8MFt2UbiGt6rFKnvchMljdrwd//D1pn+yaqFuuBMzTdJuCy/Ys5W69sEDbAiOs6IyZ5D0YzuSBEf20Qhk26d8PtdtmPOKfqgzYSy4zga/65RgfsZUbQfd1UEs1MqKKpgaWHtdIVqJkJylHMwhQzGHFvcfKdu/IJLT6fhHEX2QyzshHCIDOL2b/CRrH7CBI3AQmIXMisF7QCY1rHebdmHzCrSdumndpDR3N7izR1nPiZX+Vx6ts6i5Y5i0I9iQ6wbHRwq3wGbJtttfyBzO1BuOheaBxZS1+/RRoJoFVjwH7raL+l9a0RdPCXXnBa/BFYuOXRxXHAmBkXSetx7Gid5Qs= X-MS-TrafficTypeDiagnostic: DB3EUR04HT088: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9u2UjcaHeXunvur5FuY4hyvkwOa/JbQjVRx6IJxrEpn97N4DdOt3WsMswmQP7K3crorncQ312Y4nd6Y+XU7YPxGqHT6TG2igsSgmQ1nqTKMdpBekeiTKH7EK/rCyvxo+mnRpaj5Q3fP1zZe3iwo2/o0p23tCDZj48ZAHG1cAuGOjxACD+LVeDTJbw27IICu1QSHx5xeCuARrGW5VziNWFmqoLxccijPGv4yNb9DdGGLWHFNEmhLoyAm0Dn4l/z1azNtZPyN9g4X7hTRL52guMNA3yctGo8wAsByg3YdCtnxLGFe2tBF61B4gYMJxmBgegejYi+zfo3CLvb4TbsYv4k0b6Eq7y4LoicOx0RSLWuQSGMlzCIdXupCEYPR7GQid/aq9RTHLQhz5pNQaY85fug== X-MS-Exchange-AntiSpam-MessageData: GyRFfi4UTkzJGRS9mBBs2qa97L9uyHvn6/HkXf/5u8TNdBYmXOgjofdBDPyhgHLnyJe/QKyD0GKqW7ohNjp1ktJya5qABcLbdAAJZIH2iQuHOfP2CDP91ZMem3UyfEL3koeu/P0eky/RMqbPKw6bOw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a2c24da-de43-465d-0e1e-08d91c396de0 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:43.4328 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT030.eop-eur04.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: DB3EUR04HT088 Subject: [FFmpeg-devel] [PATCH 36/39] doc/examples/demuxing_decoding: Remove unused options 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: 5+uumUNXlF69 Signed-off-by: Andreas Rheinhardt --- doc/examples/demuxing_decoding.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/examples/demuxing_decoding.c b/doc/examples/demuxing_decoding.c index 55fdb2555c..ef1fd2bd53 100644 --- a/doc/examples/demuxing_decoding.c +++ b/doc/examples/demuxing_decoding.c @@ -150,7 +150,6 @@ static int open_codec_context(int *stream_idx, int ret, stream_index; AVStream *st; const AVCodec *dec = NULL; - AVDictionary *opts = NULL; ret = av_find_best_stream(fmt_ctx, type, -1, -1, NULL, 0); if (ret < 0) { @@ -185,7 +184,7 @@ static int open_codec_context(int *stream_idx, } /* Init the decoders */ - if ((ret = avcodec_open2(*dec_ctx, dec, &opts)) < 0) { + if ((ret = avcodec_open2(*dec_ctx, dec, NULL)) < 0) { fprintf(stderr, "Failed to open %s codec\n", av_get_media_type_string(type)); return ret; From patchwork Fri May 21 09:17:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27877 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp343322iof; Fri, 21 May 2021 02:24:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwVMfJSIdWhpRuBU5QuG7Yy2P5VBQx0HCDV+ykWgZ15tN60HZjB3/krOAOTlym8MXhrNAah X-Received: by 2002:a05:6402:17d9:: with SMTP id s25mr10047154edy.337.1621589055469; Fri, 21 May 2021 02:24:15 -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 w7si4596484edq.358.2021.05.21.02.24.15; Fri, 21 May 2021 02:24:15 -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=NJffpnPM; 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 EF21168A0D5; Fri, 21 May 2021 12:19:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074012.outbound.protection.outlook.com [40.92.74.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D3C44689F38 for ; Fri, 21 May 2021 12:19:12 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YB29QJD0vdnX4UxgImNZVc2RHuxQBaUzbntP2Hp5A34hCV/gXJkwUCbZNTm+ZXodbodWZBSfZA0Y8RFx4+exejSIPCOi1l8v/tfgw9yXPJzg2RajfUpD2L/xbKm0HgxheR2er2Y02/ATqR5eMC55oP9D/XiY38GjYr2YFm8Jx8tbdiI7nwvnbpj5bE4EdN49dP/tAW1GW9LiqkbbEGUh6RiaBMq2xe1Ktu9FtqUIHEx8T7zwiFdvxHHEvAAUdS8Gv2IyRLidOZ51H1HKmdeqBkGAYgDTrN/cxPwH8yaz7WZ7ObiWhb3aO1vUqa3MU35B3StBh+VztEWZnIcwy4/OmQ== 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=Z32tRtgCz745A1bvJayxhXCGBtd5NhCsI4GbonX3e7Y=; b=VaW4gJlGKKBTN9Up5d+7MpjDdoG/VButncHToDb+DdYobB8YCiQAbQE2+nBmX53jsLlmqLO8bSjfzLkVWZC0uGfH0Ke4zMEvB4692mNrtwOD3+r4TbJnZ0wgqUd6zahXN0/E367ZmPp4ezOr68MQ7EtiYG8OFt/KYgWb7G2jyv1zH5hYLh4R0dm8hzEWF28vtrudh8zCxDQ9IOWFcWyBcH03ZeGtG76GG3uShQ+6XAnxIomK6ulM/a7CN5sNblgBmUMuYpClYYnWSJKMSC/6w/3ZERN/6oqF392spPSuWEQ/xMUSw0+rAf/W3vr2DeiFEVuBypcEnmVOPKz7ywvJBw== 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=Z32tRtgCz745A1bvJayxhXCGBtd5NhCsI4GbonX3e7Y=; b=NJffpnPMgA/oWQsrFp7WGorkM20zXgFsTA9ueBvxgNTzxs7twQ6U0WEPZ1Qlr+Qn6vGXXMlDEui1zfHMlCRRAvOFq3Uk2KxBtJeQdYeQVox6hkt5OEbw/KnchJmJJTnyeNitTYugfpzZAbaztYJn5xLSWphsQL5lvHfpRWegitT5gNKyDWqGL8ovRU/qOYm9GD/mppvTdUYakhTlBGOpLhQnRlHeimKE3ucuE54J51NYq9wDYGBeJ3nCuY7qP2wlP5nJWu1LQrIn+bgTuikP8djZ/uTs+X53iIuQ1DJyt5jA5Cr7zHVwC5I5N9ZbcWm98yB92zjvZUV9D91up5/anw== Received: from DB3EUR04FT053.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::52) by DB3EUR04HT051.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::324) 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:19:11 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::50) by DB3EUR04FT053.mail.protection.outlook.com (2a01:111:e400:7e0c::226) 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:19:11 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:8FC5854D4A383DA8B7129ED6BC76002E166EDE1191D730B01981251A1A7BFCF5; UpperCasedChecksum:1045AFD3563D7FCA2C49DE30EA3B0344495B02A23CB80D6EB922B736C9241865; SizeAsReceived:7763; Count:50 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:19:10 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:40 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [ppeE23ellkZF8oqDmB8TthR7AClyuTjp] 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-36-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:44 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 50 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 6532aff1-2d90-46cb-48fd-08d91c396e88 X-MS-Exchange-SLBlob-MailProps: q+fD6XS3/UIohmq9k/yScywu9xPSfiUSAA3//7df3H3Xx+UCM99pYUXUcCz7C8hw/RIhlo5QkQIMBROWHfJLmVrcX/664U9L+FEHf62GdEW/iS0vPBtvsJxd5FblE9l3vq8OQFKvWOIVHpHEPnDUHONBO7crak5Qz1z1l7dr8iErbXiMEk5IWBUFb0nDqRofmj5drZr5NNlLi8atHQ55iQgw5Pn++T/No77B68fPNk/uejgWGfj3loXDH+q4dRGC+tOfFgGwL4A8dR17x7yAITC37KFkdARR+oBHM3kBvMlnU6eG39qzjmnuTMyvHCsJG4fi0Bn6x6cYIjysjfv+AgMi9NZRigGvS1LNpxeOunhQzwRTL2YgvWfFpz7VvbRDD5CjUzCDt4fJ+LU0AIEgu+nuprb00eNLNguDZ80XpKYIm9rx6iaMxA9OWQemVICl3AcCgoYHqIH0Nv01NbmY2qbBnfBxbSq/rEe8vVHW2Qbr6cadKSI2KM9cfBBhEZRCvM6cfq+m6OqkPaomlkl0sbuarlnJA2FmplY9mBagNg6xbzRQWk4r8pprl9zYFJ6SAWjAoW0dMdJ9e73UENT3CH8yB4W65k6sgwiaJM7zCFJYJV1VpG0x8EUdTbp4sVeVFCmwjeb8FEPbwiAehskkC9RMGMAoPcI92qVUx+MI80aOPLRQUh2uwZNFuDT0X9qjxl68z/WEMO75zHEZn0iQmw== X-MS-TrafficTypeDiagnostic: DB3EUR04HT051: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rHw5iWFM84OmeBYd/AUMlTDCYTTyyvgMVUiowUtP+Wt7cnLzMc8ACj0TPpVwmjYEqootZQuMXGNk9lluR/M5S0Nzr5zV/wmwQTTrwMe2gxRn83xkSLhBMcxRNT73ApOhIFAJxVD1WRrU4C6+UG83jYnqLRnCKdMo+1FzqBS6DjTnGGD+eYKkeLh6x3EGaMfEu0qMXuerZBwKKRVifZWCfecYStUJct90gvYoU8WrtDO912Ueby5CRqNp5DE5bkR6DNDL73v0HTWr+FzuXEX/cNSdxKpjaaRjwJwefUvJVY09uFwbMFrQXD8V0NPB4472GDA4rOJb0ZH9MFbd2fyclzNS40/G6wtVKal7TU23m+3NnOKOn+YJCpnPycP+29POW864SQw5FDYWB4vGdNMW0g== X-MS-Exchange-AntiSpam-MessageData: owT+RO5KC0Gby57urZP0rIjtc98vn/JYvYlITvb6raQOubIPpmn9EnkWnoVCSqmb+49Ggs2ahYgQiD6NXRiodOLigQHq0q/cJR1qK2jA+iPYcj1Yh++ovycOQQILsxbQwdM38aOOeczYL/2/aY8eqw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6532aff1-2d90-46cb-48fd-08d91c396e88 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:44.5103 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT053.eop-eur04.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: DB3EUR04HT051 Subject: [FFmpeg-devel] [PATCH 37/39] doc/examples/extract_mvs: Explicitly free options 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: sIhwNhK+7VsM The user should not rely on all options always being recognized (in particular not on error). Signed-off-by: Andreas Rheinhardt --- doc/examples/extract_mvs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/examples/extract_mvs.c b/doc/examples/extract_mvs.c index 42e1844150..f5d2fd9179 100644 --- a/doc/examples/extract_mvs.c +++ b/doc/examples/extract_mvs.c @@ -104,7 +104,9 @@ static int open_codec_context(AVFormatContext *fmt_ctx, enum AVMediaType type) /* Init the video decoder */ av_dict_set(&opts, "flags2", "+export_mvs", 0); - if ((ret = avcodec_open2(dec_ctx, dec, &opts)) < 0) { + ret = avcodec_open2(dec_ctx, dec, &opts); + av_dict_free(&opts); + if (ret < 0) { fprintf(stderr, "Failed to open %s codec\n", av_get_media_type_string(type)); return ret; From patchwork Fri May 21 09:17:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27879 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp343199iof; Fri, 21 May 2021 02:24:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxb8Omi8f84nauDSfnwtAWQOEyeU/fLjxSvFLExEteGpRUfHhysErPIoYa8Frc0GnG7LibT X-Received: by 2002:a17:907:6289:: with SMTP id nd9mr9166067ejc.384.1621589045519; Fri, 21 May 2021 02:24:05 -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 d15si2182369edu.375.2021.05.21.02.24.05; Fri, 21 May 2021 02:24:05 -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=T0pdfqh1; 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 DAAC868995F; Fri, 21 May 2021 12:19:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-oln040092074060.outbound.protection.outlook.com [40.92.74.60]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D3A0A689969 for ; Fri, 21 May 2021 12:19:12 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nG9dxTRrAWollb7cDKKFksn0Zt4P34BBi+8DmHEgVbFC5uimszftFDVPJCx1Silj7Pdv4//Eu8OXVn3+esrKi3XQW8Gp4fLWNnLl+A+KuF9N2ySdHCuwxuNPOVHJgAmASWB/skYkLgA6tKSMlheAogbtCHZfdx3r/OM7VS0rBFcoLFqot4cwK3OZZSQudHQFDnuzUh2RipLqnGkbLAWHvUm2CAfRXolVajIxIY7pa1bvzf7vNrvv7QOI/xPTiBu8EUu1tm1egROGV+C4YDD3APKCDFlsznJmMaOUSCSLKEU5aQ+Nv5VpNyCsN0RTsLw1zhlDQ+96gV77oTiw+I5m/A== 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=mGaSv7HR6WXKY3OxzQjO8hm1GcGlAUhARUPtCOP+XTQ=; b=kWJUaRVWW4CJbhZsI/65IOMMBWPm+YmAYR88N30OND9rxU6YQaZ3ZSWcblhCSOTUHu1QawSDrEa+TE77RSQpP8sfF2KPldRA/8367QIvMxq2dNlBXjnR4hbdiIDL42TuacV6LZFRiapYcM4YpVilL3ZVUWZeb5gmwViOOyfIkoY1hypyY538DUrfb6+UMKGR/WCnRSDM0UOmHbXD8UvP3rR3kjeyYA7+1REu8GdbnuVfZ3XKj6SAg0cLcbGAk+9ErOmiXHTKmc5JqW/CMM2ICziR9IQeaU1gGcQTvSEdUAnEteO7JinsVN+vJSCMxllsTC5sU5o4lcptkOQyMBsnCQ== 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=mGaSv7HR6WXKY3OxzQjO8hm1GcGlAUhARUPtCOP+XTQ=; b=T0pdfqh10OStdlOGsK+MH/yLOsZeiV1W6lnSmzS0AQo2a1Cydtso1uvynnQ3VvepezuHcPwZMxNN3yvicxswa6HsTZSTZZuHOCbDmV0NWPY2LfaKP9YcydM2x4ogbpS0g/ZT0bQEIggCcj64JKbMC4NKsiCF7B1/7xHv6wtFUJMMfJnVKpPYPnrT0VN7P3Z86FHG0wEt8oabfwpG7AIR1/OI+CGXIK2cZDlc7+faCzgoHlbCosSxzOjlB3fhFyg+U7V2mGj9vkb8mkIeKR0U+erG59o2cQRKdI7tiAX1OwMKa9H7e2JHPpRlvGWz2hYc1pgP82NqtDLLgQ0ZH/WWoA== Received: from DB3EUR04FT053.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::48) by DB3EUR04HT005.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::299) 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:19:11 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::50) by DB3EUR04FT053.mail.protection.outlook.com (2a01:111:e400:7e0c::226) 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:19:11 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:F02899304C6ED98E7B7FF761BC7313D7A37DC2E745224A1BE8487EBA12421F30; UpperCasedChecksum:93BDE24AD3239DAF730AC07FE06FEBCB3AE7E906B6800AF156A8DCCBD9776377; SizeAsReceived:7782; Count:50 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:19:11 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:41 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [mc67fKcUIz5z+V+TxsWoN8cCMUWqMJeb] 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-37-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:44 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 50 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 148c6312-8d46-4233-7330-08d91c396f1d X-MS-Exchange-SLBlob-MailProps: gjx25WM8ZNU/M7M4vrgvBd+IenKLBfauq7Kkded56W0HQq4wNVE20t4oyPejttIW7s53nTXwAhYUGPlFZDoiSgvAqBts1cKeBANN0TfKXLgiakgFcsDUh0QqMLizXVMN/2IXfiE+zkcAAOA98XzzSjNQlEVn7sl/EKyXxX7uvLzCbJpZ1lT0wo6OQ+tYR6M4uhVwbzC1rXv88QF55PnB5sXeYT7hR800FZOXsJJ8Hjkgu2oKUE8S3djrCobEWk1ydl/T6L3udLHGroJbTqcDm0F3O05Dz9fQUiMkEYujYjSmxBzNYEVCk72Ry7LhNDjN8+R9AnIdHk764S/oEutC/kJGO39a+qyEvZOeM9ovCIwmzXGvSqMK+niuXTfs4RZsOAG4jAmG2JP0htDNs/390UQQ4AsjnHn5VNJwodKjIOjHONNcW98+WSgBRUJh0XGGYaxAatNtCdgL9jTvntVSWn4YWrPOyu3sAgUyUXLBIaazEGks4VeMECMO2mtqt2p1S5+c5UTcWU9gjN2w0L51kQKD99ebpXvN8xG2S9Ijp9PH6TtYmvbcGvD9vZrjFiGlWQ2bMXeuAh93woC7Pg9otBEOEqxS6ytsXwh5UYRMVBNjlh+tnz58S2bydPQViPBYGeF5VYwUK2zHZ7IuVeayGmTVf0R/LC1OtcnCgY+cEgesS7avOkxnjeWje+qrZrQupXT7CtuFaFT4x+x091SjZH3Vt3P3kbaVdxc5mttdtxw= X-MS-TrafficTypeDiagnostic: DB3EUR04HT005: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: J4JxO2Bl6vtMrPJnuOKu685W8Bkycl9P1Thy6sfYKIgIXNKWE9mQpK/PowNZjcNkjpMWhDVerjA29ojrkUVtknWt8/5N8GwFJipkKFh5T55Loy6qux4Fo8CJ96EsM2VS96FKgaqx+EbjeDN/7lg809yNiuseR8IJQrRDaSwawsAigwhJ77p2lvu1IjxDT53FAOAdT7xWDbazecMlKs8Rc3lY5iojFKrmgMDeCt+5+DLo1D8tg8jo99mfpWMUyZMLDCU2X2hU24EWIeu6h2P3OAyM7d/MF9w2O9HFuNxxS64cGB1TCCUo31sIH/SNsx4mYXZnYq3MRJdrjXRb7km3jAsjxf0rk1wHobMlXDxGrZdHgA0hKIQE77msBlcVpGx6 X-MS-Exchange-AntiSpam-MessageData: 2fZOJ1GQJTifWOTRjNfXr5ZevSGpS6iT7s+5hqlyA3vQhK/x/WVP9XDDjhMWwiUiTsWND7OVoXWMYRnpZXdWMTjGE7YNNPPjuysn4SFY9cWx4DIyDulIKLOYb5+afd8Yakg1SlqzI8IAgpsbq6xSpw== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 148c6312-8d46-4233-7330-08d91c396f1d X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:45.5169 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT053.eop-eur04.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: DB3EUR04HT005 Subject: [FFmpeg-devel] [PATCH 38/39] fftools/ffprobe: Remove redundant check before avcodec_free_context() 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: NMI9ivJZMACY Besides being unnecessary it is also safer: If the error for an unrecognized option were triggered (which seems to be impossible right now), it might be that the stream whose codecpar is accessed is NULL. Signed-off-by: Andreas Rheinhardt --- fftools/ffprobe.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c index 88e82a4195..2d452c212e 100644 --- a/fftools/ffprobe.c +++ b/fftools/ffprobe.c @@ -3078,8 +3078,7 @@ static void close_input_file(InputFile *ifile) /* close decoder for each stream */ for (i = 0; i < ifile->nb_streams; i++) - if (ifile->streams[i].st->codecpar->codec_id != AV_CODEC_ID_NONE) - avcodec_free_context(&ifile->streams[i].dec_ctx); + avcodec_free_context(&ifile->streams[i].dec_ctx); av_freep(&ifile->streams); ifile->nb_streams = 0; From patchwork Fri May 21 09:17:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 27868 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:b214:0:0:0:0:0 with SMTP id b20csp343395iof; Fri, 21 May 2021 02:24:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyqdDqlwxpZ5V5e6Thw7oRLY7D+0ql3NDbcgk94w3PqW8abVlMpfJjygwhsApezg2C/m4wV X-Received: by 2002:a17:906:2dcd:: with SMTP id h13mr9610299eji.41.1621589065934; Fri, 21 May 2021 02:24:25 -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 c7si4654678eds.391.2021.05.21.02.24.25; Fri, 21 May 2021 02:24:25 -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=HByAXQxH; 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 0928868A0DE; Fri, 21 May 2021 12:19:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-oln040092075081.outbound.protection.outlook.com [40.92.75.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 097CF689F38 for ; Fri, 21 May 2021 12:19:12 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IyX/iuz4ai2np8655a2jg8QjxmCOoEFJoIgpuXNs9J0g1L4FW46KIGts89tJKvDnGiy7AR8e7PGU245XL3h7LYf4zcWfOJZC0zLX+jASmhGwkR66iCZ/ErnIBGaqE/Q+dllwCuQ/IgHl3Z0QpWB+oH8h0n6gCGrxjl8u4UAOc492NADSojrgoJE4Kg12ULzIYDP9n4q1tZPlIuPDJv09/bT5jc8UUZGB/En9r0kZJydRR2H6/t7RmedrHxVnTyUOm4iR2i+96ls5cp9vcGoDS2+mpc0qYAKTj0a4fC82xbfuGH9QDV7A0TWTwVgoIprSceS/b2kw4xH9GSeB3TQhFA== 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=NIE2kADuJi7NAe6qTo15HAukhtZSfzHuPyiQmz3uN0Y=; b=c+BlbiRIcZOSV9+uXQJi2XPvLCdcKsfdy/lyh+hacKdLrpA5DZBb7KA0RWoUsilnlYuQj0vmck4Uv9CsaWZelQGsHEd+naSU1NGHZQ/QyNxJWZj1P70Cyl/p72okMC2l1dHzEvTvEkCVxIAbBiUoHwprKay9Wcv6M4STJlgtfT81L85+3IlBmmcfZTgPEcqRPBhrhVJQbMEcn6OZcogpQwCkMQqeggPyT/PwoKrlC4HkF8xVlQJWWX3ikUyw0HWEPpVf0rE2kBy2QUzW+8x8VDH4pI3620I+s/6gTmqH4NT+QRmql7zMkSYX4IbtekPZxCm/4iR4xJNCsVmF+kVF5Q== 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=NIE2kADuJi7NAe6qTo15HAukhtZSfzHuPyiQmz3uN0Y=; b=HByAXQxHN/f6tlynpFJLuhW5u1YSgx1InjGTcLnXaUqcYmAg7IfHMBkNtEysPd8WZnz8Q+CJXFl0WhdXBX/o1RyWgBwja/6g+WJp1U5IvcGJ/1MahKXJWnreunonI8b+r3U+U2efgJql1Vn/1fUm05y64jCx6a9u2iI+8epmFrJ5uZGmwXKUzH2RmAyDnWD3sdSe9t8uBnCJ0Vtzd9EjXcmBsKUG31Ow/MpZXIevBVoPz9VwFX3j3yemL0u5LoJFby/kN7eKxFJiAAmwRKOar7jXDsZmj15nBoQwrjYfsGa65UL2Ua8R0+a6efPm3as5puVLGZrs5IssNh2GVHtiTA== Received: from DB3EUR04FT053.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::46) by DB3EUR04HT096.eop-eur04.prod.protection.outlook.com (2a01:111:e400:7e0c::152) 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:19:11 +0000 Received: from HE1PR0301MB2154.eurprd03.prod.outlook.com (2a01:111:e400:7e0c::50) by DB3EUR04FT053.mail.protection.outlook.com (2a01:111:e400:7e0c::226) 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:19:11 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:AF6D78FF52F0D9930FA1C5622BAB0EB6AFFA84849ED6CF8870B1E222BB1F3395; UpperCasedChecksum:B87D474FA10EA506B4CE8817023FBB45AEAF254891635F9B754BA939426D5BE8; SizeAsReceived:7779; Count:50 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:19:11 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 21 May 2021 11:17:42 +0200 Message-ID: X-Mailer: git-send-email 2.27.0 In-Reply-To: References: X-TMN: [CiUH2P75iZScFjFWf4TKdukhgk6t/ptb] 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-38-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:45 +0000 X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 50 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: 58db38ee-559c-4c57-87b1-08d91c396fb3 X-MS-Exchange-SLBlob-MailProps: Eluf6BVNkXkEjcXcRWGJSvGZmBz4cpByix8NdDwrO3CTeaLX+fGWrj6ehG++G9RwJve+oiIWzW81axuYlgLqzf4tqmH4fKsDuW3LGDMHYomfFywslrH5MuxraLcg8rvZx/JTPaKOQsFwRl2sVkrwucMS2pFav4cqfVhyJ54XBJQQGfdoqaJt88jxpeFSQ5Kx/k5h9cPcOQmGK8OMpK3oOSzPEvkRKkehg/FJ1b1vCHmGI6iNUxi8+6QsvzR78GGglrKD78h9cW45kuwzwq4/T8O/UPqER2VYnDwuD/iD1wbLCUJEotc0K9TANRrAyxBo64jhw549Y67MLldu+qECsNAWWBt+750Qq59CDW95nPUBmXIHaD4fMPNd0nP+9i3HoJt8JMk3F4cJCTWS1fIiUJ8wgoO6n0vj2qgZQtUMdVIVpptNHHsJJiMX/lO3i1lt2VZT0Gb5sbb+RAcx7PkxwxddMGTUMx90zQ7TqpOkckYM6OCYcDCcHgtvyo3pG2tsp4wkInAuTdapYyG1Dz7vZpNA1r+6uyeCQH2odCwgDnaC7Fft7dlNi8FQPc+GIlzoXpIwrVGAzh+pq72crcwFQ1H8hmeaHCDx8PIFJIHPkcn/s5uBKHNkj3ZKZKj18kWX8nlSnd86v9AesS9SubYtWw7K0+dgti8L X-MS-TrafficTypeDiagnostic: DB3EUR04HT096: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6qgwRwUzMRdF3R3CZ04a992eUdmAjCEXlMmB4aJQoUkf/Ngxbf7Mld0QohLp2xY/TEr0Sx3nqhycwtrTqoeQImuQdN33QqXjI6HEqbNjUJ3NuGXYGhYZ3qxS5espFs3tAL70F7uvs7R0r/NgEl4iVG4c7dMm+8hzNI0MtZ17ePyroTmu360d0slaWHdIbCtN9QNAEiJ3+tWaxfN2CAcRLPFtxWmeoQHju1LsDlhf+lfoRMPgBT/2fOCAOqZFBEG5PXi5CkpMe41obM7rnZevDutz0+24WcNgzdJYAQcTf+tDynh1DvidT5/pC9SqXH4fiKLqv+Kh1p5LfGOvluFYajU5eaOkFbLFwMSH9un3sZksyPqA1eOhfw/sUQ6AJ2EF4d2pswp0jdvBtdDxggdvsA== X-MS-Exchange-AntiSpam-MessageData: Ah82lwhOjBDMzgoeHHL3fpGxZTpPuRpXLB1eWC0O7oat0SvR87i2lqRhFqOvK4Ka4ixsyhE7yRI0S8xvpqITWkvX7REwui6aSEhd0LzZHUSdcsJMKWfxTVyeiiaEllfv7mEA1B4QpSa0R2D7Vvi6aA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 58db38ee-559c-4c57-87b1-08d91c396fb3 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 May 2021 09:18:46.4785 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: DB3EUR04FT053.eop-eur04.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: DB3EUR04HT096 Subject: [FFmpeg-devel] [PATCH 39/39] avcodec/avcodec: Don't free options on failure in avcodec_open2() 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: 1dhw//W6/pEV Instead return the dictionary in the state it is at the time the error occurred. This is more in line with the description of this parameter and allows to notify the user of unrecognized options if an error happens lateron (which might very well be due to e.g. misspelled options). Signed-off-by: Andreas Rheinhardt --- libavcodec/avcodec.c | 1 - 1 file changed, 1 deletion(-) diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index a65109e799..d369b30bbc 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -372,7 +372,6 @@ end: return ret; free_and_end: avcodec_close(avctx); - av_dict_free(options); goto end; }