From: "softworkz ." <softworkz-at-hotmail.com@ffmpeg.org> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] [RFC] Subtitle Filtering Ramp-Up Date: Tue, 3 Jun 2025 16:12:11 +0000 Message-ID: <DM8P223MB0365A8D815FB658DA9EE7272BA6DA@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> (raw) In-Reply-To: <d0b5ae64-2947-498c-aaba-0f1813ed80c2@lynne.ee> > -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> 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".
next prev parent reply other threads:[~2025-06-03 16:12 UTC|newest] Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top 2025-06-03 14:20 softworkz . 2025-06-03 16:00 ` Lynne 2025-06-03 16:02 ` James Almer 2025-06-03 16:40 ` Nicolas George 2025-06-03 16:48 ` James Almer 2025-06-03 16:51 ` Devlist Archive 2025-06-03 17:59 ` Nicolas George 2025-06-03 16:12 ` softworkz . [this message] 2025-06-03 16:12 ` Devin Heitmueller 2025-06-03 16:43 ` Nicolas George 2025-06-03 17:07 ` softworkz . 2025-06-03 17:15 ` Devlist Archive 2025-06-03 17:16 ` Devlist Archive 2025-06-03 17:19 ` softworkz . 2025-06-04 15:49 ` Rémi Denis-Courmont 2025-06-04 17:13 ` softworkz . 2025-06-04 17:25 ` Nicolas George 2025-06-04 17:31 ` softworkz . 2025-06-04 19:02 ` softworkz . 2025-06-03 17:17 ` softworkz . 2025-06-03 16:28 ` softworkz . 2025-06-03 18:02 ` Hendrik Leppkes 2025-06-03 18:34 ` Zach Swena 2025-06-04 0:01 ` Michael Niedermayer 2025-06-04 7:13 ` Nicolas George 2025-06-04 7:22 ` Diederick C. Niehorster 2025-06-04 7:25 ` Nicolas George 2025-06-04 17:24 ` softworkz . 2025-06-04 17:29 ` Nicolas George 2025-06-04 17:33 ` softworkz . 2025-06-04 17:35 ` Nicolas George 2025-06-04 17:40 ` softworkz . 2025-06-04 17:44 ` Nicolas George 2025-06-04 17:54 ` softworkz . 2025-06-04 17:57 ` Nicolas George 2025-06-04 18:11 ` softworkz . 2025-06-04 18:12 ` Nicolas George 2025-06-04 18:17 ` softworkz . 2025-06-04 20:42 ` Michael Niedermayer 2025-06-05 0:17 ` softworkz . 2025-06-06 14:32 ` Nicolas George 2025-06-06 14:50 ` Devin Heitmueller 2025-06-08 13:10 ` Nicolas George 2025-06-06 16:54 ` softworkz . 2025-06-07 16:19 ` softworkz . 2025-06-07 17:25 ` Kieran Kunhya via ffmpeg-devel 2025-06-07 17:45 ` softworkz . 2025-06-03 19:13 ` softworkz . 2025-06-04 7:34 ` Nicolas George 2025-06-04 1:16 ` softworkz . 2025-06-04 7:36 ` Nicolas George 2025-06-03 19:23 ` softworkz . 2025-06-04 7:33 ` Nicolas George 2025-06-04 18:35 ` softworkz . 2025-06-05 0:44 ` softworkz .
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=DM8P223MB0365A8D815FB658DA9EE7272BA6DA@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM \ --to=softworkz-at-hotmail.com@ffmpeg.org \ --cc=ffmpeg-devel@ffmpeg.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git