mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
bin: Make sure to free all cached messages when going to NULL
An ASYNC READY->PAUSED might have failed without the bin code noticing during the state change, in which case we will never get PAUSED->READY and would leak messages. https://bugzilla.gnome.org/show_bug.cgi?id=756611
This commit is contained in:
parent
bc5c199bc5
commit
2955eeb0ed
1 changed files with 5 additions and 0 deletions
|
@ -2703,6 +2703,11 @@ gst_bin_change_state_func (GstElement * element, GstStateChange transition)
|
|||
goto activate_failure;
|
||||
break;
|
||||
case GST_STATE_NULL:
|
||||
/* Clear message list on next NULL */
|
||||
GST_OBJECT_LOCK (bin);
|
||||
GST_DEBUG_OBJECT (element, "clearing all cached messages");
|
||||
bin_remove_messages (bin, NULL, GST_MESSAGE_ANY);
|
||||
GST_OBJECT_UNLOCK (bin);
|
||||
if (current == GST_STATE_READY) {
|
||||
if (!(gst_bin_src_pads_activate (bin, FALSE)))
|
||||
goto activate_failure;
|
||||
|
|
Loading…
Reference in a new issue