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 F19524A307 for ; Tue, 26 Mar 2024 16:16:32 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9280768D60E; Tue, 26 Mar 2024 18:16:25 +0200 (EET) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2078.outbound.protection.outlook.com [40.92.65.78]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A31BE68D240 for ; Tue, 26 Mar 2024 18:16:19 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g4ov/Jb1hk50Ry4JnpdT2DzFMvA/faTucJbWwTvLHq2wYbKP5qgYh0Czqxc8xhFGpnbmqiHlvdwLAj0fQZFGYx41ACHUC+sCHgOWChwIkV3nD9G5X91bL1DAyyQ+nw3E8hoJIlWRB2glr0O3whnSEGU+OqUH1J+MyE8Xz+yFPtAaCEAtcakoCuO8Cx9WYh5//RdKXzn63BBjD+QfNcSTU212YCJhsJuPY1cqQhD0vIAFbkCbSuQAyOmjJtzDbQsmW2dGJ/effrRZmHYovyVsRyLlhTiyqeJ88jqLooWDlzhvHtcy4OaJShLiny/7QTaiFpailfs/39fJWM2sJVBl4Q== 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=Cto/p3GV+DNZpuHcCyrjuAowT+9ZOgblSgkiwI25ECI=; b=Xx19kVrkf/2UpoCea9YPcWMYZfZcJMhgjAByHHjRFL2Vby1AiAVXErhRhqc6J8+JyRp8J7+isBO2KaxiCZCCRl/Impp9KFwq3hHLqGc2kiJa9WxeQ5PDCrXUiDf9hKpEbljAs50V4EFEGfNOashIbJKwn35W1lSKVxajIGVkJiSafrn+fVOkWLUotvxVcbTtbg+dl0lxJpqOIVGyJdUDmrcsQzDiXb2a7fFm46uQs9fVD2PlD3nvT1HQQiZK3d7S6RvUTSz0PR9grkCyFIkXDZvUBD3jyDV48Fgn8qq6QgZRJqgfu5Isdl3ZqAFgj0c29eGvhmi+AF+rC/kK87o4hQ== 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=Cto/p3GV+DNZpuHcCyrjuAowT+9ZOgblSgkiwI25ECI=; b=cNLwxoAEwfI0/LSQP0fPzgAIxCQxyihyti/IkqXlHTjRA1kKo9j5juCyMnqTKRcODQqhxedcAmd+8IpLJvWgxswDs0/6lRdrdMrXJRJ5nSaGE0Qxq0lBTjvNI0oVMxLdptdtKxLKv0WHQpZK13pvEqzed/xvxo1YZpV6Zth+BbU0VkBCNh9uq9ev49isMjaaZkmRZFHNlM2KFUGaWTHBZFdcRUo0/8P6piZQrNnHKoHqtCTW8RMEmR0lhYmEJ/EQB7QIm6YJp96vetLD3njQka5UJBpkGqP41y14BnlJixnnQKE355OdY9arg756Sy7PchCGdRG0cmIimgd0UVpOKA== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PAXP250MB0469.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:276::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7409.32; Tue, 26 Mar 2024 16:16:17 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7409.028; Tue, 26 Mar 2024 16:16:17 +0000 Message-ID: Date: Tue, 26 Mar 2024 17:16:15 +0100 User-Agent: Mozilla Thunderbird Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20240324022504.1419451-1-marth64@proxyid.net> <20240324022504.1419451-2-marth64@proxyid.net> From: Andreas Rheinhardt In-Reply-To: <20240324022504.1419451-2-marth64@proxyid.net> X-TMN: [34piLoXjR5yJPXjS6ckkzbHAfF/zXy5UzwpQ9opRvU4=] X-ClientProxiedBy: ZR2P278CA0028.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:46::8) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <6ecd6757-43dc-4886-9a72-ec7ce2b71890@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PAXP250MB0469:EE_ X-MS-Office365-Filtering-Correlation-Id: 16267d9b-1157-4a32-801f-08dc4db0110c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Yuw5y6znuacVb1/VQgnv6KmVLJZqsPS8KQxANNss+0J51s/N1/N2A8OK09zjRGwjIxmJjFCrZTw5zBuA7IX/g/iWXfwg/Q0HducKBLDcvR/uIk8WzBEwkttDw5p9gkUCm+xbzV/r1zQGNONnJ0fbLmotddIrsZYPhpoH4MjudxTlAb0e7cutUeX2d4HctDZovtLJqPjd22fgY41WripZ/mKiCVxu2eR/++p4owyq2GVUhl52yU1wGupI9mg7wEZirC6005hjGvj+qcpJoF6NDexzfVWG+KFtV35G4pqwKF0HFd9s294qROXptKOhL0BeM4L7u1x0TUb8sAabVxl3Xqu/DsJLxVnAXqHWBU0lUkOODdXUTTr2p7XEG5bqE1v/CYwBku2pIlGkpRcnKG5wfOHjpMlFnaNLZQkXIEqX/ZKjcFmTrD9P0gNSBt6fGUWz8Bk+WXZ8uytcKmC+7PCqfetKZ6mRPFA2M6xI9enaxMbFoRYyQAJXugnICoTRQJkvCht1yz3LbDCJej809RM2RY3hbtS8Llt7HFpO5jlPDL0iMHzu6LuTir/4nutqwHhm X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ekEzTU1YOHFhV1BnVDNhSkRjRVJ2TFBXL1VsazV3bElxNnVwbXM0TlRLT3Jq?= =?utf-8?B?MWtnUnNIWkE2MDIxMWE5ZCtUcVdydGxNVGVUTjkrZzA5amV2QXRhdUtFYlVr?= =?utf-8?B?UHpuRmUySmMyQ1BDU05QTjI4anFXWllETkc4UHBSQkFNc1o3dlNUMjM1NmlX?= =?utf-8?B?UVlsUUZ4UG9GK2lXYmtiTXgvVUtKM3p6MVMwSFdXaUFmbTZvWnA5Y1A2L0tO?= =?utf-8?B?ZEhCbExoczZZN1ZVTXduOG1MK2pxZmorNnEzQjlxZ0p3MWwvUHFmbDdQMXZs?= =?utf-8?B?bFZZQS9YTG96bXdrVjV1QnhKMjlNdmZXTS9ta2RGNWRoa200UHJmSnU1Qld2?= =?utf-8?B?TTVieXdOZDArbFBwT1ZxZXZySnZKQThERGpXNXFiamIvRjRCbVYvb1dDYUwv?= =?utf-8?B?MFVzSDgwcktmUjdNTzB1SE5TeDZQOEFTUTMvbWpmU21qY1dacE1lMFI0RndQ?= =?utf-8?B?UVdjZWtlWGhPYzRVWnByaitsZEdoYUFSdDRsTVhPSFJEcVJkY212Nng4czVF?= =?utf-8?B?d2tDbThxSW5VNlFWMjN4Y2JjRVVIMGFTYWJLcjVQRHhwelh1WGg4RnJyd0d6?= =?utf-8?B?TkYrenNUa2QxSEtTRTBxSlRWNDBRenlVaGo5c0ozZzY3TmlvZEtpc2ZZNWc5?= =?utf-8?B?TlkwNi9pQWV6b2o3RE5KaFMxTWh6L3hQOXBqdnpKYzQ3b1FSb3JDcEFzNUpw?= =?utf-8?B?ekxiaklyVDdXRUVQaDFPSEZ5U0NuVFpwOWhhQ3hnTEU1eXE0d3R3K0pQYWpH?= =?utf-8?B?ZDF6YURLUWg0b1JBclhjTHhBeDJPMU1hbUR2dTBWb21lQzNSUkxZZGw3U0d6?= =?utf-8?B?aXkxcGFqaUVpVWdtZmNzRFRvRHZvMWlmeTNiUXBnVndVK2c3QXNDa1hPdlJS?= =?utf-8?B?amo0ZnlIVGNFZmFBbHVIdWNwakhmUE1MZ1NyM282MlYwUnM1U3hXbE51YWVU?= =?utf-8?B?elM3SFUxSDZWNEtMcW83VkF6eUxvN2RVTmMxZXplZXkwajRzam5NeXRDUUdP?= =?utf-8?B?NzQ2OWd3MVZhK1F2bGFza3JXekY2V0NjaWE0NWplbUE1SlMxMzN3Z1hweStO?= =?utf-8?B?NUxoU29qTEFIRTNQRWhieHA2WEM3aTh0SFdMVTRndjFqMGRIdmVxNTBnRmdE?= =?utf-8?B?ZnVnUGI2aXdyVWRkZU1VY1E0ZDFBaFA4QWhnb2NxZGN3YU0yd3BSbU5JZFg0?= =?utf-8?B?WjFXeDByc044cVhMQi9EOEc4S1orQjl0eFhhUnR5WGIza3ZOdXhBaW1aVnVx?= =?utf-8?B?YVhtbmZ3ZjZyNjN3Ty9UTUVhS1BjQ2ZHZWZRZ29leXdXZU5WTjQxWGJONGFZ?= =?utf-8?B?TW5QaHFLWDg4RjlSSFZNZWhpY3lhS3JjczRzK2tZM3pnR25EZmF3TkkyNk5O?= =?utf-8?B?VnJ1eUZpdURZZ0pIT0NTdCt6S213UjkzdVJRK3BOR2FUS3luREtUbmFwU2FT?= =?utf-8?B?ZnJpR0Fsa1VlUi9Zd3p4c1llSGZKa09yeGk5c0JtOVF4OFBtaDJaUzVkQitH?= =?utf-8?B?ellyakpPTzVzUXJzUHU4V1FyWjhRTWVzanZYRzVuSy95WE41VVZWanRHeFRH?= =?utf-8?B?Q0FFU2JEWWdvbUZnL1RZVzRHYVVPVld2YXo2N0pGYVpEM3IzS2MwbGtQVHNl?= =?utf-8?B?and2S1IvSlZtamRubGNIeW02QVhZUHdDSFB5TVpZcnAwdWc2eGY5YzNWUFdu?= =?utf-8?B?VzJMOFpiN0o2cHIyU0MvanJ5dUpkYTduS3Rvbzg1aCtaR1c1aUlCbmdBPT0=?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 16267d9b-1157-4a32-801f-08dc4db0110c X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Mar 2024 16:16:17.8071 (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: PAXP250MB0469 Subject: Re: [FFmpeg-devel] [PATCH v9 1/5] avformat/subtitles: extend ff_subtitles_queue_insert() to support not yet available events 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 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: Marth64: > If ff_subtitles_queue_insert() were given a NULL buffer > with 0 length, it would still attempt to grow the packet > or memcpy depending on if merge option is enabled. > > In this commit, allow passing a NULL buffer with 0 length > without attempting to do such operations. This way, if a > subtitle demuxer happens to pass an empty cue or wants to > use av_get_packet() to read bytes, there are no unnecessary > operations on the packet after it is allocated. > > Signed-off-by: Marth64 > --- > libavformat/subtitles.c | 24 ++++++++++++++++-------- > libavformat/subtitles.h | 2 +- > 2 files changed, 17 insertions(+), 9 deletions(-) > > diff --git a/libavformat/subtitles.c b/libavformat/subtitles.c > index 3413763c7b..4742ca0667 100644 > --- a/libavformat/subtitles.c > +++ b/libavformat/subtitles.c > @@ -21,6 +21,7 @@ > #include "avformat.h" > #include "subtitles.h" > #include "avio_internal.h" > +#include "libavutil/avassert.h" > #include "libavutil/avstring.h" > > void ff_text_init_avio(void *s, FFTextReader *r, AVIOContext *pb) > @@ -111,15 +112,20 @@ AVPacket *ff_subtitles_queue_insert(FFDemuxSubtitlesQueue *q, > { > AVPacket **subs, *sub; > > + if (!event) > + av_assert1(len == 0); av_assert1(event || len == 0) will make the assert message more meaningful and saves a line. > + > if (merge && q->nb_subs > 0) { > /* merge with previous event */ > > int old_len; > sub = q->subs[q->nb_subs - 1]; > old_len = sub->size; > - if (av_grow_packet(sub, len) < 0) > - return NULL; > - memcpy(sub->data + old_len, event, len); > + if (event) { > + if (av_grow_packet(sub, len) < 0) > + return NULL; > + memcpy(sub->data + old_len, event, len); > + } > } else { > /* new event */ > > @@ -133,14 +139,16 @@ AVPacket *ff_subtitles_queue_insert(FFDemuxSubtitlesQueue *q, > sub = av_packet_alloc(); > if (!sub) > return NULL; > - if (av_new_packet(sub, len) < 0) { > - av_packet_free(&sub); > - return NULL; > + if (event) { > + if (av_new_packet(sub, len) < 0) { > + av_packet_free(&sub); > + return NULL; > + } > + memcpy(sub->data, event, len); > } > - subs[q->nb_subs++] = sub; > sub->flags |= AV_PKT_FLAG_KEY; > sub->pts = sub->dts = 0; > - memcpy(sub->data, event, len); > + subs[q->nb_subs++] = sub; > } > return sub; > } > diff --git a/libavformat/subtitles.h b/libavformat/subtitles.h > index 88665663c5..ad6b96ca6a 100644 > --- a/libavformat/subtitles.h > +++ b/libavformat/subtitles.h > @@ -112,7 +112,7 @@ typedef struct { > /** > * Insert a new subtitle event. > * > - * @param event the subtitle line, may not be zero terminated > + * @param event the subtitle line (not zero terminated) or NULL on not yet available event > * @param len the length of the event (in strlen() sense, so without '\0') > * @param merge set to 1 if the current event should be concatenated with the > * previous one instead of adding a new entry, 0 otherwise _______________________________________________ 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".