[gst-devel] Querying GL context pixel format

Andrey Nechypurenko andreynech at yahoo.com
Wed Nov 4 14:14:10 CET 2009


Hi,

> 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?

> I had no time to look into your example. I am still busy right now.

No problem. I've learned a lot trying to fix the problem myself and proud that it works at least on Linux :-) . 
None of these would happen if you fixed the error earlier :-) . 

> 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.

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.

Sincerely,
Andrey.


2009/11/4 Andrey Nechypurenko <andreynech at yahoo.com>

>Hi Folks,
>
>>I am currently working on Qt-based application which uses OpenGL context (texture) sharing technique to display video on 3D scene. I am using approach similar to the one implemented in cluttershare example from gst-plugins-gl. Currently it runs on Linux but does not work on Windows. I believe that the reason is that context sharing between Qt and Gstreamer does not work. According to the documentation, only contexts with the same pixel format could be shared. That is why I was looking for the way to query pixel format used with GL context created by gst-gl plugin and did not found it yet. I guess it just does not exists :-) .
>
>>So the question I would like to ask is whether it would make sense to add some kind of API to make it easier to access GL context created? For example, it could be callback set via certain property which is called right after the initialization step and provide corresponding handles (HWND, HDC, HGLRC or any other platform-specific handles similar to those stored in _GstGLWindowPrivate structure) which could be used with platform and GL API to query required information?
>
>>I would also appreciate any comments or pointers to the possible solution directions without extending the property set or API.
>
>>Regards,
>>Andrey.
>
>
>
>
>>------------------------------------------------------------------------------
>>Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
>>trial. Simplify your report design, integration and deployment - and focus on
>>what you do best, core application coding. Discover what's new with
>>Crystal Reports now.  http://p.sf.net/sfu/bobj-july
>>_______________________________________________
>>gstreamer-devel mailing list
>gstreamer-devel at lists.sourceforge.net
>https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>



      




More information about the gstreamer-devel mailing list