Hello,

On Fri, Feb 6, 2009 at 5:36 AM, F H <expelia...@googlemail.com> wrote:
>
> Hi Mathias!
>
> Can you outline how LayerBuffers are intended to work in SurfaceFlinger.

They are layers that get the content from "somewhere else". The
content is pushed from an external entity as it becomes ready.

> - Are these buffers still allocated by SurfaceFlinger?

no.

> - Does it enable for example multiple buffers to be queued for display
> (rather than a double buffered approach).

yes and no. SurfaceFlinger always displays the most recent buffer
next. So if 5 buffers are pushed in a row, only buffer 5 will be shown
at the next update (next frame).

> - Is the intention of them to provide support for streams of video
> data (e.g. from decoded video).

yes.

> - Is the intention that these buffers will get locked/unlocked and
> drawn to by a client, or does Android differentiate between surfaces
> used for general rendering and those used for say video playback.

no. It is an error to call lock/unlock on these surfaces.

> - With respect to video playback does Android expect to be able to say
> decode a video frame and then allow for example some rendering to be
> added to the buffer before being presented for display?

no.

> - Can you describe how video playback relates to SurfaceFlinger?

The video decoder produces buffers which it pushes to SurfaceFlinger
via ISurface. All these APIs are private. And in cupcake we added a
permission to have access to this API (we should have done it before,
it was an oversight).
In order to be h/w accelerated, these buffers have to be allocated
"properly", otherwise, surfaceflinger reverts to software rendering.
Currently there is only one proper way to allocate them, and it's to
use the pmem driver.
No need to mention that these APIs are far from being set in stone.

> - What mechanisms are used to ensure that video frames are displayed
> at the correct time by SurfaceFlinger?

None. The most recent buffer is displayed as soon as possible,
typically within the next 16 ms.

mathias

--~--~---------~--~----~------------~-------~--~----~
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting
-~----------~----~----~----~------~----~------~--~---

Reply via email to