[Libva] gst-vaapi, uploading to own textures
Víctor M. Jáquez L.
vjaquez at igalia.com
Fri Oct 2 02:02:23 PDT 2015
On 09/30/15 at 05:30pm, Dolevo Jay wrote:
> Hi,
Hi,
First, this is not the correct mailing list to discuss these topics. Please
subscribe to the gstreamer mailing[1] list and start a thread there.
1. http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
> I have decided to go for glimagesink path and I have get the basic
> pipeline up and running with gstreamer 1.6 in my platform. Here is my next
> questions.
>
> 1. We use triple buffers in our application. As far as I could read from the
> gst-vaapi code, the textures are created in gl_create_texture function in
> gstvaapiutils_glx.c. However, I couldn't find out where this is used
> exactly in gst-vaapidecode. Can anybody help?
gstvaapidecode doesn't create any texture. It provides a meta [2] that could
be used by downstream to upload the surface into a texture.
2. http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstvideometa.html#gst-video-gl-texture-upload-meta-upload
>
> 2. I see in gstglimagesink code that many times next_buffer and next_buffer2
> or similarly stored_buffer[0] and stored_buffer[1] are used. Are we using
> dual buffer there?
I don't know.
>
> 3. Is my understanding correct that vaapidecode creates the textures and
> uploads them and gstglimagesink draws them?
Nope. The gstglimagesink upload the buffer, provided by gstvaapidecode, using
the gst_video_gl_texture_upload_meta_upload(). This function receives the
texture id, created by gstglimagesink. This only work for OpenGL and OpenGLES,
but not for OpenGL3 currently.
If you read the code of sdlshare2.c[3] you'll notice that the client shares
the GLContext to the sink, hence glimagesink creates the required textures
using the client's GLContext.
3. http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/tests/examples/gl/sdl/sdlshare2.c
Regards,
vmjl
More information about the Libva
mailing list