uridecodebin: disconnect signal handlers before disposing
authorStefan Kost <ensonic@users.sf.net>
Wed, 24 Nov 2010 15:34:21 +0000 (17:34 +0200)
committerStefan Kost <ensonic@users.sf.net>
Wed, 24 Nov 2010 15:53:42 +0000 (17:53 +0200)
gst/playback/gsturidecodebin.c

index da583fcc2eca1cd329912a73e27310154cba6b88..71518013976f38e5283e5c5a5d10b9a0ce72faa5 100644 (file)
@@ -1655,7 +1655,6 @@ remove_source (GstURIDecodeBin * bin)
   if (source) {
     GST_DEBUG_OBJECT (bin, "removing old src element");
     gst_element_set_state (source, GST_STATE_NULL);
-    gst_bin_remove (GST_BIN_CAST (bin), source);
 
     if (bin->src_np_sig_id) {
       g_signal_handler_disconnect (source, bin->src_np_sig_id);
@@ -1665,6 +1664,7 @@ remove_source (GstURIDecodeBin * bin)
       g_signal_handler_disconnect (source, bin->src_nmp_sig_id);
       bin->src_nmp_sig_id = 0;
     }
+    gst_bin_remove (GST_BIN_CAST (bin), source);
     bin->source = NULL;
   }
   if (bin->queue) {