[gstreamer-bugs] [Bug 502593] State change failure (with gstvideogui.py)

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Wed Apr 15 13:00:30 PDT 2009


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=502593

  GStreamer | gstreamer (core) | Ver: git

Tim-Philipp Müller changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEEDINFO




------- Comment #2 from Tim-Philipp Müller  2009-04-15 20:00 UTC -------
I can reproduce this with git.

It seems to hang in _get_state() around line 150:

            if (self.rcc == 3):
                print "The next line is where the program hangs. Goodbye."
            ret = self.pipeline.set_state(gst.STATE_PLAYING)
            state = self.pipeline.get_state()
            self.recording = True

and the debug log shows an endless loop of:

gstbus.c:308:gst_bus_post:<bus3> [msg 0x8b74820] posting on bus, type
async-done, (NULL) from source <mypipeline>
gstbus.c:338:gst_bus_post:<bus3> [msg 0x8b74820] pushing on async queue
gstbus.c:343:gst_bus_post:<bus3> [msg 0x8b74820] pushed on async queue
gstbus.c:308:gst_bus_post:<bus2> [msg 0x8b74758] posting on bus, type
async-done, (NULL) from source <bin0>
gstbus.c:334:gst_bus_post:<bus2> [msg 0x8b74758] dropped
gstbus.c:308:gst_bus_post:<bus3> [msg 0x8b746d8] posting on bus, type
async-done, (NULL) from source <mypipeline>
gstbus.c:338:gst_bus_post:<bus3> [msg 0x8b746d8] pushing on async queue
gstbus.c:343:gst_bus_post:<bus3> [msg 0x8b746d8] pushed on async queue
gstbus.c:308:gst_bus_post:<bus2> [msg 0x8b74658] posting on bus, type
async-done, (NULL) from source <bin0>
gstbus.c:334:gst_bus_post:<bus2> [msg 0x8b74658] dropped
gstbus.c:308:gst_bus_post:<bus3> [msg 0x8b745d8] posting on bus, type
async-done, (NULL) from source <mypipeline>
gstbus.c:338:gst_bus_post:<bus3> [msg 0x8b745d8] pushing on async queue
gstbus.c:343:gst_bus_post:<bus3> [msg 0x8b745d8] pushed on async queue
gstbus.c:308:gst_bus_post:<bus2> [msg 0x8b74558] posting on bus, type
async-done, (NULL) from source <bin0>
gstbus.c:334:gst_bus_post:<bus2> [msg 0x8b74558] dropped
gstbus.c:308:gst_bus_post:<bus3> [msg 0x8b744d8] posting on bus, type
async-done, (NULL) from source <mypipeline>
gstbus.c:338:gst_bus_post:<bus3> [msg 0x8b744d8] pushing on async queue
gstbus.c:343:gst_bus_post:<bus3> [msg 0x8b744d8] pushed on async queue
gstbus.c:308:gst_bus_post:<bus2> [msg 0x8b74458] posting on bus, type
async-done, (NULL) from source <bin0>
gstbus.c:334:gst_bus_post:<bus2> [msg 0x8b74458] dropped
gstbus.c:308:gst_bus_post:<bus3> [msg 0x8b74390] posting on bus, type
async-done, (NULL) from source <mypipeline>
gstbus.c:338:gst_bus_post:<bus3> [msg 0x8b74390] pushing on async queue
gstbus.c:343:gst_bus_post:<bus3> [msg 0x8b74390] pushed on async queue
gstbus.c:308:gst_bus_post:<bus2> [msg 0x8b74310] posting on bus, type
async-done, (NULL) from source <bin0>
gstbus.c:334:gst_bus_post:<bus2> [msg 0x8b74310] dropped
gstbus.c:308:gst_bus_post:<bus3> [msg 0x8b74290] posting on bus, type
async-done, (NULL) from source <mypipeline>
gstbus.c:338:gst_bus_post:<bus3> [msg 0x8b74290] pushing on async queue
gstbus.c:343:gst_bus_post:<bus3> [msg 0x8b74290] pushed on async queue
gstbus.c:308:gst_bus_post:<bus2> [msg 0x8b74210] posting on bus, type
async-done, (NULL) from source <bin0>
gstbus.c:334:gst_bus_post:<bus2> [msg 0x8b74210] dropped


The code of this application is so, umm, nonstandard, that I don't even know
where to begin. It has _get_state() sprinkled all over the place as if there
was a Nobel prize for it, hardly any checking of return values anywhere
(set_state, etc. etc.), no error handling (maybe I missed it?), and you set
your own bus on random elements, like here:

        self.filesink.set_bus(gst.Bus())
        self.filesink.get_bus().add_watch(self.__myFilesinkWatchCb)


Please supply an updated version of your test program that doesn't do crazy
stuff, or close this bug as OBSOLETE, thanks! :)


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=502593.




More information about the Gstreamer-bugs mailing list