[Bug 792601] New: Message bus lockup if getting pipeline state

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Wed Jan 17 12:07:35 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=792601

            Bug ID: 792601
           Summary: Message bus lockup if getting pipeline state
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: florent.thiery at ubicast.eu
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

Created attachment 366930
  --> https://bugzilla.gnome.org/attachment.cgi?id=366930&action=edit
reproduction test (python)

In advance, i'm sorry if this ticket title is wrong, and if it is in the wrong
project (-core or -good).

I was initially trying to trigger an action upon receiving GstUDPSrcTimeout
messages from the message bus.

pd = "udpsrc timeout=2000000000 ! fakesink"

My application was never receiving these events, and i managed to reproduce it.
The app locks up when getting the state of the pipeline (note that udpsrc is
intentionally not getting any data).

import gi
gi.require_version("Gst", "1.0")
from gi.repository import GObject, Gst, GLib
Gst.init(None)

pd = "udpsrc timeout=2000000000 ! fakesink"

def on_message(bus, message):
    t = message.type
    if t == Gst.MessageType.ELEMENT:
        struct = message.get_structure()
        sname = struct.get_name()
        print(sname)
        if sname == "GstUDPSrcTimeout":
            print('UDP Timeout !!')

p = Gst.parse_launch(pd)
bus = p.get_bus()
bus.add_signal_watch()
bus.connect("message", on_message)
ml = GObject.MainLoop()
GObject.idle_add(p.set_state, Gst.State.PLAYING)
# Uncomment this to freeze the bus (udptimeout messages not received)
GObject.idle_add(p.get_state, Gst.CLOCK_TIME_NONE)
ml.run()

If i comment the line that gets the state of the pipeline, the udp timeout
messages are received. Otherwise, nothing happens and the software becomes
unresponsive.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list