Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
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".

  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