gst/playback/gstdecodebin2.c: Dont leak ghostpad. Fixes #475451.
authorStefan Kost <ensonic@users.sourceforge.net>
Fri, 9 Nov 2007 15:54:45 +0000 (15:54 +0000)
committerStefan Kost <ensonic@users.sourceforge.net>
Fri, 9 Nov 2007 15:54:45 +0000 (15:54 +0000)
Original commit message from CVS:
* gst/playback/gstdecodebin2.c:
Dont leak ghostpad. Fixes #475451.

ChangeLog
gst/playback/gstdecodebin2.c

index 90911e2df87689e631f7a785d064e0a4a7325ce8..d7695e08c4176c2a2ea996b9953d1138a14cae0a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-09  Stefan Kost  <ensonic@users.sf.net>
+
+       * gst/playback/gstdecodebin2.c:
+         Dont leak ghostpad. Fixes #475451.
+
 2007-11-09  Wim Taymans  <wim.taymans@gmail.com>
 
        * docs/design/design-decodebin.txt:
index 33984ee7c71120c43b5e7c08e2c665e7368efd7d..64b0c30f03c99d415e185860ec036f91952e5cdc 100644 (file)
@@ -2097,6 +2097,16 @@ gst_decode_group_free (GstDecodeGroup * group)
   GST_LOG ("group %p", group);
 
   GROUP_MUTEX_LOCK (group);
+
+  /* free ghost pads */
+  if (group == group->dbin->activegroup) {
+    for (tmp = group->ghosts; tmp; tmp = g_list_next (tmp))
+      gst_element_remove_pad (GST_ELEMENT (group->dbin), (GstPad *) tmp->data);
+
+    g_list_free (group->ghosts);
+    group->ghosts = NULL;
+  }
+
   /* Clear all GstDecodePad */
   for (tmp = group->endpads; tmp; tmp = g_list_next (tmp)) {
     GstDecodePad *dpad = (GstDecodePad *) tmp->data;