[Bug 731204] androidmedia: Implement zerocopy rendering

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Jun 25 03:46:24 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=731204
  GStreamer | gst-plugins-bad | git

--- Comment #22 from Andoni Morales <ylatuya at gmail.com> 2014-06-25 10:46:19 UTC ---
(In reply to comment #21)
> Created an attachment (id=279210)
 View: https://bugzilla.gnome.org/attachment.cgi?id=279210
 Review: https://bugzilla.gnome.org/review?bug=731204&attachment=279210

> androidmedia: add direct rendering support to amcvideodec
> 
> New version of the patch which uses the bufferpool proposed by glimagesink.
> 
> Amcvideodec takes care of rendering the surface to an external OES texture
> which is then converted to a 2D texture / RGBA.
> 
> There is still some issue to be addressed:
> 
> 1) playback is not smooth, it looks like some previous texture are redisplayed.
> It's even more visible when the gl bufferpool is forced to use only 2 buffers.
> Note that the whole rendering (update OES texture -> render to 2D / RGBA) is
> done within 2ms to 6ms.

The surface texture notifies when the frame is ready with
OnFrameAvailableListener, so you need to do the texture copy in this callback. 
http://developer.android.com/reference/android/graphics/SurfaceTexture.OnFrameAvailableListener.html

Add an event listener with JNI is tricky, at least I don't know an easy way of
doing it. You will need a subclass of SurfaceTexture in GStreamer.java that
listens to OnFrameAvailableListener and call the real C code callback that
copies the texture from there.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list