GNOME Bugzilla – Bug 656825
deadlock in gst_index_path_resolver
Last modified: 2012-09-25 12:01:38 UTC
Playing http://svn.webkit.org/repository/webkit/trunk/LayoutTests/media/content/counting-captioned.mov using decodebin2 with an indexer set, I get the deadlock with the backtrace at the end of this comment. AFAICT, the object lock is not recursive, and this is what causes the deadlock to happen. The lock is held in gst_bin_add_func and is taken again in gst_object_get_parent as gst_object_get_path_string traverses the parents. My best guess is that something is wrong in gst_qtdemux_set_index since the same problem hasn't occured with matroskademux.
+ Trace 228133
Right, that's because matroskademux gets the writer_id later and qtdemux (and many other elements) get and store the writer_id right away.
Just in case anyone else comes across this, this can be worked around by setting the resolver method of the index to GST_INDEX_RESOLVER_GTYPE.
GstIndex is gone in 1.0, can't really fix it in 0.10.