From patchwork Sun Jan 16 23:03:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33626 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp2273474iog; Sun, 16 Jan 2022 15:06:22 -0800 (PST) X-Google-Smtp-Source: ABdhPJy5wlQD2NwodQ7iB8iCqEodmGUIOjiSHAm8Lw/XC36QQsUfyLCyPK3S61LdWpvqcCAaXuvv X-Received: by 2002:aa7:cf14:: with SMTP id a20mr11635260edy.324.1642374382538; Sun, 16 Jan 2022 15:06:22 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id di1si6472329ejc.252.2022.01.16.15.06.22; Sun, 16 Jan 2022 15:06:22 -0800 (PST) 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=bzk3J+3x; 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 125C468AF26; Mon, 17 Jan 2022 01:05:13 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073024.outbound.protection.outlook.com [40.92.73.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C541E68AF40 for ; Mon, 17 Jan 2022 01:05:08 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GFLc9W6yxnxzur8+GMWjGosZ6SdJ7v/8n+xMhD5tAwPVAx9zArtQACdkztYwZ4kuuSCTZZjew4+sjYbnr91ryTJuCAsCWlyBkaI1uFpLYe1h880Z/plkPp/b2l/x+uCZl16Ip0xpWj37SomELoMnqb0mZz212o5z18bFzqyclG5cBZcLdn1JEg1MYuQ0DypyYmCfWql5dOya9DaYxIPMzhDz2fc6caKqlkkka8gEW98p4IuqS8qOF9jzu5lSKKyYOEhmYn2mHOT+u4bq02ySi+KHEZE62xiIZtA0gcZR+ocJXyrHTXbPHrAj+7Ps5csByeQ4N5cNVe10OePIKX0Hlw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Yt1Bfv+TswrrE8piShsAMdCctR2iyQqW4SkMOc0LXok=; b=leijkFt18BGbmhNjm01rSOOy2wA9/QSf51QGJTahEuRpT9xwpPuEdVqEPlBWG1Y/rb8UQQ7n8F4y74Nlrl2QthS1MHUbR6JZJ5C9v6i8qoLEOa8hHkd3rXdS7lWmj2R7ZZF8VfyeDiJhpx2QJFD2UmRoX0ivXlGQfdTGSwQg906bXhYMB2R6QyoxynqT6I51C1zaxkx2gQY7AewdSs/T55b7kPnxvVPJX1JMnsKmWof5x+iRu0iJnwYRivWC2GLns2uDV6ECW1E2z3wU8J/GB/B/YUdsULF9Aravh2q8Z/QEw/NnHMkej7uQkGe+dph6jYIAS1uvk1+m1dvAJaF0JA== 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=Yt1Bfv+TswrrE8piShsAMdCctR2iyQqW4SkMOc0LXok=; b=bzk3J+3x8omOJdNWBqfvAaqKyzm30b7xpbl8pnxwwwy5kdvRYryP+CShV+gkFFJMW+7q731gGfEhjwaq9yhtMaeIK2JqUYBOxLwnWE3TGi+QqOHroU1XvepM4xMIsPWo4Bqs1n/1xEXjVtYrEYGZSL4LLG7ymqXKifKacbeFabXgaUAApVY0z83jLeM2TDA6dmQGTbuSFBbnU/DOhFQlbeLqLk0O4xLjvMqnkicN0ChAmFCuMsCEh8JBfD6DJo5LPtYaNXl2PXX5SkScFdI762+mrWnvrN9RmPQgfynVXRJZGwSzN/fmt+pd3nReX0JgqD295EklWTZ6y7JV/Zr6cA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AS8PR03MB7704.eurprd03.prod.outlook.com (2603:10a6:20b:403::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.10; Sun, 16 Jan 2022 23:05:07 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::19fc:be9f:2c9c:53f5%9]) with mapi id 15.20.4888.013; Sun, 16 Jan 2022 23:05:07 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 17 Jan 2022 00:03:54 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [4X8lGRrnaXiWUY4IQvnuF8G/YQCqfCcT] X-ClientProxiedBy: AM0PR10CA0070.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:15::23) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220116230405.194506-13-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 632e477a-8c47-45b5-bd19-08d9d944a372 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiQ2WpFcKeHQajRkhOqduPns9LgUjRDeAFdPzY/9HRUYDf1bKSecXcB699IXjeJEI+yzpZNXlONju9JBTjkStdkMAeQhtqZM59uA/sO7qnBdbtjhK5nnWAp06hHOqlSJlpSnSl5EiIZbnynP9Xazc4LSLFVGIr33jXnb2FQZsArFwf11IUkkZ7T2H16XqNIP8WmZlUSPbW38iQeqfok/HTeMHgADoRPU7s+DuBZ1uLIpV672CkSF2uuFuzABtbVMvPODS+Vs9QUX0P4Uw7haoeQCF0UpyQ4tmOEl1kMOl10L27ph0kNjERX24JeipNBMhwmXXHdOPG/1aXuiKLNBwOuS2aWKT7BTM4UyR1RvDf23rstskgS3B0/EswhCd6BjWq4Qcrq4mLBJlHw0qJJKQo/dcDeB7r4QwgOgv8jZ5mOfryJXQVDqrkrhRzfcU7AnakwyW1L9D5xVH8t79bCGuF9A5/TaASI243Kv38J2dsrzm0MvdNJO8r8G1OQ5Cwetf8h6Gve7q1WCVfS9qjvfVGGug45oAF7NhrNWQC6EobyU15F6WRS1oPJowLsHjn4FOO9AbzEGoy0Gi6oHM2mtzq675K0xAFgFeN4sPNKOvaDaowoqroN5BWvNwm4D6+bNRIHLYhZXsw+4L22cBFrhYjft/K0BkWV1yolxJyaZvh6srWQxSYuoGpCk0v6yhsWXiKi++PbNGu5PxOu2micEnxNLIb2Hp2REr49xee83Xh+GwJUJLavTdgbYA/vMntmsnJs= X-MS-TrafficTypeDiagnostic: AS8PR03MB7704:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6JJHptl+u/Hq7KJe7Zm2NrZ8b3VwKT9CKvNIVOLeTdHoxXLEEBPn8XF34UaOHIx9QCggbuBxEy3WIgVf7pGsUupmExAqesfBS0TDGtSVtcFpqe/pmM8vziukkrEfBqoLWZoQ6nJLUKOalk97WzaFO76sNlt9QPcBmz7kTR/uosNKShMKNzcgMK20l/KGx74ppCs5St4yhdo+0ljWP0WY2sltQdAJXe5JP5eanTugZCLOk1HQt3dnycePtkvrQjU5RAkdKnJ/VQOl3R503ICVF9TsAuubdxmqviMWf+b8Cef7yCCp3ADREcDK6zYKsNjpTAHRQ1w7q+6sdp+wyNDBXN/puXA8b+/EymiaQ/ybG0LQj7tt8OxG9nys82lMaWcSLPPSPar2wL7qW/V7Xse26skKwKj2Jewq6YHE1yvEtm45QkfYvwsm01mxaSg7QiSBD8DapfC/YlLqYyWL5AQKCsgmKuAZXxTPLVlVEeHqPz8lus/XVc/9o1dwGrSvCPp3A1xZsPiLhBF+0Qrblm/RZcjqZK0mexA6Ptf8tYmKFUUYz3KcWTIqpKfc/4gSEfmLWVkZTSyrqg+6i6rZVnrU8Q== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: GTy7ngrNCpX8EbBXtmyRhIBBDWXAox51+OTl49fdHBNOvsbu4QB4jqaLL0ftUrW5s1IDwyBAZDIH3j4xLgCCYxNZcu61sal3uFFQMdcf8MvhNeHn7qxwy0aN3QOwZRL1nnh/QgZyNOF8y7LDAA5Xo649sl8lPwe6p39nHrsvIapKYjSR8e8dpG9jy8Jm180Mw+Z3yzTg+N8Em4NLY6htLh8Du2XUskX7CpFHqc5jRO5U8+GipuBuiOwlOAvZwvBGU7KPKpIxrN8zW8mmSgt6p2P0FHEwi1x4yL+N8sPCUvncG7vGYtz/7QCh48ALuAdWNrJQJRiF064L0v9erpbxQriDzbtTNd6Cfaw7LUqARccMeomo/jJnkqP8HW0ueVwRxDUtTsU2L994Vld1PWS0jdakwITyoEBeig9ahilx0JZMOB9kWTm5MuXYCy6ZDpJTjKTuvOh6CXZurieXJYT7Ky6tErRBgGOlQjVqxVBJkrjfTw7anmqe19lRxwW5FP639B/ld5jIKVbOpBuJmZr308o5D9cPn9VLdo/HKrn0ZnkUCjqJSRrj0YCxO0M6anc+ZkYz46+tlkHlEXbrs2B4xca30w4Ue2iuRckeK+t1cqVvuHfaHAEp5ZpSy2o1gO2n08mpXiMl6q6E4hxMX/q77Zrm2hmnALdavvyJBPF0KEKlOqWDqPD8Z04Of4WfActdKKsM/XTOuuGv38SOlQ8CEg9rFclx0kz5T4pJdFuZrJ3HRWBdNmNYqFJ/mX8RNxJBOi04IoRgVV0s07E22jtSLswiBOyKXe5V2lHH5y07Rveb9CnaGhYQ0BvVbVR/FFDyeJhgZ1EhlnnVrzzE1agulAU4/5QcP70osNO6E/p+xYdE2tPgPnx4265JDi79qLr5H39Pn6c6JJC1GoLmCNZv6jrEE6bKs7UARxt3+9/zmQRAUroNjyQ/s0LzVB8yG5S01ExUUei/FQkh8YF9Qk2KKQ== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 632e477a-8c47-45b5-bd19-08d9d944a372 X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2022 23:05:07.4733 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR03MB7704 Subject: [FFmpeg-devel] [PATCH 14/25] avformat/matroskaenc: Redo reformatting AV1 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: 3IopYC0ojKm5 This avoids allocations+copies in all cases, not only those in which the desired OBUs are contiguous in the input buffer. Signed-off-by: Andreas Rheinhardt --- ff_av1_filter_obus_buf() now has only one user left: movenc.c Maybe movenc.c should be modified accordingly to remove it? libavformat/matroskaenc.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 08d2d338a6..d275d6cd6c 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -2389,6 +2389,16 @@ static int mkv_reformat_wavpack(MatroskaMuxContext *mkv, AVIOContext *pb, } #endif +static int mkv_reformat_av1(MatroskaMuxContext *mkv, AVIOContext *pb, + const AVPacket *pkt, int *size) +{ + int ret = ff_av1_filter_obus(pb, pkt->data, pkt->size); + if (ret < 0) + return ret; + *size = ret; + return 0; +} + static int mkv_write_block(AVFormatContext *s, AVIOContext *pb, uint32_t blockid, const AVPacket *pkt, int keyframe) { @@ -2426,9 +2436,7 @@ static int mkv_write_block(AVFormatContext *s, AVIOContext *pb, err = ff_hevc_annexb2mp4_buf(pkt->data, &data, &size, 0, NULL); } else #endif - if (par->codec_id == AV_CODEC_ID_AV1) { - err = ff_av1_filter_obus_buf(pkt->data, &data, &size, &offset); - } else if (track->reformat) { + if (track->reformat) { err = track->reformat(mkv, NULL, pkt, &size); } else data = pkt->data; @@ -3106,6 +3114,9 @@ static int mkv_init(struct AVFormatContext *s) track->reformat = mkv_reformat_wavpack; break; #endif + case AV_CODEC_ID_AV1: + track->reformat = mkv_reformat_av1; + break; } if (s->flags & AVFMT_FLAG_BITEXACT) {