From: Soft Works <softworkz@hotmail.com> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> Subject: Re: [FFmpeg-devel] Politics Date: Sat, 18 Dec 2021 15:43:57 +0000 Message-ID: <DM8P223MB036565FBE4AF324B3CE43CC6BA799@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> (raw) In-Reply-To: <MrD6UvI--3-2@lynne.ee> > -----Original Message----- > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Lynne > Sent: Saturday, December 18, 2021 4:17 PM > To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > Subject: Re: [FFmpeg-devel] Politics > > 18 Dec 2021, 15:28 by softworkz@hotmail.com: > > > > > > >> -----Original Message----- > >> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Lynne > >> Sent: Saturday, December 18, 2021 2:33 PM > >> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org> > >> Subject: Re: [FFmpeg-devel] Politics > >> > >> Dec 18, 2021, 12:34 by softworkz@hotmail.com: > >> > >> > > >> > > >> >> -----Original Message----- > >> >> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Paul > B > >> >> Mahol > >> >> Sent: Saturday, December 18, 2021 11:27 AM > >> >> To: FFmpeg development discussions and patches <ffmpeg- > devel@ffmpeg.org> > >> >> Subject: Re: [FFmpeg-devel] Politics > >> >> > >> >> On Wed, Dec 15, 2021 at 2:34 PM Soft Works <softworkz@hotmail.com> > wrote: > >> >> > >> > > >> > [..] > >> > > >> >> > > > Once for the facts: the subtitle_pts field in AVFrame exists > since > >> >> > > > V5 of my patchset, which I have submitted on 2021-09-12. > >> >> > > > This has been 3 months ago. Nobody had objected its existence > >> >> > > > until only 2 or 3 weeks ago. > >> >> > > > >> >> > > > >> >> > > This is really irrelevant, please stop insisting on hacks like > >> >> > subtitle_pts. > >> >> > > >> >> > New idea: > >> >> > > >> >> > I could remove the three fields (subtitle_pts, subtitle_start_time, > >> >> > subtitle_end_time) from AVFrame and add it to AVSubtitleArea. > >> >> > > >> >> > How about that? It would allow the frame to be "clean" at least. > >> >> > > >> >> > >> >> > >> >> Yea, much better, But still original issue is not solved. > >> >> > >> > > >> > Yes, correct, this changes the location but not the logic. > >> > But this is something I could surely do. It's a bit of work, > >> > but it would be safe to do without breaking everything into > >> > dysfunctional pieces ;-) > >> > > >> > It wouldn't be my first choice since there can be multiple > >> > AVSubtitleAreas while only those values from the first one > >> > would be relevant. But when this would help to increase the > >> > acceptance, then it will be fine for me. > >> > > >> > Another possibility I had thought about, might be to leave > >> > them at the side of AVFrame, but put them in a struct field > >> > of AVFrame named 'subtitle_timing', which itself would have > >> > the fields pts, start_time, end_time. > >> > > >> > > >> > I did some research regarding the use of the start_time > >> > field. While it is used and cannot be dropped, I found > >> > that the following changes would be possible with moderate > >> > effort: > >> > > >> > - change the time base of start_time and end_time > >> > to the same like subtitle_pts (AV_TIMEBASE_Q) > >> > - rename subtitle_start_time to subtitle_start_offset > >> > - rename subtitle_end_time to subtitle_duration > >> > and adapt the logic everywhere where it's used > >> > > >> > In combination with the subtitle_timing struct idea it > >> > could then look like: > >> > > >> > frame->subtitle_timing.pts > >> > frame->subtitle_timing.start_offset > >> > frame->subtitle_timing.duration > >> > > >> > or even eliminate the pts naming and do like: > >> > > >> > frame->subtitle_timing.start > >> > frame->subtitle_timing.start_offset > >> > frame->subtitle_timing.duration > >> > > >> > or still move them to AVSubtitleArea, which wouldn't > >> > be that nice to access and require to check the > >> > subtitle_area_nb value wherever it needs to be > >> > accessed: > >> > > >> > frame->subtitle_areas[0].start > >> > frame->subtitle_areas[0].start_offset > >> > frame->subtitle_areas[0].duration > >> > > >> > > >> > Please let me (all) know whether one of those suggestions would > >> > be an acceptable compromise. > >> > > >> > >> Renaming the fields doesn't get around the issue that they're > >> still overriding fields with a different meaning from the > >> AVFrame structure. That's not really a compromise since they're > >> still there. > >> > > > > I'm suggesting those things that are doable. > > > > > >> I also am not accepting a hardcoded timebase of microseconds. > >> Rounding really matters for subtitles, since presenting them > >> a frame early or late is unacceptable, so I'd like a time_base > >> field for the timestamps. > >> > > > > I can't follow. With 120fps, the frame duration is 8300 microseconds. > > And you say that's not enough to hit the right frame? > > > > None of the subtitle storage formats has a precision higher than > > milliseconds, often it's less. > > > > Finally, a fixed time base avoids frequent re-scaling and that > > in turn means less rounding errors. > > > > A timebase completely eliminates all scaling. > Bitmap subtitles exist, > as well as ATSC subtitles There are like 2 or 3 characters in each frame. Sometimes they are shown as they are coming in, sometimes only when a line is completed, sometimes needs to wait for subsequent frames before emitting new characters. This is really not a high-precision thing. , which > are embedded in frames, and therefore have the same timestamp > and timebase as the frames themselves. Forcing them to be > rescaled to whatever timebase you thought is good enough is > a bad, inflexible design choice. What precision do you want? This is nothing like audio. You just need to hit one frame or the next frame, nothing in-between because there is nothing in between. So what's this about? Videos with 1 Million fps? > Also, some text subtitle formats have a timestamp precision > much greater than a millisecond, like Ogg Kate. But only because it uses the same bitstream layout as for audio and video. > We don't > support it yet, but you never know. An API must be able to > handle everything. It will handle this perfectly fine. I'm afraid, but IMO you are trying to construct cases which do not even have a theoretical value. Kind 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".
next prev parent reply other threads:[~2021-12-18 15:44 UTC|newest] Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <8dbfd345-c661-459e-b242-94830107eae3@www.fastmail.com> [not found] ` <DM8P223MB0365510C72E8CFEF027FF97FBA749@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> [not found] ` <MqpKkF_--7-2@lynne.ee> [not found] ` <DM8P223MB0365FEDCCEFB370D20979CF5BA749@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> [not found] ` <c2f7048d-a1b6-253e-8a50-7fdf9a34ada3@canta.com.ar> [not found] ` <DM8P223MB036596CACBB6509CB1AE78CBBA759@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM> [not found] ` <CAPYw7P64=axtAC0-8Ux+1d+f8WEseuWk9OkhmbAnNWp-eRpq8A@mail.gmail.com> 2021-12-15 13:34 ` Soft Works 2021-12-18 10:26 ` Paul B Mahol 2021-12-18 11:34 ` Soft Works 2021-12-18 13:32 ` Lynne 2021-12-18 14:28 ` Soft Works 2021-12-18 15:16 ` Lynne 2021-12-18 15:43 ` Soft Works [this message] 2021-12-18 17:53 ` Lynne 2021-12-18 18:16 ` Daniel Cantarín 2021-12-18 18:30 ` Hendrik Leppkes 2021-12-18 18:49 ` Soft Works 2021-12-18 20:05 ` Daniel Cantarín 2021-12-18 20:41 ` Soft Works 2021-12-19 15:16 ` Michael Niedermayer 2021-12-19 18:23 ` Soft Works 2021-12-19 18:31 ` Soft Works 2021-12-20 14:49 ` Michael Niedermayer 2021-12-20 22:35 ` Soft Works 2021-12-20 23:20 ` Soft Works 2021-12-21 18:38 ` Michael Niedermayer 2021-12-22 10:23 ` Soft Works 2021-12-18 17:59 ` Daniel Cantarín 2021-12-18 15:41 ` Daniel Cantarín 2021-12-20 13:48 Daniel Cantarín 2021-12-20 14:06 Daniel Cantarín 2021-12-20 15:23 ` Michael Niedermayer 2021-12-22 13:29 ` Soft Works 2021-12-22 19:54 ` Michael Niedermayer 2021-12-22 20:17 ` Soft Works 2021-12-20 16:27 Daniel Cantarín
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=DM8P223MB036565FBE4AF324B3CE43CC6BA799@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM \ --to=softworkz@hotmail.com \ --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