On Jan 20, 2011, at 9:14 AM, Philip Jägenstedt wrote:

>>> 
>>> (Since there is some overhead with each HTTP request, one must make sure
>>> that they are not unreasonably small.)
>>> 
>>> When HTTP byte ranges are used to achieve bandwidth management, it's hard
>>> to talk about a single downloadBufferTarget that is the number of seconds
>>> buffered ahead. Rather, there might be an upper and lower limit within which
>>> the browser tries to stay, so that each request can be of a reasonable size.
>>> Neither an author-provided minumum or maximum value can be followed
>>> particularly closely, but could possibly be taken as a hint of some sort.
>> 
>> Does it actually make sense to specify the read-ahead size, or should it
>> simply be a flag (eg. "unlimited", "small buffer" and "don't care")?  Is
>> there really a case for setting the actual read-ahead value directly?  In a
>> sense, that seems akin to allowing web pages to control the TCP buffer sizes
>> used by the client's browser--it's lower level than people usually care
>> about.
>> 
>> In particular, I'm thinking that most of the time all people care about is
>> "read ahead a little" vs. "read ahead a lot", and publishers shouldn't need
>> to figure out the right buffer size to use for the former (and very likely
>> getting it wrong).
> 
> I'm inclined to agree, and we already have a way to say "a little" 
> (preload=none/metadata) and "a lot" (preload=auto).
> 
> However, it'd be great if all implementors could agree on the same 
> interpretation of states. Specifically, this isn't required by the spec but 
> would still be helpful to have consistency in:
> 
> * effective state can only increase to higher states, never go from e.g. 
> metadata to none (it makes no sense)
> * there is a state - invoked - between metadata and auto for when the video 
> is playing
> * there could be a state between invoked and auto for autoplay, but if not 
> autoplay implies preload=auto
> * in the invoked state, a conservative buffering strategy is used by default
> * when paused in the invoked state, we need to agree on what should happen
> 
> If we could agree, then of course it should be documented somewhere, even if 
> it seems somewhat restrictive of the spec to mandate an exact behavior.

Perhaps the conservative buffering strategy should be client-side throttling 
after all. The pause-to-buffer argument several people put forward is a strong 
one - a big use case (perhaps more people pause b/c of this than b/c of all 
other reasons combined). Something like a downloadBufferTarget would be 
confusing and break this. Client-side throttling won't. 

- Jeroen

Reply via email to