From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 1593A46CAF for ; Tue, 8 Aug 2023 16:40:46 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1F30868C813; Tue, 8 Aug 2023 19:39:59 +0300 (EEST) Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2103.outbound.protection.outlook.com [40.92.91.103]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9422E68C7F5 for ; Tue, 8 Aug 2023 19:39:55 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UuMzp7ahLUw93YV13pZR1gqxmIyWgTJaBOjQyRe7c2XDgkqIMhgVP41O5+uJVYXJvFyrXalPjHNRwn9PvPTaGp6calstfn6cxqsQNQCUeDDA4xsO0zmYLu/Mp9++m58qkE2C2DucB5y4YKFxfgHw1/1PZjKhGKoxYLilZ/AU+ideq4TLRvaW39Dzy0iK883LXTc9f+C/7qx8viCQTvJ5/651kDBcj/CcFq2OD1myLYEKfj406z4J0s+Wuq6U6LwtEYn0OmQ+Ke7qh0xBK1fBGyeUQ03MdfH2LjCJ+xyp7JGpWwy0DJsAzKrg+bU00RyuAvWcy94D0m2LrM+dXD2YWA== 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=OJFPC0BAbz4Z5+mPbAMFSu5CL0FDKH/w7O/Ix4R/Twg=; b=SjQi1YDcJbQ0h7IQ7WdwKUHTaaxxGFyQYPEx28vlVoYjV2D6uIWbbtTXDd1B/ReJH7q0Df+RMWk7e/9YbKbprnHgokcQyrTT+HQdQfMEhr1Qu7fvR505CoeuwLb3t3KZvCeQwuXHg4tIQxX+oZeIQN2wl9rf7S2AmQwR+bGdJiIQZTT5pm9J7oZAZAu8WeLbj4UtBS2H6J5MQVudj3J2Up/7Cxo1FiuZMkwntcjqBKRSUf8y3UBIgftVSA4FeKHcyVvu2uOzugs3+DFUKeF0tva5kOXRVNGRrLJmTBa/z5KWbhMciOdXeSs1wrwy749EzFWpYgCk1ZfWOegpaGRZhw== 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=OJFPC0BAbz4Z5+mPbAMFSu5CL0FDKH/w7O/Ix4R/Twg=; b=SZ2/thR4t2mUmvmmURt4j5pygH2ItFnOgQp3o3pJd/h8vi/XXS06GSVmzHopJStxZCD+IHVF/sLfOcynwNV1PEWzQXJwsawAd1BvLAmfSLL//GsQ20WA3tHZjy+fBMZYP1ehw8Hz0WlrtfyFl3pydvJLwU0kxnsawdtpJBUgvZgOG95L5OL8uLOBrAjXMoXocEZynAeytWpiM9b65BqyCRR+sfyppnGrGY72xRVuTuyfESVnBGb9doIspL/hZLiS8dRGJfCkyhb5WPocnYiyfdWaskxkXEz2/tfvnLylOXA0XGp2q+NIAZQLV9XBSprl8iMfVlBDIU8ckM4b6jytBA== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0268.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37f::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.26; Tue, 8 Aug 2023 16:39:47 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6652.021; Tue, 8 Aug 2023 16:39:47 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 8 Aug 2023 18:40:31 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [qi38hu9QG6/fKyimtpg5J3KWGxXAfQ5q5R+7dbSSszM=] X-ClientProxiedBy: ZR0P278CA0085.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:22::18) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20230808164036.810177-5-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0268:EE_ X-MS-Office365-Filtering-Correlation-Id: fc442ea5-4c42-4568-3611-08db982e13a0 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmoMTHls4qxpPCYYkh36TB/2EJHcLiUnfOq+NvGEcDk/E6WA7vFSldhJrR06gvx+6tHrGfAzVxDRkBj8XNRoRlZ7b8ZqxAU5HpfEfEOlMeEcz90Mdw2g0gHkKsjyc4OfBqRUV6vDsYAqOI7zsD4uX+1LjMpDhEEvmhhKIo/EpfpiGitpsY1g/UgCuvqWM8Be7YiWTRc98EFcv2ESBhk5c60IeXTe2OX08aAL4xPZIUQ9UP9kHlfIoiheGh4kDbuu32/WS81DU/sdAqxOJhlOo0MR7jtPgRvlJQrjjeCGqJPyNAjkIrzwBu1aWQx4kxCho315PxZjjZ2t0vvl7bvAkaIpe3DWZobA3JCM0uHjyZK0KzGmP1GjiRNnjqn/Z8kh5+COi03M+sj5t118Fn9YET7RjG9AguV2icaskM8sYlsTBfugeEIWt8Np1ddQfZo6hbausM7aF20oVWZGwHHTNKDMqpjkmduj+JcBnZtBv8fA5zfesz2jsAX1jfdViQkQpsoHN2uLwsB4ggUYt6u5vjArladzLxyMqDnxY4toV/M6V9p6Db6RyY1sLA9dyu6iz/fHzLlywjGDPLIKI0hBh5kDPo5ip4GKap+AuXns93tvcnE8M90bbLjiml9PtOHY92XPfqHJsVknJaSuhso132l3y7y9V0iDjsg2UrjOVxgMIeWFweuqxFz3npfWhK9Q8waHYXuGAml4zC2Us/hjWqt8eCqCisrOo/ubG4LrExGXXNExUbb2iwsmxJ3Hwv7kWDs= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: l/hjK+uivOVlJiCE0+3lzH8Lsi2nBqvvbqWFJWkpOH9VvSZeA5mj/NZk3ffWucSPMF348hVbi/Yyd8kkf4I24uUeXFvwImDuRVPvpsb4rmGESxkZqmDu0r905zZ5YzTxuScw8BJyUyv1TcsQT/2qY1H0lRDsTTbLU9Vw/U7ea8No4gLYLzyhlRV0taaBGJlx6RNlKuHUUBmxv2GE+PpzDc/64Wi2afEEXXbBRjskVjcJEIXmnzILTySlxFv9EEaE7dfZGXHnsb22Xx//5khfy6uK7Lhx9Gpah3GSEqREztR+mZOydKt+k9DvKf7exmy4KgS4GmTu0LTLsoNYKCd4aBSP692o9e3e1ki7U58P3lWMGpQ+h1/Yg/jHN/THNvhwjGzXbpYd0QZ2Zqq8R+dg8vNgfEZpWHFvlOjfVgoczJsmYG3G75Vy/CgKAjWg0hUgFwDvHc4MLaY9kxw6eM+FU8yqifKLRsIqHD9Z355F1dKYzUpCTsZP82fhUSocpbejn4namcqOwhKKxcOxO4WSxzPBpKnoOTWUmk506jyKMAq9BtmvCshQmAKZntRifp2bxPieq7j5qEjg6kZsy7qULQMKZ9/6Q8V2+ChRzBj2XUHNdFhN9HO42I3MKkhUU9Lt X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?x1RyJ3zWCsICRmxHrHzHYIcOxINnDsaobsmyzDlIl1noCfG4IrP/ygPmTZTw?= =?us-ascii?Q?u5VH3Nr4LljYqe8BGVfLQHdErrs73bte1mqXOdwx70n7eGVo5OKto06wYwTn?= =?us-ascii?Q?Juc14b9SFajdFRxKLiqmrmmcQJTJ0SfTXR3DcGvpMdb5pHJuTs3zas420WzQ?= =?us-ascii?Q?WGVuijyjHVSa++Bmi1mnFKTXiKXIAhjLmNcPrBUkeNPmgixD8Xd5hsmq/+X9?= =?us-ascii?Q?yZvFV6vv5+MgrZ1Is/sM7CytzUGvd5jqQ+djCnCF5M7QS6BdiNA7ML3DQL8F?= =?us-ascii?Q?8oW2J+mKY/sSAVQ5Bj8+h3ROltWsgYxreRqkRrAktqSoQ9Qft9t+2hiBfhVC?= =?us-ascii?Q?+ZzjSN/NpBxVNieMym4tMEQx+Mh7XaY5MQA1Hi+NS8QJZCVK5iyVFm1G31tk?= =?us-ascii?Q?6ck4AjYlxI5lzOQTr0gD1NT+r66LF6QNV1QT1AqC3hDsl7D8/Y2cw+Lis0ko?= =?us-ascii?Q?y9LUvpZC4czr9K4MUU+nlovWO93jLEW8y2F6JwKJpAFcR8wky1aYzHEgg86r?= =?us-ascii?Q?UYe/QKuF+/8OHJhyNMFSmfjIjzuaNi34I4fDPcazEE0hH/zO4OJb+Q9hEH/T?= =?us-ascii?Q?bUcssbXuei/cBY8prbbUW5/Kr3C+FGdUziEq/6uVkuQM3InRBhANec5O7GDg?= =?us-ascii?Q?EU6iCpbpKiHooRGysfAa2ZVVm5R5+/E+NhddZQQayb/dYmYoHQ+qs95GWdSr?= =?us-ascii?Q?MeEV5JC3zJb/kughxdCeH4dD16JJqUxjvz6jM1/LPz1qb44xA3EIlwymRJ4x?= =?us-ascii?Q?CJYlfGjZBBK9pEfrSVcvM0rIejcC1J+vxPwIxPmypJU+onlqZhAGb07zt+yj?= =?us-ascii?Q?S2hhhIsCwuyUFLrduOPhLQuaJBmrIHeaWz3xFULAIQ5cAyNAzZWrtXnfQeMv?= =?us-ascii?Q?ta6M5/GikRp1IElZNQhFpXdWUKMRdPliyvv/LhAn/elk1qK+SiJRSibwtJEL?= =?us-ascii?Q?RqzZ3DHSyy+4b3alo26K/jraYGV9y75XNyjekUo0LcJfdJ9yRmLkQZuiAs6o?= =?us-ascii?Q?wJ0XwjCeBKhs4DzN3ZGcW3l7z2otUvkfqGUMLRGt8TUGFWCBf9UFDV+SpK1c?= =?us-ascii?Q?rPTV9f2KgB6eyWQQBMIH9Nc1w+gIrhbXlSLpB/nG7/oIx4B2z2SzSordBpSQ?= =?us-ascii?Q?vS44qzueYlBEnhvpTv/6uaSBrBWGQgWg3jDgK5fsgLO6w+2im/K+czMYnlp2?= =?us-ascii?Q?ax2sEec2PjcMt6+nSc9xeEMnv5pH15Ffuzxr0q6POcIWOBua8cUOw7RyVEJB?= =?us-ascii?Q?BqeKCCcGSrQSDFzgl3Mc?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc442ea5-4c42-4568-3611-08db982e13a0 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2023 16:39:47.0526 (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: AS8P250MB0268 Subject: [FFmpeg-devel] [PATCH 10/15] avformat/matroskaenc: Avoid allocations when writing Dynamic HDR10+ 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Possible since 61b27b15fc924d7fa35baa61cfbc91568945f5db. Signed-off-by: Andreas Rheinhardt --- libavformat/matroskaenc.c | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 323379c8bc..12a28a6b5c 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -2709,7 +2709,8 @@ static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, int keyframe, int64_t ts, uint64_t duration, int force_blockgroup, int64_t relative_packet_pos) { - uint8_t *side_data, *buf = NULL; + uint8_t t35_buf[6 + AV_HDR_PLUS_MAX_PAYLOAD_SIZE]; + uint8_t *side_data; size_t side_data_size; uint64_t additional_id; unsigned track_number = track->track_num; @@ -2765,17 +2766,8 @@ static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, AV_PKT_DATA_DYNAMIC_HDR10_PLUS, &side_data_size); if (side_data && side_data_size) { - uint8_t *payload; - size_t payload_size, buf_size; - ret = av_dynamic_hdr_plus_to_t35((AVDynamicHDRPlus *)side_data, NULL, - &payload_size); - if (ret < 0) - return ret; - - buf_size = payload_size + 6; - buf = payload = av_malloc(buf_size); - if (!buf) - return AVERROR(ENOMEM); + uint8_t *payload = t35_buf; + size_t payload_size = sizeof(t35_buf) - 6; bytestream_put_byte(&payload, 0xB5); // country_code bytestream_put_be16(&payload, 0x3C); // provider_code @@ -2785,9 +2777,9 @@ static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, ret = av_dynamic_hdr_plus_to_t35((AVDynamicHDRPlus *)side_data, &payload, &payload_size); if (ret < 0) - goto fail; + return ret; - mkv_write_blockadditional(&writer, buf, buf_size, + mkv_write_blockadditional(&writer, t35_buf, payload_size + 6, MATROSKA_BLOCK_ADD_ID_ITU_T_T35); track->max_blockaddid = FFMAX(track->max_blockaddid, MATROSKA_BLOCK_ADD_ID_ITU_T_T35); @@ -2807,11 +2799,7 @@ static int mkv_write_block(void *logctx, MatroskaMuxContext *mkv, ebml_writer_add_sint(&writer, MATROSKA_ID_BLOCKREFERENCE, track->last_timestamp - ts); - ret = ebml_writer_write(&writer, pb); -fail: - av_free(buf); - - return ret; + return ebml_writer_write(&writer, pb); } static int mkv_end_cluster(AVFormatContext *s) -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".