[gst-devel] Querying GL context pixel format

Andrey Nechypurenko andreynech at yahoo.com
Wed Nov 4 16:36:18 CET 2009


>>>> set GST_GL_WINDOW_DEBUG=1
>>>> before launching the pipeline, it should output some debug
>>>> informations about
>>>> success or failure when sharing gl contexts.
>>
>>Sorry for such a question, but where this output goes on
>>Windows? I do not see anything neither in console nor in MSVC
>>output window where debug messages are usually printed. Or maybe
>>it is because I am using "release" version of gstreamer DLLs?
>
>open a console then just type:  set GST_GL_WINDOW_DEBUG=1
>(as you can also do: set GST_DEBUG=gldisplay:3
>and
>set GST_GL_SHADER_DEBUG=1)
>then enter your pipeline as usually.

Hmm... My self-compiled gst-launch actually generates debug
output, but my GUI application not.

>have you tried this build
>http://www.gstreamer-winbuild.ylatuya.es/doku.php?id=download ?
>The debug works with this build.

I built it myself as they described here:
http://www.gstreamer-winbuild.ylatuya.es/doku.php?id=developers

>>> What I can say, if the debug is : failed to share gl context,
>>> make sure that the
>>> Qt GL context is not current in any thread when sharing it
>>> with gstreamer. (see cluttershare

>>> and sdlshare (from git) examples to see how to do that)
>
>>Well, I am explicitly calling wglMakeCurrent(0, 0); before
>>initializing gstreamer to unset Qt context. Since it also works
>>on Linux, I assume that the initialization sequence is
>>correct. That is why I was looking for other reasons which might
>>prevent context sharing, i.e. different pixel formats.
>
>No pb about pixel format because it the same screen. So even if
>the input values are differents then the s&ame is
>choosen. Something like that.

Ok. I see.

>>Nevertheless, is not it a kind of co-accidence that on Linux Qt
>>initializes the context in exactly the same way as gstreamer
>>does? And do not you think that the more robust way would be to
>>query the context created by gstreamer and explicitly instruct
>>Qt (or whatever other library) to create the same context format
>>to ensure that sharing will work? If yes, then the corresponding
>>API or callback might be necessary as I mentioned in my previous
>>email.
>
>Actually I think it's just a symetric pb. But it could be a
>possibility.  
>Well about the pb, on window the sharing can be done after
>context creation, (on linux, it's done when creating a context)
>but bettween the creation and the sharing, no texture, no
>shaders, no fbo or nothing else must be created before sharing
>the 2 contexts. (that's why the possibility the share the gl
>context after the creation has (as far as i know) no sense.
>Anyway, you could use on opengl debugger and see if on windows,
>qt is creating a texture or anyelse before sharing it.

Thanks for the explanations. I will continue investigating what
is going on.

Regards,
Andrey.


      




More information about the gstreamer-devel mailing list