[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