typefind: Only push pending buffers and events if we have caps
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 29 Apr 2013 10:48:13 +0000 (12:48 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Mon, 29 Apr 2013 11:24:56 +0000 (13:24 +0200)
plugins/elements/gsttypefindelement.c

index 4e21240..3a89c3d 100644 (file)
@@ -543,12 +543,13 @@ stop_typefinding (GstTypeFindElement * typefind)
 
   gst_element_get_state (GST_ELEMENT (typefind), &state, NULL, 0);
 
-  push_cached_buffers = (state >= GST_STATE_PAUSED);
+  GST_OBJECT_LOCK (typefind);
+
+  push_cached_buffers = (state >= GST_STATE_PAUSED && typefind->caps);
 
   GST_DEBUG_OBJECT (typefind, "stopping typefinding%s",
       push_cached_buffers ? " and pushing cached buffers" : "");
 
-  GST_OBJECT_LOCK (typefind);
   avail = gst_adapter_available (typefind->adapter);
   if (avail == 0)
     goto no_data;