mpeg2dec: don't deadlock when setting an index
authorTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 19 Apr 2011 14:24:03 +0000 (15:24 +0100)
committerTim-Philipp Müller <tim.muller@collabora.co.uk>
Tue, 19 Apr 2011 16:11:14 +0000 (17:11 +0100)
ext/mpeg2dec/gstmpeg2dec.c

index 5867462..3f74746 100644 (file)
@@ -299,10 +299,11 @@ gst_mpeg2dec_set_index (GstElement * element, GstIndex * index)
   mpeg2dec->index_id = 0;
   if (index) {
     mpeg2dec->index = gst_object_ref (index);
-    gst_index_get_writer_id (index, GST_OBJECT (element), &mpeg2dec->index_id);
   }
-
   GST_OBJECT_UNLOCK (mpeg2dec);
+  /* object lock might be taken again */
+  if (index)
+    gst_index_get_writer_id (index, GST_OBJECT (element), &mpeg2dec->index_id);
 }
 
 static GstIndex *