VASurface to OpengGL Texture and other questions

Jorge Fernandez Monteagudo jorgefm at cirsa.com
Thu Mar 19 08:27:47 PDT 2015


Hi Victor,


>> There has been a lot of work on gstreamer-vaapi lately.
>>
>> If you use gstreamer 1.5 (current master) and gstreamer-vaapi 0.5.11 (current
>> master too), you'll have to specify EGL/GLES2 in order to use glimagesink:
>>
>> $ GST_GL_WINDOW=x11 GST_GL_API=gles2 GST_GL_PLATFORM=egl \
>>      gst-play-1.0 big_buck_bunny_1080p_h264.mov --videosink=glimagesink --interactive
>>
>> (my hardware doesn't support mpeg4)
>>
>> GLX/OpenGL doesn't support "zero-copy" (emphasis in the quotation marks) with
>> glimagesink, because the display and the GL context is not shared in that case
>> (https://bugzilla.gnome.org/show_bug.cgi?id=745233).
>>
>> But, you can use clutterautovideosink since it works in the same thread, so
>> there's no need to handle the GL context:
>>
>> $ gst-play-1.0 big_buck_bunny_1080p_h264.mov --videosink=clutterautovideosink
>>
>>
>> If you use gstreamer-vaapi 0.5.11 (current master) with gstreamer 1.4 and
>> clutter-gst3, mostly it will work with clutterautovideosink, such as above.
>>
>> With glimagesink there are some issues with the auto-negotiation (the decoder
>> pushes frames without link to the next element) when using playbin, but your
>> crafted pipeline should work, thought "zero-copy" is not guaranteed:
>>
>> $ gst-launch-1.0 filesrc location=big_buck_bunny_1080p_h264.mov ! qtdemux ! vaapidecode ! glimagesink
>
>UPDATE:
>
>You can use glimagesink in gstreamer 1.4 and gstreamer 0.5.11 but you have to
>disable the dinterlace and the soft-colorbalance:
>
>$ gst-launch-1.0 playbin uri=file:///patterns/big_buck_bunny_1080p_h264.mov video-sink=glimagesink flags=0x17

I've just installed gstreamer 0.5.11 with your patch to be able to be used with VA-API 0.35.0 but your pipeline is not working for me:

$ gst-launch-1.0 playbin uri=file:///home/jorge/develop/harware/videos/big_buck_bunny_1080p_surround.avi video-sink=glimagesink flags=0x17
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
libva info: VA-API version 0.35.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_0_32
Missing element: AC-3 (ATSC A/52) decoder
WARNING: from element /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0: No decoder available for type 'audio/x-ac3, framed=(boolean)true, rate=(int)48000, channels=(int)6, alignment=(string)frame'.
Additional debug info:
gsturidecodebin.c(939): unknown_type_cb (): /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0
libva info: va_openDriver() returns 0
Got context from element 'vaapidecode': gst.vaapi.Display=context, display=(GstVaapiDisplay)NULL;
Got context from element 'glimagesink0': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayX11\)\ gldisplayx11-0";
ERROR: from element /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSink:glimagesink0: Failed to upload buffer
Additional debug info:
gstglimagesink.c(777): gst_glimage_sink_prepare (): /GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSink:glimagesink0
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...


Maybe the VA-API 0.36 is a must ?

Regards,
Jorge

Este mensaje se dirige exclusivamente a su destinatario y puede contener información privilegiada o CONFIDENCIAL. Si no es vd. el destinatario indicado, queda notificado de que la utilización, divulgación y/o copia sin autorización está prohibida en virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente por esta misma vía y proceda a su destrucción.

This message is intended exclusively for its addressee and may contain information that is CONFIDENTIAL and protected by professional privilege.
If you are not the intended recipient you are hereby notified that any dissemination, copy or disclosure of this communication is strictly prohibited by law. If this message has been received in error, please immediately notify us via e-mail and delete it.


More information about the gstreamer-devel mailing list