Re: Time in video file

Alexey Fisher <[email protected]> Wed, 16 Mar 2011 07:28:53 +0100
Newsgroups gmane.comp.multimedia.ogg.theora.devel
Message-ID <1300256933.5869.1.camel@zwerg>
Am Dienstag, den 15.03.2011, 16:07 -0400 schrieb Gregory Maxwell:
> On Tue, Mar 15, 2011 at 3:54 PM, Richard Watts <[email protected]> wrote:
> >  But you're still using (many!) more bits than you need to represent
> > what is, in essence, a timer. Worse, you have now lost any information
> > you ever had as to the actual underlying frame rate. Even worse, the
> > decoder now needs to make some sort of decision as to which of these
> > frames it should actually output (unless you really do have VSYNC =
> > 1kHz in which case I want your monitor).
> 
> And yet a 32bit 1ms timer (which would probably wrap far too fast)
> attached to every vorbis frame, e.g. would impose 5kbit/sec. overhead
> (or twice that for 64bit counters) in the worst case.  Ogg avoids this
> by not attaching the granpos to every packet. But this means the
> special care must be taken in order to support variable rate things
> cleanly.
> 
> Of course, this can be improved by adding more special cases.
> 
> What cortado does for drop frames (zero byte frames) is that it just
> doesn't paint them. Why would it? They're drops. They don't change the
> output, they don't change the buffer states.
> 
> Of course, if the encoder outputs too many real frames and it falls
> behind, then it has to drop more. But thats just the normal mechanism
> for falling behind.
> 
> (Cortado does paint every two seconds or so even during drops, because
> the graphics api in use doesn't deal with damage completely, so it
> needs to periodically repaint in order to recover the screen)
> 
> [sniping a bunch of stuff that I find completely agreeable]
> 
> >  CBR gets you out of more of it, but as you observe, there is very
> > little to stop a VFR encoder emitting ghastly numbers of frames
> > (of course, that emission of ghastly numbers of frames is precisely
> > what you are suggesting for timekeeping, so I'd think it ungentlemanly
> > of you to then complain about it!).
> 
> There is a difference between a zero byte placeholder and a frame that
> takes work to decode!
> 
> Yes, it's an extra condition, but so is the logic required to decode
> frame durations elsewhere.

Can you please take look at this ticket:
https://trac.xiph.org/ticket/1730

This is exactly about this issue.
-- 
Regards,
        Alexey