[whatwg] HTML5 video: frame accuracy / SMPTE

Gregory Maxwell gmaxwell at gmail.com
Fri Jan 21 17:17:51 PST 2011

On Fri, Jan 21, 2011 at 7:27 PM, Silvia Pfeiffer
<silviapfeiffer1 at gmail.com> wrote:
> On Sat, Jan 22, 2011 at 9:48 AM, Gregory Maxwell <gmaxwell at gmail.com> wrote:
>> On Fri, Jan 21, 2011 at 5:25 PM, Silvia Pfeiffer
>> <silviapfeiffer1 at gmail.com> wrote:
>>>> The language I'd prefer is "fast".  Fast may be exact, or it might
>>>> just be to the nearest keyframe, or something in between. It might
>>>> just start you over at the beginning of the stream.
>>> That is putting a restriction on how the browser has to seek -
>>> something I'd rather leave to the browser in the general case where
>> No more than 'best' is, I suppose. I think you missed the argument I'm
>> making: I'm saying that it's perfectly reasonable to assume that "Best
>> effort" means "exact" in any seekable stream, because exact is best
>> and best is always possible.  This is the same kind of reasoning
>> sequence that allows you to conclude that "fast" requires the browser
>> to use the fastest.
> Except that "best effort" has a tradition in meaning "probably not the
> best possible way and inexact", while "fast" would imply to people
> that there is no faster way of doing it.

This is certainly not the implication it carries for me, but I don't
see any point in arguing it further.

>>> In the case of "fastest", the browser must then not do a seek. In the
>>> case of "don't care", it's up to the browser if it does the seek or
>>> not.
>> That was my thinking, but I find the consistency point raised by Glenn
>> to be concerning.
> If "fast" always means "the fastest possible way", then it will be
> consistent. It may mean that we need to specify it a bit more to be
> consistent, but it would mean that. While "default" would be a best
> effort and therefore cannot be expected to be consistent.

That is not always true.  If you're at frame 5 the _fastest_ possible
way to seek to frame 6 is to simply decode frame 6 (and probably also
the case for quite a few subsequent frames assuming that the decode is
fast and the data is in cache, while the nearest keyframes are not in
cache).   If you're at frame 800 then the fastest way to seek to frame
6 may be to start from frame three.

It's a toy example, I know. But I think it makes the point that
consistency has to be explicitly decided for any modes which are not
implementation dependent.  It might be reasonable enough to say "if
you need guaranteed consistency, use the exact mode".

> I could live with a seeking method without keyframe seeking. But frame
> accurate seeking needs to be possible. So we end up with:
> * default ("best effort")

I have no complaints about these. I still think we've left the
inaccurate but right direction case uncovered. And perhaps its
over-design, but its also functionality that exists in current media
players. E.g. mplayer will do correct-direction inaccurate seeks,
though this may just be an artifact of the tools not having decent
exact seeking logic at all.

More information about the whatwg mailing list