GNOME Bugzilla – Bug 752661
gl : passing immutable gst structure to gst_structure_id_take_value
Last modified: 2015-08-16 13:39:24 UTC
Since the commit(2fb862) last night, with glimagesink, gst-launch always show this error. (gst-launch-1.0:27090): GStreamer-CRITICAL **: gst_structure_id_take_value: assertion `IS_MUTABLE (structure)' failed This is because decide_query's ref count in _gst_gl_upload_element_propose_allocation is 2. This is ref-counted already in gst_base_transform_default_query. I'm not sure how to fix this. Remove gst_query_ref in gst_base_transform_default_query? Or fix something in gl?
Reproduce step. gst-launch-1.0 playbin uri=file://something video-sink="glimagesink"
Direct link to patch mentioned: http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=2fb862b34fbe1f7713381144800f863aad1ef16f
Created attachment 307847 [details] [review] basetransform: Avoid increasing query reference gst_query_find_allocation_meta() requires the query to be writable to work. This patch ensure avoids taking a reference on the query, so we can now check if a certain allocation meta is present.
This is one possible fix. Changing gstquery.c to not write into the structure seemed tricky.
Can't find anything better. With 1 reader and 1 writer, this should work. Attachment 307847 [details] pushed as f9aa306 - basetransform: Avoid increasing query reference