From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id 19A6B4DA3F for ; Tue, 3 Jun 2025 16:12:27 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id A1F9E68D7D1; Tue, 3 Jun 2025 19:12:23 +0300 (EEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12olkn2011.outbound.protection.outlook.com [40.92.23.11]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 0F4C868D1E0 for ; Tue, 3 Jun 2025 19:12:17 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N2oJh7/SGJeYku1ZVTEeML+Nc7/qMT/4/VSf65n2jeBvLkiXI0F2sbnU8jTqEwrHz5SdNXi7/WFfckDVg9qhA7dMs2s0TCgLOiM8ngbt7EvciRkuKan/oVgGqYW9Prap6U/OOx+XuICqqT39nqm+6PHd0tj/ojAt8qAoyUPbBvNQM0RYBGnIK1jh6phFU4yad8PfylRB/Ytg3isATmNU+1e1B50BrqcvoY5mmyBjy6dsvHRAMnrWFocn56bjOD5hoT0CYxCecizlOJ8Yv6ht8eq6v+h8ClEHeG8YVRR8tAhWKlZk4ArsO0kotVcrn7dK8NUQXIxCcP5v+byJ5255Wg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=xA4ZntI/ssSn6O82M9cp34DOKfl3L0hPXkzdjQ0pHeQ=; b=qVPKfsSyC+fas1IyuY+qf29EYnWvdmpVYilL2TRj4lwBnGYWbhiIL12wIg4RnxYV3ObY0DaMNZcD4QAX59vnR+jwf4RwXvme6VPWuLlWYvXz1d4R+bCIWcdojnnOhhiUmycGgactN5HdqcdzfyfLFNwT/BHPirKo8QFuNbcFzOEMQooTnNBF4oBwQ+/a9tgbncCg+cohOuR9ocVkUrwi/pZxSBxuqG+qq8ld7a8cYYiO3ZAOc/SguyDFpcXwS1MxGV+bB4gS3BQwTvc80uxMDb3M9YuyQz2pbUQDF4XxrPNqDsX0MeQF6DpAKDIcvbukp/Glblqe+7eaiohqAZ13xg== 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=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xA4ZntI/ssSn6O82M9cp34DOKfl3L0hPXkzdjQ0pHeQ=; b=DrF8xH0ip9lTCqszYTh1uCaJTY1jKjVfr2mTVdosENvTxlUkDKUrN75f7jXJzwJrgMM43WUp/jMJ3v1gNEy69g0C02WgJUXNzmZ/B9cvOyiyrLLihLEwgvAEZwJwjGi5GZoSmoNf1bNsZJ+2gjQTKeFGUB+uYgPpOPr1c9cCIpnc9alzOZSTaxi7m/M6MCZC4emDFItu9UCRiVnz78TaMQK52K3U5DScS5CxbId7GFhswqdtVg5Yd88Yxlko20W+C2S9HdS1e7qIcE0WJJ6rO3+2+5awIW9yserWj6KrR3faCaXsicuTTPe8O/4D6gyKVskw5JAlcIxM+AbXg/S5+g== Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM (2603:10b6:8:b::20) by LV3P223MB1113.NAMP223.PROD.OUTLOOK.COM (2603:10b6:408:1d6::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8792.34; Tue, 3 Jun 2025 16:12:12 +0000 Received: from DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7]) by DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM ([fe80::bf09:8e9:b07f:98a7%5]) with mapi id 15.20.8792.034; Tue, 3 Jun 2025 16:12:12 +0000 From: "softworkz ." To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [RFC] Subtitle Filtering Ramp-Up Thread-Index: AdvUYja18qz3kVWISWyncQxleQKjDQAPlkaAAAAREaA= Date: Tue, 3 Jun 2025 16:12:11 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM8P223MB0365:EE_|LV3P223MB1113:EE_ x-ms-office365-filtering-correlation-id: e04db6f2-163c-4629-b871-08dda2b965fa x-ms-exchange-slblob-mailprops: Om8TgR6f4EBtFSu7R1+O6MQGNNys9Vreomibf1tbplL6W2IPetBRdkUxqK7c7ppAruzoXhj1SH6TqfvAYsXZf5KWgUWCTsfLyCmxPLlvabwuWLT0MnWPzCMr7HkjsV+KyuYMis9eWuYmj/JEzZpI0HZyym2zhTcGRmV1WVcTpfl8optN35gl+htmL2v698/YbORXVQf793bXdUbEvQo46XagW1wgatkowwF/YKlRyPUKNfneErKme76p+KpeKsOmJsYCC+aKRiSBB/BgIdj3Mji6xcK2Xo34/TRLM75onEMOV578ybi0u0Ex79CFZY+STdyI9fLfo7XYAz3GlScoFA8xGyQ0CCmON5Inl5HaYfH9HeksCzG/2UQeJkYjrJ4Jp3BBdQlI53mIc/NKoO+ypTRqi2qOLkGf9grbsFGPzGBqok5xWVOm+pgEU9fmwYmsG3s4eu5jHoFVaINpoN8e0KOK9ShFqCFn9ry0kvDhwQzaip7OuIKlx5cL+Xlv2QQX2A55VIuPKZolYHOaBtbZ88Qnk4DoB5/JjYV29qEk02pDl9qaeX78KN7LLV7e6aqJF7VM1kReJYOfau4tHtn0tT3i90icgbKbjzQj033uK4KD59OkJaifhjip8bk28HUC7amtwUwv8P7m/oO23+2Kwkmtvbjczn7YzEwMTRQXImM0hkf0XLfks2ZqDGDsSi1F0cJ66rPxFPEL/dnRz7nlowc77okFe0eaqcJiJLvnlTBYCEW41IvD3Mw6wnhOLTQuuEjDxuHmUIb6KWiIIX0bLLwrdYu9HsYP2kw4Aqz8DJr9T2zjzvD3YvbmLT5ggY3gHqh9u4Olg5UmYwzEdfEQ65r5sQrlfESn x-microsoft-antispam: BCL:0; ARA:14566002|8062599006|461199028|7092599006|19110799006|8060799009|15080799009|56899033|102099032|1602099012|440099028|3412199025|4302099013|10035399007|18061999006; x-microsoft-antispam-message-info: =?us-ascii?Q?zzqhJONUMLcFTrdiq8cJo8HIk9Yz9RzYVvMOf8Oceml/iVA63aeuyy915t87?= =?us-ascii?Q?DyvWK5qlfjhhCfRDLtyFzzotBXMTD4JPRSUmiHbO6sxFmu7lSBbQomM7q1QU?= =?us-ascii?Q?VlIF21QhDFIEthMij5nPEqQ3+r6+h3/YphvaIfZaSLti8nMjHDKy5B5OOXI3?= =?us-ascii?Q?19sANQF6pUnv0biNQ40oJ8k8MpNykAImsv6J4V6iZ0kUCaCOk4gaP1MQ8iE/?= =?us-ascii?Q?GE+ecf/+vLNJkxD6KAy2uSKfftG+9FHYwosd0tdNRjpA+ABBLuqTYVDV8eIe?= =?us-ascii?Q?YSFPKqQuMg3O7XZN5wSjnvURJOrad/tmDrX4IaGHSKpiX/bSh8OqHzqrRBsW?= =?us-ascii?Q?dA9BanRMiwyty37sGADxEn9Mq/2xUSdjRoDWYrHCb8VinzOH2yCI44cqhtBb?= =?us-ascii?Q?4v8aN0uPH9bj7xGkuJm4DhJ1o9sC3XZYcG82kwHGSvb0j1wGwMtdAXDbegFX?= =?us-ascii?Q?tGOKsQpk7ueArtkVwgwRASBP551rdv0cZaHr1WVV3h8zNBOWgclVjBHC7en8?= =?us-ascii?Q?9i/Zk+ipOFrVlqhWXkmRXI9euFdIQirL622Wlro0UHw4dKMff7yTuAtYQGJ4?= =?us-ascii?Q?UtQ9RYx0Mt/LLO98hCliybmNV2yNjnGjalWvi4hKkdFgm88CssWIhD32lBqX?= =?us-ascii?Q?alDGwwz9K9RFfuhDqk7y/uGL7+kmDTD0q8k3cAke3fj87AqZEOjObn6GzeKc?= =?us-ascii?Q?QGEnh0ZBuU+yQ2JpJ7wUK+Jt+qGtydhy8pVatJMwXcbVN5ToOT9v8URXGwxH?= =?us-ascii?Q?8cD9JNkwdtv425MHbahMUSqDaJMWVuRikPchSab/5FATvtM7kPF60Oq4Bohz?= =?us-ascii?Q?DjfdlB6eQVOFImcBrvLaJI/XWY6uYde6BigsAAkMo1Ohlavc9DR8cASb+Gpu?= =?us-ascii?Q?V+xJYNsa2ua8DIfbnQX2Fti/zkrEaD+tu2smFq428J9Ha/1hNiea8YhI6Ngv?= =?us-ascii?Q?vNQtymQTY6XmT8+Bx2+Ia5GupClROdki/M4wCVHJCyF2YLPd4T4bbsHD2Voe?= =?us-ascii?Q?gQtMpCGczKm83guVLiDkUN22DaBw2OfW/YAw1qERxAIwkMW8F10AFTi/G4Ag?= =?us-ascii?Q?nvlRrdc7C+TNvy1E7iruZNEGXsOl2JB3HeL0lWJvYZijXSBYqRmc3aTXnuzy?= =?us-ascii?Q?STtDnRyuUoyhTprpXH2ARmfWbQ7E4BG6mR88MIXGDTHRalLI+gmXpRgF04IA?= =?us-ascii?Q?aBBPhjjhge2DO2KkFv1XGOZ13RNygY44WK5temgP+2ecsIb94YWCcBkky+zF?= =?us-ascii?Q?UYyZHIYkTB7+yLppZlqqpPhD+hIIS1uQbn6WPXF8VQ=3D=3D?= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?IdzY23qr0JA7KwvCcz/mLhsog8IGNlnKYSrfVzeHsFUUjpiDKQZo2Xxu4uoS?= =?us-ascii?Q?SOk9yZs1da8q4DR6xn79r9L5JxJJ5dQUSsWFoXV75YfFtlB/Xp5UG3YA58xl?= =?us-ascii?Q?/sxKMhPyrqaKPeQODR2RDiVTDdzSQOkAjsqoGgqQ/qtTw3dBACopLoQlZsiC?= =?us-ascii?Q?OAnVxXDYxbicStxdZ6eP3C9mhZzvJIZKxl3V5Isl7vJalZQilTVVFf6UAmke?= =?us-ascii?Q?AiWThmnkNgkFYCntzli48a50Rs+i9Fg0OMLwke0rZFD5GrQdAG15kGVDA6rg?= =?us-ascii?Q?qGcSCdyTc+JOPc5OPCs6ruL+CcEd/bz+gtrfu03eGbv9N87DFVdBP3P0cNTG?= =?us-ascii?Q?hdmUePfaFQpvJIsVC2xCILBuek/BdTztH2T0yGKOCNMjHTcvITMfbNKUhexP?= =?us-ascii?Q?0lQV9FXS+0+r1SK9xM9KlltOR4aUbJa50WPMLY+aPwzBQX+igMgvrw4VhbG/?= =?us-ascii?Q?GlCdUpJcHS1af3z7WClg2nP/286yIB2KPfnVMqrQqAiz/6K4Os8FIkkQOpTH?= =?us-ascii?Q?eGRlgLuf4GplO4Md9S5+k2WSsZmphomDMRC8jyLSTgLp4xTteLUveceKD/d3?= =?us-ascii?Q?D5GuQhYWUKZymA2dP2ZEenZuU3Jtfoq+HmQ9r6NhAC7ZlGp/GrnW1mFNB8ll?= =?us-ascii?Q?sNAj5pukuVYlWGjn3npM4hD3E8NhnCjLpKqyGZKsVmOYJc0QXRah4JN8MPy9?= =?us-ascii?Q?u+PPUB6bBmwl5CpvGbEFbZUqcmHvtdoLA4VMQKybuPXyxrZKM/y+4ScrqtP7?= =?us-ascii?Q?rTXQT1JZIIb2qdTtFQXTAdHyF268k8rXVFiJU9rJGgIuhVXmLiGiSwwxlR0C?= =?us-ascii?Q?WGXok8shj+MwTGkBjQ8slouMES7zOXra0Ohta7TH194eF6kySCVVthYRye9w?= =?us-ascii?Q?JSZY0O28aaWHNGr/cOYtn7znBwnTE2ulK4RivwzjTxZ88Vn/YZ2hAXVta1qz?= =?us-ascii?Q?fc5qIOnnxVG69tdHYrqriWkJVrYEkzTyEKwfhrXcbk3zMiAgblOgk2ezAEZ+?= =?us-ascii?Q?jF4FsHj0fokU+K24Icxy3X4SETyXMBaK4iV0Fk0uKx9eBrAuSgrknFrXf79z?= =?us-ascii?Q?sPqgBEZBuV2f87q+w/EKR/EVekMZcERZf1HC7xhx1lc7bjTnjsWJoA2PFA3x?= =?us-ascii?Q?t+cwhIz2I7MdKfvJC0iXIsehlXEtmMh+UudvBs9PXUT3DWz5sKfCpqsWTV5l?= =?us-ascii?Q?v/rLYq9Cum1zyMTzsLz3VM5k7aX3H+Ttlxz564o3jqrqw4hTx4Uic54tJTw?= =?us-ascii?Q?=3D?= MIME-Version: 1.0 X-OriginatorOrg: sct-15-20-8534-20-msonline-outlook-c7cf3.templateTenant X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: e04db6f2-163c-4629-b871-08dda2b965fa X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jun 2025 16:12:11.9640 (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: LV3P223MB1113 Subject: Re: [FFmpeg-devel] [RFC] Subtitle Filtering Ramp-Up 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: > -----Original Message----- > From: ffmpeg-devel On Behalf Of Lynne > Sent: Dienstag, 3. Juni 2025 18:00 > To: ffmpeg-devel@ffmpeg.org > Subject: Re: [FFmpeg-devel] [RFC] Subtitle Filtering Ramp-Up > > You don't get to say "oh, there were no more objections, so it was fine" If you do have an objection, please elaborate: - what specifically you are objecting - for which reason you are objecting it - how you think it should be done instead > or "the use is evident" - Please explain what is unclear and not evident to you about the field named "repeat_sub" > after the mess that your original patchsets were. Please elaborate in which way the patchset was "a mess"? > You're still not using the native time fields, Please read the references documentation about AVSubtitleFlowMode. It provides clarity about the requirement for those timing fields, just like noted in the text. > nor the packet buffers, We can dig up the earlier conversations about it and the conclusions that were made, then we will see whether I was mistaken or not by saying that there weren't any remaining objections in this regard. > which is a very hard NAK from me. I do not have the impression that this was a serious review or response, tbh. Best regards sw > On 03/06/2025 23:20, softworkz . wrote: > > Hello everybody, > > > > [just deleted a whole page of introduction text that was > > essentially pointless] > > > > Getting right to the point, I will give it once another try, > > rework and resubmit an updated version of the subtitle filtering > > patchset, including all improvements and fixes that have been > > made in the meantime. > > > > To avoid unnecessary work, it would be great to get one > > crucial part settled up-front. > > > > > > New fields on AVFrame for Subtitle Filtering > > ============================================ > > > > Some of them are used from so many places, that it's a really > > tedious job to change them, hence I'd like to get this cleared-up > > before. > > > > Let's go through them: > > > > > > - enum AVMediaType type; > > This had never been questioned, it should be clear why it's needed > > > > > > - unsigned num_subtitle_areas; > > - AVSubtitleArea **subtitle_areas; > > There were extensive discussions about why the data isn't stored in > > the video buffers, but eventually there was no more objection > > > > > > - AVBufferRef *subtitle_header; > > The reason why the ASS header needs to be moved around has been > > explained and wasn't objected eventually > > > > > > - int repeat_sub; > > The use case is evident. But I have seen that a number of similar > > fields have been removed meanwhile and replaced by flags. > > So, the question here would be whether this should also be migrated > > to a flag? > > > > > > - Time Fields > > This has been the one most discussed topic, but nothing has > > changed in this regard: it requires a separate start and a > > separate duration field for subtitles. > > There's one improvement I make, which is the addition of a flow_mode > > field. I'll explain the details further down below. > > > > My preferred way for including the field in the AVFrame struct > > used to be a sub-struct - simply because it unclutters the list > > of AVFrame members: > > > > struct SubtitleTiming > > { > > int64_t start_pts; > > int64_t duration; > > AVSubtitleFlowMode flow_mode; > > > > } subtitle_timing; > > > > > > The same could be done for the other fields: > > > > struct Subtitles > > { > > unsigned num_subtitle_areas; > > AVSubtitleArea **subtitle_areas; > > AVBufferRef *subtitle_header; > > > > } subtitles; > > > > > > Or all in one: > > > > struct Subtitles > > { > > unsigned num_subtitle_areas; > > AVSubtitleArea **subtitle_areas; > > AVBufferRef *subtitle_header; > > > > int64_t start_pts; > > int64_t duration; > > AVSubtitleFlowMode flow_mode; > > > > } subtitles; > > > > > > > > Of course, they can also be added as flat members, but will > > require a prefix then, like: > > > > int64_t subtitle_start_pts; > > int64_t subtitle_duration; > > AVSubtitleFlowMode subtitle_flow_mode; > > > > > > Please let me know which way you would deem to be most suitable and > > whatever thoughts or questions you might have beyond this. > > > > > > > > Subtitle Flow Mode > > ================== > > > > Please see the list and explanation of flow modes here: > > https://github.com/softworkz/SubtitleFilteringDemos/issues/4 > > > > This is not something conceptually new. It has always existed, but just > > implicitly behind the scenes and you had to know about it in some way > > for creating working FFmpeg command lines, because not > > every subtitle decoder, neither every subtitle filter nor every subtitle > > encoder is compatible with each other, even when there's a match in > > subtitle type (text/bitmap). Actually, it also needs the flow modes > > to match or be compatible. In the original set, it just failed in those > > cases or deadlocked. > > > > Making it explicit now in the form of the AVSubtitleFlowMode enum > > provides a number of benefits: > > > > - It finally provides an understandable explanation for why those two > > extra timing fields are needed > > > > - It makes clear what I had continuously failed to explain > > > > - By giving names to the modes, it will be much easier to understand > > and talk about > > > > - It allows to provide better feedback to users in case of error, > > like writing out something like "incompatible flow modes" > > > > - It will be possible to simplify usage: By including this as > > a parameter in filter negotiation, we will be able to perform > > auto-filter insertions in cases where its reasonable. > > > > > > Please let me know about your thoughts! > > > > Best regards, > > softworkz > > > > > > _______________________________________________ > > 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". > _______________________________________________ > 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". _______________________________________________ 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".