[Bug 722767] New: gstelement: add function to sync element state with target state of the parent
GStreamer (bugzilla.gnome.org)
bugzilla at gnome.org
Wed Jan 22 05:23:22 PST 2014
https://bugzilla.gnome.org/show_bug.cgi?id=722767
GStreamer | gstreamer (core) | 1.x
Summary: gstelement: add function to sync element state with
target state of the parent
Classification: Platform
Product: GStreamer
Version: 1.x
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: gstreamer (core)
AssignedTo: gstreamer-bugs at lists.freedesktop.org
ReportedBy: mparisdiaz at gmail.com
QAContact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
I suggest adding a function to set the element state to the target state of its
parent. This is useful for avoiding race condition problems in dynamic
pipelines.
gboolean
gst_element_sync_target_state_with_parent (GstElement * element)
{
GstElement *parent;
GstState target;
GstStateChangeReturn ret;
g_return_val_if_fail (GST_IS_ELEMENT (element), FALSE);
parent = GST_ELEMENT_CAST (gst_element_get_parent (element));
if (element == NULL) {
GST_DEBUG_OBJECT (element, "element has no parent");
return FALSE;
}
GST_OBJECT_LOCK (parent);
target = GST_STATE_TARGET (parent);
GST_OBJECT_UNLOCK (parent);
GST_DEBUG_OBJECT (element,
"setting parent (%s) target state %s",
GST_ELEMENT_NAME (parent),
gst_element_state_get_name (target));
gst_object_unref (parent);
ret = gst_element_set_state (element, target);
if (ret == GST_STATE_CHANGE_FAILURE) {
GST_DEBUG_OBJECT (element,
"setting target state failed (%s)",
gst_element_state_change_return_get_name (ret));
return FALSE;
}
return TRUE;
}
--
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- 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