[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