gst/playback/gstplaybasebin.c: Clean up our group elements properly in the case where it never got committed - it sti...

Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (group_destroy):
Clean up our group elements properly in the case where it never
got committed - it still got added unconditionally to the bin.
This commit is contained in:
Jan Schmidt 2006-04-07 17:18:11 +00:00
parent f0d28a0da1
commit 1b8dd847b1
2 changed files with 13 additions and 13 deletions

View file

@ -1,3 +1,9 @@
2006-04-07 Jan Schmidt <thaytan@mad.scientist.com>
* gst/playback/gstplaybasebin.c: (group_destroy):
Clean up our group elements properly in the case where it never
got committed - it still got added unconditionally to the bin.
2006-04-07 Wim Taymans <wim@fluendo.com>
* ext/theora/theoradec.c: (theora_dec_sink_event),

View file

@ -340,19 +340,13 @@ group_destroy (GstPlayBaseGroup * group)
/* if the group is currently being played, we have to remove the element
* from the thread */
if (get_active_group (play_base_bin) == group) {
GST_LOG ("removing preroll element %s", GST_ELEMENT_NAME (element));
gst_element_set_state (element, GST_STATE_NULL);
gst_element_set_state (group->type[n].selector, GST_STATE_NULL);
gst_bin_remove (group->type[n].bin, element);
gst_bin_remove (group->type[n].bin, group->type[n].selector);
} else {
/* else we can just unref it */
gst_element_set_state (element, GST_STATE_NULL);
gst_element_set_state (group->type[n].selector, GST_STATE_NULL);
gst_object_unref (element);
gst_object_unref (group->type[n].selector);
}
gst_element_set_state (element, GST_STATE_NULL);
gst_element_set_state (group->type[n].selector, GST_STATE_NULL);
GST_LOG ("removing preroll element %s", GST_ELEMENT_NAME (element));
gst_bin_remove (group->type[n].bin, element);
gst_bin_remove (group->type[n].bin, group->type[n].selector);
group->type[n].preroll = NULL;
group->type[n].selector = NULL;