On Jan 11, 2011, at 5:43 PM, Chris Pearce wrote:

> On 12/01/2011 2:22 p.m., Dirk-Willem van Gulik wrote:
>> On 12 Jan 2011, at 01:17, Chris Pearce wrote:
>> 
>>>> I cannot think of a format where this would in fact be the case - but for 
>>>> a few arcane ones like an animated push gif without a loop.
>>>> 
>>> WebM can be variable frame rate. At best the WebM container specification 
>>> [http://www.webmproject.org/code/specs/container/#track] lists the 
>>> FrameRate block as "Informational only", which presumably means the value 
>>> stored in the container can't be trusted.
>> Right - but is there a WebM decoder which is able to hand it off that way ? 
>> AFAIK they all use that value or select a default/measured rounded heuristic 
>> to solve flicker ?
>> 
> 
> Firefox 4 doesn't use the frame rate stored in the container for WebM. Each 
> frame is stored with its presentation time, and we request repaints as each 
> frame fall due for painting. The prevention of flicker is handled by our 
> graphics layer, video doesn't really participate in that, it just hands off 
> frames downstream when they're due for painting. We have plans to schedule 
> video frame painting more preemptively in future, but I imagine we'd still 
> use the presentation time encoded with each frame when we do that.
> 
  Video in WebKit is handled a similar same way. Media engines that decode into 
a bitmap signal the graphics layer when a new frame is available, and the new 
frame is composited overlapping page content during the next paint. Media 
engines that render into a hardware layer do so completely asynchronously. In 
both cases, the media engine is free to decode a whatever rate is appropriate 
for video file.

eric

Reply via email to