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 E48BB4247D for ; Sat, 18 Dec 2021 16:21:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CA6A168AF5B; Sat, 18 Dec 2021 18:21:09 +0200 (EET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-oln040092070070.outbound.protection.outlook.com [40.92.70.70]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C45FE68AF07 for ; Sat, 18 Dec 2021 18:21:03 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZmP9pidZbakAPSk2PadCnMgYv7RmwRIeFvn705gvCSOR6Tf1tNjt4f+97EWZKPyKrXPcMZWjii6OrkPBGF6k2mIpfoPsReXKKWrYZIu2bMDGV7VGx8KVteE2+ou5OgmNc+lo1FkhOsvOOG9Rt0hrZNRa6XWlSCwr2F0k7IlTd6OvYnSmm9Sir+HWeT/sK9lfnJX3SDUBLYQekuqLwqvIfVIMA/uOyKcyEwNvQSYbTl4N3Or8RVFKrVgmz+ohw4J1UrJkDpcJQGfLKVYQTZftHQStlEi+ZTFSs3CgSD9VaLSeJL6f2ask9KK3PGegZoE0ZoenZDIooVnbupA6K2Y/Bw== 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=fl3tf6BtfytNfJR/lE7hAHKrehUd2y+s3ubssQ/JQ/s=; b=h/8FAtd/ocOybaR4iFHwqkKkZlqkb1tqmQHBDP1P+6e8KrQ68T9ipQXDiqiIfm1aB7ZiPb8pYMUOd9ezBaD5XVTiQKjCDRtlZhDWMTnrFyujVXkD38UMVxjdLiNwNh4xEdWySJmbEo9putQj1GFCLXr5vvg7q7C2ZbiPWBEbY+zUYdkd77E0NXYcZtKXa7wFGGEQGb/iG+VjNcLgFEN6c6gma1NZVOJPKy9mGmHi7wxhEY5KRz1hTGc1cX+7QxcaZfDC2GB8EhtgERHn3HDIJMwDlQTYg0RAl21Qjae0B3FTK8RdR0QfXurHUZCxAIY8dQzxePU670UqgmxC2UUu7g== 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=fl3tf6BtfytNfJR/lE7hAHKrehUd2y+s3ubssQ/JQ/s=; b=Z0txNh+UGvmpNPfPJ4oqy0Prxeg/4AoFZV2vUC0X4Q3bjdrhkBkytgKNdkZzhK7XZRsaxNmmktQp4p+2RHi+FsKoUWnLvvxVFJO3bSHh4zByqOD4r9sszYdcfMSXMtuSEvoVOxHXptAzh//g8O3iN54B8X36Eo9StBaT0CzEEnO2AcBqFQe5ATiERs3UOdec27UvKjlXx1zjEN50aQUcIFWFJhAf0m3kKkHt+IxJQ4XtGEiKnhw6qJ3/vIWvj2b2B0TCvvYCL3pgxoCBPvfnCH6yQewv4l4RVZbYlR8M3hWXIlcqifohjL0sGlpqQtyF4B4oLjMKsfbncP5CPHHp5g== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB4103.eurprd03.prod.outlook.com (2603:10a6:20b:22::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4778.12; Sat, 18 Dec 2021 16:21:01 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::f0dc:92f5:6bc2:45ca%6]) with mapi id 15.20.4801.017; Sat, 18 Dec 2021 16:21:01 +0000 Message-ID: Date: Sat, 18 Dec 2021 17:21:00 +0100 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20211217215155.19805-1-michael@niedermayer.cc> <20211218142711.GN2829255@pb2> From: Andreas Rheinhardt In-Reply-To: <20211218142711.GN2829255@pb2> X-TMN: [aJdAJ2JAAnuZn3LhZq6mDD03cR6jxsGv] X-ClientProxiedBy: AM4PR0302CA0002.eurprd03.prod.outlook.com (2603:10a6:205:2::15) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 49329d8c-69ff-40fc-4924-08d9c242618b X-MS-TrafficTypeDiagnostic: AM6PR03MB4103:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AxbyjVeaT0kdjHPQdaG9MtFISUGDra6xZgUSvVDkf7NIOqJdjxj/eoBdz6FfP3Kb3hnrhKjVlKQRqnYSSqyisaP0lzvOyhf5RDosxv50b1ulrbEUo3TMlK+imKu7wq31RUM4urwl+bLAIGiBQYY8P45viPQ0aoGPVO91XqE/t9ZI8T+J3ERCT+8brMk9VhOd0WKqgSHVGQFbCj3m4nypbIxLcpEt1juGcPSi1ZFPVcVPwZvbB6icLFFLVWaGEaEea8KwqgYU+/l99ne6OOx8TOBks+uQGgohHdiyvJ3Fk9nIbFHpX3n+xi+eCntg/efgK3nlk6TAZ8rMEmAlNAkwSXid+MniwUhU/SaetXKPY4I9EdCrki+1CJa3xE33Ma04PElfTVJLCihHFFQoUJStyG3vv3KTF5YAxlO/rNxip+3nFzzCawUtIglTeWWNAFtHEhBiDKNxQj2UYfjIELtfZSswuUp884ZE0k0toT7EFFCcv/37+sBxyp2Mm5HitGXYMT8CmOLIk0E7vTVpXcAFkzbZAA9UJ6SF6sf7q4quEHq89fapAS5qnDinWLpiEIDXEIRHNaGKcdiUAB5Rry973w== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?T3UvamNtck11Y2NnekRBcFJKOXFVWUVoZ2RkYUM2cnZDeWVMZkRRWFNlcE95?= =?utf-8?B?Z2tYdjJlWHRNUHVmeG1ESXRoMTkwRXh5UlAydjg4MHkzaWRKT3lpMVdqWXo5?= =?utf-8?B?MXJHdEEreDgwdFRQczB5b1JNVVAzTjg5RUZ2elNmQTBUc3JkWXpGT3RMZ0ov?= =?utf-8?B?OE5tSEt6VFJtaTVCY1UzU3B4WUFId0RqWjBEenFkK1FLTkgrWWJLTDdMb05l?= =?utf-8?B?Q2p0cmVDWDJWN0lBQVBweTQwMng5bXV2TitFVU1jN3JSbWRmMEZuZkU1Q0Y3?= =?utf-8?B?SDB0VzRRcmJsaWhlcmM2c1ZEbUUwck53dDd6TmNSdW1wN0x0M0ovb2NMNEo5?= =?utf-8?B?Rmkwekc3b2lpenZRc1FsYko5cEtYTnhYUVZRZUxnVXUrdERmcjJXSEpXYzRZ?= =?utf-8?B?QThxZ2prTHBPTlJkN0p3RFZxaTF2UGh4M2F5YWRCVGNjSVU2QlBzSHJVVC94?= =?utf-8?B?SDE4UkR2N3dlZENPdlllV3NnZVNWL2Rjb2pBTlZERHQ2TzdoMVZ4YzRqUGh2?= =?utf-8?B?YzM4VmRHUFhFRXZWS1JzSkJMZ2dXRmkzVkNjZnVxam50bEh3OUdwalNPNk9C?= =?utf-8?B?SFBaM3R1dGR3dmdvMllSOGNXNGRLalV1TmtTcU5tZnhjMUVFRkw2K2tiUk0z?= =?utf-8?B?SHJMTE4yTTMvdHBmUUE0Vzd0MVRIUDVJclVNeHlnL0kxaWxYb25QMEkwMkF0?= =?utf-8?B?Zm5DN2VvZGtGTi9ZVk9RcFRlQ1BoT1pKR2RtdFBVdXdEazZGaWdJMUo5eEh5?= =?utf-8?B?SWdGTkhGOFowNWIwSVVGUjhmZnZNUjN1YWVYTU81WlFxNWtlMEhNeEhzNE44?= =?utf-8?B?K0JEMVlzYzY5eHY2UGNpM29xVWxPYVVFYURMVVhEeGpyZk1IMnh4TzNOZi9D?= =?utf-8?B?Nm9HVXh6Y3VjWng0UFJVTVZOR05ydmVVTXF6emVGYTM2ek9nSEtheW52U3U2?= =?utf-8?B?NHZmTDhPcFVYL2hQSWVkNzV5S0dZRVdDQWNEenNldHBKR2RvdE5kVkVpY3pl?= =?utf-8?B?Tjg3MXpaK3pMcW1HSHpuaXVCdjdDSmFOQW1vczcyczZ6QkpVNnhvVjZ1OTVR?= =?utf-8?B?aTl0NUVqT2ZZR3ZQLy9qalBJNlRBVTFpL2E3VGdtU3FnNTByeUtFeS9uMlZV?= =?utf-8?B?Z1dpc05DNmNXYi93WHpjMlZwQUF0M3ZFaVo4U3UzTW9IdE5ySzFaeWxGNUls?= =?utf-8?B?TVRRNmorSXdrMnVhcDgvT3ZUcWtSeFRybVlnMHk3S2JncEd1WTd3RkpHY09M?= =?utf-8?B?SnJhNVNXRGpJeTFUSUdqRUNuY1JkWUpsaXI2ZytvK2J5bGRpdz09?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 49329d8c-69ff-40fc-4924-08d9c242618b X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Dec 2021 16:21:01.2752 (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: AM6PR03MB4103 Subject: Re: [FFmpeg-devel] [PATCH 1/4] avcodec/ass: Faster ff_ass_add_rect() 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: Michael Niedermayer: > On Fri, Dec 17, 2021 at 11:15:06PM +0100, Andreas Rheinhardt wrote: >> Michael Niedermayer: >>> Signed-off-by: Michael Niedermayer >>> --- >>> libavcodec/ass.c | 32 ++++++++++++++++++++++++++------ >>> libavcodec/ass.h | 7 +++++++ >>> 2 files changed, 33 insertions(+), 6 deletions(-) >>> >>> diff --git a/libavcodec/ass.c b/libavcodec/ass.c >>> index 725e4d42ba1..d0a4d678bb4 100644 >>> --- a/libavcodec/ass.c >>> +++ b/libavcodec/ass.c >>> @@ -114,17 +114,30 @@ char *ff_ass_get_dialog(int readorder, int layer, const char *style, >>> speaker ? speaker : "", text); >>> } >>> >>> -int ff_ass_add_rect(AVSubtitle *sub, const char *dialog, >>> +int ff_ass_add_rect2(AVSubtitle *sub, const char *dialog, >>> int readorder, int layer, const char *style, >>> - const char *speaker) >>> + const char *speaker, size_t *nb_rect_allocated) >>> { >>> - AVSubtitleRect **rects, *rect; >>> + AVSubtitleRect **rects = sub->rects, *rect; >>> char *ass_str; >>> + uint64_t new_nb = 0; >>> >>> - rects = av_realloc_array(sub->rects, sub->num_rects+1, sizeof(*sub->rects)); >>> - if (!rects) >>> + if (nb_rect_allocated && *nb_rect_allocated <= sub->num_rects) { >>> + new_nb = sub->num_rects + sub->num_rects/16LL + 1; >>> + } else if (!nb_rect_allocated) >>> + new_nb = sub->num_rects + 1LL; >>> + if (new_nb > SIZE_MAX) >>> return AVERROR(ENOMEM); >> >> AVSubtitle.num_rects is unsigned, so this number should always be >> bounded by UINT_MAX (and nb_rect_allocated can be a pointer to unsigned, >> too). > > i had that initially but then wanted to move to better types but missed > this, changed it back locally > Simply changing it back is wrong, because it might happen that the old num_rects is < UINT_MAX with new_nb > UINT_MAX. In this case one should clip new_nb to UINT_MAX. (This case can't happen currently: The loop in ccaption_dec can lead to at most INT_MAX/3 rects; the other two ff_ass_add_rect() can bring this to at most INT_MAX/3 + 2.) - Andreas _______________________________________________ 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".