Thanks Mathias, With respect to video playback and LayerBuffers:
- is it the client who allocates the buffer or does surface flinger allocate these at some point for the client to then use. - I don't understand your PMEM driver comment - are you saying that the client creates his own heap and own buffers using the PMEM device and that this is a different heap used by surface flinger's buffer allocation. - which APIs have become exposed and do you mean exposed to Applications developers as opposed to things in the platform? When I play a video, I see one call to registerBuffers and lots to post a buffer - do I infer from this that the client has created only one buffer and is continually re-posting it? On Fri, Feb 6, 2009 at 8:21 PM, Mathias Agopian <pixelflin...@google.com>wrote: > > 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 -~----------~----~----~----~------~----~------~--~---