[Bug 779945] New: aggregator: Always call sink_event() from aggregate thread

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Mar 12 16:26:00 UTC 2017


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

            Bug ID: 779945
           Summary: aggregator: Always call sink_event() from aggregate
                    thread
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-plugins-bad
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: slomo at coaxion.net
        QA Contact: gstreamer-bugs at lists.freedesktop.org
                CC: nicolas at ndufresne.ca, olivier.crete at ocrete.ca
     GNOME version: ---

Currently aggregator has this curious code in the sink event handler

>    if (!gst_aggregator_pad_queue_is_empty (aggpad) &&
>        GST_EVENT_TYPE (event) != GST_EVENT_FLUSH_STOP) {
>      GST_DEBUG_OBJECT (aggpad, "Store event in queue: %" GST_PTR_FORMAT,
>          event);
>      g_queue_push_head (&aggpad->priv->buffers, event);
>      event = NULL;
>      SRC_BROADCAST (self);
>    }

If the event is not queued up, it will be directly handled from the event
thread. This seems a bit suboptimal as it means that sink_event() will be
called from different threads, possible at the same time. At least for all
serialized events (except for FLUSH_STOP) we should always queue them up and
call them from the aggregate thread IMHO.

Easy enough to change, but there probably was a reason for this?

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