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 CB74C48FF4 for ; Wed, 31 Jan 2024 09:31:18 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F0E8668D13C; Wed, 31 Jan 2024 11:31:16 +0200 (EET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2107.outbound.protection.outlook.com [40.92.74.107]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2DEFF68BDD5 for ; Wed, 31 Jan 2024 11:31:11 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dvu3WlYis54BHKKtm4nlrECWR0yWgTgRDxw+r7gjG6kNvjD86s4MgmEqnLJu5S1VnfDNkL6qe88XxoAxlUfMLx0BkqVoMbMTwnn8t0ERN0lomicc2VFgnH8TyaGCZyfQpQTueFhHzgn7Fg3kzvhMC1dKrh50fyzh0YogDs/JoZovWGaPrjuymc72+dYzwDK+mSDzZidAlN+CiAKPMKKumYxNTjz1F4BGK02i8biE/vsy/wgnV0jFHxCE6cXUhfTt7WH/x31X9qvIRUI1+LGopkVJE926Bv/xKgZqFnlHy1a22t2tQK9sPkj4s2ecVlvno1pmkdxJAnJhOquROwx7RQ== 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=MY1041bNmlGZcLgA07ok3iFyWII0+wC+K0sHzjf4QuM=; b=JeFFp+Unk4NXAdFdYcf6FzJ9mGc4JkNeFitRH5s+h65FytVGMv2LaEmRsd3d7q46VKqNvqKqvm2Lw/kRTIi9+OmACpQU1gG09Z3U/KbZz4COanb00a1JCa5/2N2/T2IeTHaMwctP3sdLy2ZUCbsWBTjqVVKwGkkTJ6BhRbOYIZGLN8ilmU9cjAWBiphVSnGh86LC2tN6J5lpKiHt5o7u9zM2lnIWm+p0oQ0Vm4lA8CKQMJJrjpfqr8cd/8aFQzpdy/+OTkiA+QbzkhxWOIxgCSlWoKvDMiioiT4vrpLVwt1STz/fc1r/5hVZZdrwprRsVydOcdv4aBMrgrtYA3/lCA== 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=MY1041bNmlGZcLgA07ok3iFyWII0+wC+K0sHzjf4QuM=; b=rzaTqnnEGoyMQA+E9ETwb3p8lH42Ab1n8gE3hUB6yovByirlf7mW4vI4XjzSfW6vMTmEYxqYdQDcZH1kj2LYPL6dWCbBSx27Y6EfaH/FtJCypzufC26UusbyPoBzR5EL6WWEpamnqyoNP+TDd3f6XBX0IFQlKiM/Q1XACzuFP3L//NPocKnOPtsutcoVR8KkclcOXEGaMonm6mLHJ5H81pXzlI6gjQkJE4VA7M0u7/FMvaZG7IrIQnjzg0mpLTYpZDF6ns+GIg9c90WvSpEIBSuFHsH/SkvYae/nNvlA30AYGxIsDgcU0rmu4fclxRbUGKNJU2OFE6hpbfPPUXPE/A== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS4P250MB0414.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4c1::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.34; Wed, 31 Jan 2024 09:31:09 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7202.031; Wed, 31 Jan 2024 09:31:09 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 31 Jan 2024 10:32:55 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [6DdiB2dB8hip+zizSKthy/MQJ7Ejd2oU6NiGoxcKGZ0=] X-ClientProxiedBy: FR0P281CA0235.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b2::20) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240131093256.749308-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS4P250MB0414:EE_ X-MS-Office365-Filtering-Correlation-Id: da48d2b0-690e-47cd-ee4d-08dc223f5b69 X-MS-Exchange-SLBlob-MailProps: Cq7lScuPrnp0HDrO/Vxd+Mt+RGIvgEHJv52+Q+azDyn2fRfoZ0bWNC0bVHZAgY+APxVcvNWD7xbKgqQzQKyGHsBjUC+7TVmfOOxocIqjAeuSWuMgoBJzJ7MKZWNB/saVt0O06etXjZkrHBb6QFsVSNW6yGbrxe7eL2na6Z3aDsUBCvNjbHZZCFs51+4iHZujUp14U51RQcNSmqb7GHsWB46Tk4ylDM5seVB84dX+AFAPkDZ5yKHbfG/SYwdSNrPhXdrrZy8SRkIiVNWXTQ1p2wZk0z9JNCJAUw2oe+Ypi3DpM/P/9KS5Iq1Y4ZoobyFxxKf4Eb6SE7T4In+KHVwTJ+ARx/8vv60RAkaou2oo9MAep++ziqAOB2YGCmmHIMhxOXzcX8lRJZStEEyOucQTPPpOlz83T3teVtXlJXlxC4s8TVvEIcrWm6Frb0cuj63ckQds5MQJ6/1Vka60Iv6VMai87p4u+EFHAwl2aOspEuYjYa3HZLM5fBwA29fNCMlSUaHal+NW+KkIchxvtRZCYBMaFOXfzqlxzkdfl/R+M4GDMMFk0tG8RXlCFHVV27iKhITBEPsxQwSMDquckIGpafDoAI+oOa8y+9WzQEZqXSs9ttBFHn+yYm2Bqe2057mGqm0CSXQQpvYEFNwNLpmkLqaIU4p14cL9wq8wtWG2RKZi/Ij9NpRBol7rpp4erigdGD3oNOkSUSf5I2BFGlWKM0z/DKX1wCw0XeM+OVuxZ67klvDcGTVps/J72hm0w3tOcHkJ8xtWldk= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WtoCqH7nqGQhcFGjEvEEkQsnRO+dvwc8S4Zr033hIHSiN04oU/CThF907GwjxuBo5TZGcRvjHvhvCKf7uBvOdmOwbbLw+QDCnjJ9iud1VO8s+ByjMgMvdaagKSlX07ZJnLexg/ZZtDirhkOH01DaqzQq1xoeC6mg8mYIFBSxOTqmUagSylXMzYLnHypjTc7XqUUv/sPyO27TzmDSIXSL0KQM3onpVHMs0nuKZNwR5nHjA4WhlkTNddLQ72CMLU/e/WMseIxQQU3EBn80lbEMXN9SW13Oxz5qGFNVrkRjVKjt3z6wmf0dFgIZ7iKzLK2iCUpcJeJ7Hep6CjV7Vv4qAU4m5+h/YT2jySGcH8TPBeYyKNW8ap3gByDbO+E/oj4KkKSlUGsE0pNVUAaF57+E/kBpchtyNHZXUrgZ7DKRN8bu8ABsGjlU3EZMB44Frt44qUaPdfBBbysanCaZeDAS9AhhrAQ+GVdCLml94aGm+H8Wfbho5klGW/S4ybkBKV7i800ExrbPKI+4oNuv7vxfVkggignuqNeOYLvvIcBexSA8/qjFsGGyEmMV80EqWTKbbvQU1vPFrRiBuMPPQh0bAl4Tb47fxDb7homgz7lTEJafkCZ/MfH6hKQ59DA8LMff X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AYjvsgkrFMBFbguMG7S3qQ7BCx8yMRNIiKgCRm7jhQUkUFNnCy4DRv24Xffi?= =?us-ascii?Q?GYAc6HmVZvBBR1WjmTD/7/LCeIbtXdu+j8IcopaStfDFkxRhduKWLGZcX5vS?= =?us-ascii?Q?WQ7/lmcR+wudVy9OR0aYrMtr64YRPTLhBxAteVUdAJ4EAXk5E2MeTNO1YosC?= =?us-ascii?Q?jgotidCj+EqX76TqrAEgU23TVNQCwSogy7wpbdmWnvCc7Z7bRSvHuHvJmUeP?= =?us-ascii?Q?Gnc+Uz7/hpZJE0FCuSD380N3jJa6CmF5MhsWjJDuByaB/VhJzeUhHauGAoC3?= =?us-ascii?Q?dRKLiYXSHnnuHrvx2GPvzpscnJGl1yTSSRLfJ5E97zSbCijG/A+REpFjKY88?= =?us-ascii?Q?jB4/HpUzc0Eph2U+P5F8pnyRblrtIYewnMM8NLAML4gN867umXPMaDgy3HTV?= =?us-ascii?Q?vOwpwGOf8Rr4zVGTvw0Q/PsHYhK7WWGG4+fk4iAHrp2TrvfItqD13bv+6VBW?= =?us-ascii?Q?CCWyA9C0qjW/HTScMK6YdZQfjeYYZnLiY89QWg3XxEDBdsl0W3XEDG6foUqI?= =?us-ascii?Q?RnhWunyPzwBOLAzyDmXJ2/aLQBztmsjDbwWLA9dQ2bbLt/RsAUjaPsemOI4i?= =?us-ascii?Q?q/cjKKpqxRIUTEwpEw6tFMU8MarIxfDOguRvrhKTb5fo/xQYAoEc+srE1mlU?= =?us-ascii?Q?YxyqnYdyr42mmb2c6UfQ3/PlxCokleSzNcbKeInr07Bqw+BUXblI4UL3Qwx4?= =?us-ascii?Q?bFjB2nlyATQjOdrNb8YwE+UIXIv0JtjQgU7z/fVB2OS50GzKhdmrXvb38L2A?= =?us-ascii?Q?KZIUew+aI9soH3XRslrdOLS4YhZirSBJMcbMkn6wVi65r4ozKZ6jPlF1OrID?= =?us-ascii?Q?24lAG6pA+Bu0jwaGH/4DI2pV75Vks6MX/HLfHLUXOw9uOxeIGNJiGnppvxAV?= =?us-ascii?Q?pzu1n17kYqyuGxnD6RlhdkI4OaI3bKuJz0oyEqm2U5DaagHGOhYlyDqslBMa?= =?us-ascii?Q?K7g4J1VYWrQUOUtlyh72sf20LMGuJkGsPOBv0rqQYrUMVM9MzmOXoVBzYIdp?= =?us-ascii?Q?3xVHSu6D6xhoeaHCT6s55iEWoSJCCiSJuA9ilJzkPzmhCy89oukyd3eP4tOX?= =?us-ascii?Q?gCyhcfrWjDBKqazxHb8P5K7Ecj+2nCWKg+U6iRjBEHOoUHGaMThx/NYDpSZQ?= =?us-ascii?Q?iTordLNFJzCq3nY5iC0bTsQpDdvABIm7xcT4u9/Efz5hxqs/lssULyIizCrH?= =?us-ascii?Q?aPuzXReAtDQAuo15wruZNnDxTGLRuZR65nDpyiluE6WTNiy6MKdMNwy3uI+X?= =?us-ascii?Q?TLxy/cZ1qwOrGKYf9aZx?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: da48d2b0-690e-47cd-ee4d-08dc223f5b69 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Jan 2024 09:31:09.3315 (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: AS4P250MB0414 Subject: [FFmpeg-devel] [PATCH 2/3] avformat/iamf_writer, iamfenc: Avoid allocations when using dyn 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 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: Use avio_get_dyn_buf()+ffio_free_dyn_buf() instead of avio_close_dyn_buf()+av_free(). This saves an allocation (and memcpy) in case all the data fits in the AVIOContext's write buffer. Signed-off-by: Andreas Rheinhardt --- libavformat/iamf_writer.c | 12 ++++++------ libavformat/iamfenc.c | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libavformat/iamf_writer.c b/libavformat/iamf_writer.c index f665f45b7a..5850c53c8e 100644 --- a/libavformat/iamf_writer.c +++ b/libavformat/iamf_writer.c @@ -453,11 +453,11 @@ static int iamf_write_codec_config(const IAMFContext *iamf, put_bits(&pbc, 3, 0); flush_put_bits(&pbc); - dyn_size = avio_close_dyn_buf(dyn_bc, &dyn_buf); + dyn_size = avio_get_dyn_buf(dyn_bc, &dyn_buf); avio_write(pb, header, put_bytes_count(&pbc, 1)); ffio_write_leb(pb, dyn_size); avio_write(pb, dyn_buf, dyn_size); - av_free(dyn_buf); + ffio_free_dyn_buf(&dyn_bc); return 0; } @@ -660,11 +660,11 @@ static int iamf_write_audio_element(const IAMFContext *iamf, put_bits(&pbc, 3, 0); flush_put_bits(&pbc); - dyn_size = avio_close_dyn_buf(dyn_bc, &dyn_buf); + dyn_size = avio_get_dyn_buf(dyn_bc, &dyn_buf); avio_write(pb, header, put_bytes_count(&pbc, 1)); ffio_write_leb(pb, dyn_size); avio_write(pb, dyn_buf, dyn_size); - av_free(dyn_buf); + ffio_free_dyn_buf(&dyn_bc); return 0; } @@ -796,11 +796,11 @@ static int iamf_write_mixing_presentation(const IAMFContext *iamf, put_bits(&pbc, 3, 0); flush_put_bits(&pbc); - dyn_size = avio_close_dyn_buf(dyn_bc, &dyn_buf); + dyn_size = avio_get_dyn_buf(dyn_bc, &dyn_buf); avio_write(pb, header, put_bytes_count(&pbc, 1)); ffio_write_leb(pb, dyn_size); avio_write(pb, dyn_buf, dyn_size); - av_free(dyn_buf); + ffio_free_dyn_buf(&dyn_bc); return 0; } diff --git a/libavformat/iamfenc.c b/libavformat/iamfenc.c index a02f84035a..e1003d5495 100644 --- a/libavformat/iamfenc.c +++ b/libavformat/iamfenc.c @@ -257,10 +257,10 @@ static int write_parameter_block(AVFormatContext *s, const AVIAMFParamDefinition } } - dyn_size = avio_close_dyn_buf(dyn_bc, &dyn_buf); + dyn_size = avio_get_dyn_buf(dyn_bc, &dyn_buf); ffio_write_leb(s->pb, dyn_size); avio_write(s->pb, dyn_buf, dyn_size); - av_free(dyn_buf); + ffio_free_dyn_buf(&dyn_bc); return 0; } @@ -340,10 +340,10 @@ static int iamf_write_packet(AVFormatContext *s, AVPacket *pkt) if (st->id > 17) ffio_write_leb(dyn_bc, st->id); - dyn_size = avio_close_dyn_buf(dyn_bc, &dyn_buf); + dyn_size = avio_get_dyn_buf(dyn_bc, &dyn_buf); ffio_write_leb(s->pb, dyn_size + pkt->size); avio_write(s->pb, dyn_buf, dyn_size); - av_free(dyn_buf); + ffio_free_dyn_buf(&dyn_bc); avio_write(s->pb, pkt->data, pkt->size); return 0; -- 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".