qtgstreamer build issues - Win32

Dinesh Kumar dineshkpadmanaban at gmail.com
Sat Aug 18 12:22:39 PDT 2012


Hi,

I have found out the issue for the behavior said in previous mail.

Here is the problem.
   -> GSTREAMER: My gstreamer plugins are linked against, libgstreamer-0.10*
-0*.dll and libgstbase-0.10*-0.dll* and etc.(please note *-0.dll*).
   -> QTGSTREAMER: I had to create gstreamer-0.10.lib, gstbase-0.10.lib,
gstvideo-0.10.lib, gstinterfaces-0.10.lib to build the qtgstreamer. cmake
"find_package" needed these files. The usage of above files made
qtgstvideosink.dll to load libgstreamer-0.10.dll(which is not present in my
PATH).

When I ran test applications, qtgstvideosink thrown error saying
that libgstreamer-0.10.dll is not present. I had to create the symbolic
link  libgstreamer-0.10.dll  -> libgstreamer-0.10-0.dll.

While running gst-launch, libgstreamer-0.10-0.dll is loaded and the first
loaded plugin registers the "Gstobject" successfully.
gstelement.c:

*       static *volatile gsize gst_element_type = 0;

            if (g_once_init_enter (&gst_element_type)) {

                   ....

                   _type = g_type_register_static (GST_TYPE_OBJECT,
"GstElement",


When  "qtgstvideosink" is getting loaded,
libgstreamer-0.10.dll(symbolic link of libsgtreamer-0.10-0.dll) is
loaded in another memory region as a copy(Not sure why windows loads
another copy for the symbolic links). Because of that, "GstObject" was
trying to get registered for the second time. Hence those errors were
thrown.


*Fix:*
   Made sure that .lib files are referencing the correct .dll files.
*    lib /def:libgstreamer-0.10.def /out:gstreamer-0.10.lib
/machine:x86 /name:libgstreamer-0.10-0.dll*
*   *I could able to run gst-launch successfully.

After unblocking this one, I have landed on another.
When I try to run player.exe, I can run audio only files. When running
files with audio and video, I could see nothing on the window (No audio and
No video). A little of debugging tells that gstvideosink is initialized but
"gst_video_sink_show_frame" is not getting invoked. Any pointers could be
of great help!

Thanks
Dinesh P

On Sat, Aug 18, 2012 at 1:45 AM, Dinesh Kumar
<dineshkpadmanaban at gmail.com>wrote:

> Yes both are built with the same glib. Let me dig into this further.
> Thanks for your help.
>
> Regards
> Dinesh P
>
>
> On Sat, Aug 18, 2012 at 1:13 AM, David Hoyt <dhoyt at hoytsoft.org> wrote:
>
>> I agree that the qt gstreamer build appears suspect. What I’m unsure of
>> is how it could get in the way of registering basic gobjects. Was the qt
>> gstreamer build built against the same glib as gstreamer? If so, I’m not
>> sure what to tell you without deep diving into the build...****
>>
>> ** **
>>
>> *From:* Dinesh Kumar [mailto:dineshkpadmanaban at gmail.com]
>> *Sent:* Friday, August 17, 2012 12:39 PM
>> *To:* Discussion of the development of and with GStreamer;
>> dhoyt at hoytsoft.org
>>
>> *Subject:* Re: qtgstreamer build issues - Win32****
>>
>> ** **
>>
>> Hi David,****
>>
>> ** **
>>
>> Thank you very much for your help. I have deleted the registry and tried
>> the same. The results are same. ****
>>
>> ** **
>>
>> I have one strange observation. ****
>>
>>            - When there is no *gstqtvideosink(qt gstreamer element) *in
>> the plugin folder, gst-launch and gst-inspect(displays all the plugins)
>> works as expected. ****
>>
>>           - When the gstqtvideosink is present in the plugin folder,
>> gst-launch and gst-inspect throw those errors. ****
>>
>>              ****
>>
>>           *The moment i remove the gstqtvideosink from the plugin
>> folder, gst-launch and gst-inspect works as expected. *I think this is
>> enough to confirm the issue is with qtgstreamer build not the glib/gobject
>> ? Can you please confirm. ****
>>
>> ** **
>>
>> Thanks****
>>
>> Dinesh P****
>>
>> ** **
>>
>> On Fri, Aug 17, 2012 at 11:56 PM, David Hoyt <dhoyt at hoytsoft.org> wrote:*
>> ***
>>
>> Seems like either an issue with your glib build or your gstreamer build.
>> But you said that gst-launch ran successfully. Were you able to run
>> gst-inspect? If so, did it list out all the plugins?
>>
>> I would first delete the registry and try again. Look for it in
>> C:\Users\<account>\.gstreamer-0.10\registry.i586.bin or something like that
>> IIRC. I might also try and use the gstreamer SDK, copy the qt gstreamer
>> plugins into the plugin folder (typically <installation
>> dir>\lib\gstreamer-0.10\ IIRC), their dependencies to the bin\ folder,
>> delete the registry file, and try again. That could help isolate whether
>> the problem is your glib/gstreamer build or the qt gstreamer build.
>>
>> But really, the fact that it’s failing on registering “GstObject” is a
>> major problem and something doesn’t smell right.
>>
>> HTH,
>> - David Hoyt****
>>
>>  ****
>>
>> *From:* gstreamer-devel-bounces+dhoyt=hoytsoft.org at lists.freedesktop.org[mailto:
>> gstreamer-devel-bounces+dhoyt=hoytsoft.org at lists.freedesktop.org] *On
>> Behalf Of *Dinesh Kumar
>> *Sent:* Friday, August 17, 2012 5:28 AM
>> *To:* gstreamer-devel at lists.freedesktop.org
>> *Subject:* Re: qtgstreamer build issues - Win32****
>>
>>  ****
>>
>> Hi, ****
>>
>>  ****
>>
>> I have few more pointers to add****
>>
>>  ****
>>
>>    -> There were some errors in my qtgstreamer build. (gstqtvideosink did
>> not get build). I think this is the cause for the error mentioned in the
>> previous mail. I have overlooked the errors, as Cmake and MSVC successfully
>> created the player.exe and other binaries :(. ****
>>
>>  ****
>>
>>    -> After building gstqtvideosink successfully, I observed a strange
>> behaviour. ****
>>
>>           When I try to run player.exe I got the below errors.****
>>
>>  ****
>>
>> *(player.exe:4632): GLib-GObject-WARNING **: cannot register existing
>> type `GstObject'*****
>>
>> *(player.exe:4632): GLib-CRITICAL **: g_once_init_leave: assertion
>> `result != 0'failed*****
>>
>> *(player.exe:4632): GLib-GObject-CRITICAL **: g_type_register_static:
>> assertion `parent_type > 0' failed*****
>>
>> *(player.exe:4632): GLib-CRITICAL **: g_once_init_leave: assertion
>> `result != 0'failed*****
>>
>> *(player.exe:4632): GLib-GObject-CRITICAL **: g_type_register_static:
>> assertion `parent_type > 0' failed*****
>>
>> *(player.exe:4632): GLib-CRITICAL **: g_once_init_leave: assertion
>> `result != 0'failed*****
>>
>> *(player.exe:4632): GLib-GObject-CRITICAL **: g_type_register_static:
>> assertion `parent_type > 0' failed*****
>>
>> *(player.exe:4632): GLib-GObject-CRITICAL **: g_type_register_static:
>> assertion `parent_type > 0' failed*****
>>
>> *(player.exe:4632): GLib-CRITICAL **: g_once_init_leave: assertion
>> `result != 0'failed*****
>>
>> *(player.exe:4632): GLib-GObject-CRITICAL **: g_type_register_static:
>> assertion `parent_type > 0' failed\*****
>>
>> *(player.exe:4632): GLib-CRITICAL **: g_once_init_leave: assertion
>> `result != 0'failed*****
>>
>> *(player.exe:4632): GStreamer-CRITICAL **: gst_element_register:
>> assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed*****
>>
>>    ****
>>
>>  -> Then I tried running gst-launch.exe, I got the below errors. ****
>>
>> *(gst-launch-0.10:592): GLib-GObject-WARNING **: cannot register
>> existing type `GstObject'*****
>>
>> *(gst-launch-0.10:592): GLib-CRITICAL **: g_once_init_leave: assertion
>> `result != 0' failed*****
>>
>> *(gst-launch-0.10:592): GLib-GObject-CRITICAL **:
>> g_type_register_static: assertion `parent_type > 0' failed*****
>>
>> *(gst-launch-0.10:592): GLib-CRITICAL **: g_once_init_leave: assertion
>> `result != 0' failed*****
>>
>> *(gst-launch-0.10:592): GStreamer-CRITICAL **: gst_element_register:
>> assertion `g_type_is_a (type, GST_TYPE_ELEMENT)' failed*****
>>
>>  ****
>>
>> *  -> If I remove the "gstqtvideosink" from gst_plugin_path, I can able
>> to run the gst-launch successfully. *****
>>
>>  ****
>>
>>   -> I think, there is some issue with the "gstqtvideosink". ****
>>
>>  ****
>>
>> I am using qtgstreamer-0.10.2. I am new to windows development
>> environment. Your pointers could be of great help to me. ****
>>
>>  ****
>>
>> Regards****
>>
>> Dinesh P****
>>
>>  ****
>>
>>  ****
>>
>> On Thu, Aug 16, 2012 at 6:21 PM, Dinesh Kumar <
>> dineshkpadmanaban at gmail.com> wrote:****
>>
>> Hi, ****
>>
>>  ****
>>
>> I am not sure, if this is the right forum for this question. I could not
>> find any other related forum for qtgstreamer related queries. ****
>>
>>  ****
>>
>> I have compiled gstreamer for win32 following the procedure
>> http://gstreamer.freedesktop.org/wiki/BuildGStreamerWithMinGWAndMsys****
>>
>> I have used precompiled binaries for all the packages, except gstreamer
>> as I have modified the source. ****
>>
>> I can able to run gst-launch successfully.****
>>
>>  ****
>>
>> I have compiled qtgstreamer following the procedure
>> http://gstreamer.freedesktop.org/wiki/QtGStreamer/BuildingOnWindows.  I
>> had issues in CMake finding my gstreamer installation path, since msys
>> environment build system did not generate .lib files.  I have generated
>> .def and .lib using "dumpbin" and "lib" tools and compiled qtgstreamer
>> successfully. ****
>>
>>  ****
>>
>> When I try to run qtgstreamer examples (player, recorder, voip), I get
>> following errors. ****
>>
>>  ****
>>
>> *(player.exe:4232): GLib-GObject-WARNING **: cannot register existing
>> type `GstOject'*****
>>
>> *(player.exe:4232): GLib-CRITICAL **: g_once_init_leave: assertion
>> `result != 0'failed*****
>>
>> *(player.exe:4232): GLib-GObject-CRITICAL **: g_type_register_static:
>> assertionparent_type > 0' failed*****
>>
>> *(player.exe:4232): GLib-CRITICAL **: g_once_init_leave: assertion
>> `result != 0'failed*****
>>
>> *(player.exe:4232): GLib-GObject-WARNING **: interface type
>> `GstImplementsInterfce' or prerequisite type `<invalid>' invalid*****
>>
>>  ****
>>
>> I double checked that GST_PLUGIN_PATH is set correct. I have also cross
>> checked by successfully launching gst-launch on the same shell. ****
>>
>> Please help me. Do I need to set anyother env variables? ****
>>
>>  ****
>>
>> Thanks****
>>
>> Dinesh P****
>>
>>  ****
>>
>>  ****
>>
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel****
>>
>> ** **
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20120819/e891d66b/attachment-0001.html>


More information about the gstreamer-devel mailing list