launch: place the deep-notify on the right pipeline
authorWim Taymans <wtaymans@redhat.com>
Tue, 25 Mar 2014 11:38:07 +0000 (12:38 +0100)
committerWim Taymans <wtaymans@redhat.com>
Tue, 25 Mar 2014 11:38:07 +0000 (12:38 +0100)
If the toplevel bin is not not a pipeline, we place the bin in a
pipeline. Also make sure that we connect to the deep-notify of this new
pipeline because we will g_signal_handler_disconnect() from it later.

tools/gst-launch.c

index 32aeb65..a644c0e 100644 (file)
@@ -988,13 +988,6 @@ main (int argc, char *argv[])
     return 1;
   }
 
-  if (verbose) {
-    gchar **exclude_list =
-        exclude_args ? g_strsplit (exclude_args, ",", 0) : NULL;
-    deep_notify_id = g_signal_connect (pipeline, "deep-notify",
-        G_CALLBACK (gst_object_default_deep_notify), exclude_list);
-  }
-
   if (!savefile) {
     GstState state, pending;
     GstStateChangeReturn ret;
@@ -1011,6 +1004,12 @@ main (int argc, char *argv[])
       gst_bin_add (GST_BIN (real_pipeline), pipeline);
       pipeline = real_pipeline;
     }
+    if (verbose) {
+      gchar **exclude_list =
+          exclude_args ? g_strsplit (exclude_args, ",", 0) : NULL;
+      deep_notify_id = g_signal_connect (pipeline, "deep-notify",
+          G_CALLBACK (gst_object_default_deep_notify), exclude_list);
+    }
 #if 0
     if (check_index) {
       /* gst_index_new() creates a null-index, it does not store anything, but