Gstreamer GL threading question.

ionutneicu ionut.neicu at gmail.com
Wed Jul 22 01:14:49 PDT 2015


Looking at testegl.c  "cube" sample inside gst-omx 1.2.0, I think the OpenGL
APIs are called from 2 separate threads. The main thread does the OpenGL
initialization and frame rendering, while GstGLContext thead
creates/destroys the textures needed by OpenMax's eglCreateImageKHR with
glGenTexutres/glDelTexures from the context's thread ( eglWindow's mainloop
). I don't see any explicit context activation/deactivation code to be
called there so can somebody explain me what is going on ?

I'm testing on RPI using gst-omx 1.2.0 with gstreamer and plugins 1.4.4 and
a pipeline like:

filesrc ! matroskademux ! h264parse ! omxh264dec ! glcolorscale ! queue !
appsink


There are several issues with this separate thread approach that I would
discuss in a separate topic, for the moment my biggest concern is the
reliability because I want to play things in a loop by cleaning and
recreating pipeline for each playback, so the pipeline cleanup should be
very precise. I want to preserve GstGLContext, rendering thread and related
things like display, surface, window, across playbacks so while rendering
thread works forever ( it will display some animations in top of video no
matter the video is playing or not ), I think it may conflict with pipeline
cleanup code that calls glDeleteTextures() in the context's thread. 

What do you think ?



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Gstreamer-GL-threading-question-tp4672785.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list