flvdemux: fix deadlock on setting index on flvdemux
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 19 Apr 2011 13:33:42 +0000 (14:33 +0100)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 19 Apr 2011 13:34:48 +0000 (14:34 +0100)
gst/flv/gstflvdemux.c

index 3ce7de4..fae7e41 100644 (file)
@@ -3101,12 +3101,16 @@ gst_flv_demux_set_index (GstElement * element, GstIndex * index)
     gst_object_unref (demux->index);
   if (index) {
     demux->index = gst_object_ref (index);
-    gst_index_get_writer_id (index, GST_OBJECT (element), &demux->index_id);
     demux->own_index = FALSE;
   } else
     demux->index = NULL;
 
   GST_OBJECT_UNLOCK (demux);
+  /* object lock might be taken again */
+  if (index)
+    gst_index_get_writer_id (index, GST_OBJECT (element), &demux->index_id);
+  GST_DEBUG_OBJECT (demux, "Set index %" GST_PTR_FORMAT, demux->index);
+
 }
 
 static GstIndex *