diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2017-12-06 13:36:30 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2017-12-06 13:36:30 +0200 |
commit | c813b1c276b7982ba436f6ca9322b91f2160e9f2 (patch) | |
tree | f8dbb0fc11aa6c3aced63e07be676eddd63345fb | |
parent | 62ebee096b91d6df43cb6529b6760d5a22202fdb (diff) |
query: Add an empty structure in writable_structure() if there is none yet
This is consistent with how it works for GstEvent already.
-rw-r--r-- | gst/gstquery.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gst/gstquery.c b/gst/gstquery.c index 3a27a6a11..dd4929be0 100644 --- a/gst/gstquery.c +++ b/gst/gstquery.c @@ -731,10 +731,21 @@ gst_query_get_structure (GstQuery * query) GstStructure * gst_query_writable_structure (GstQuery * query) { + GstStructure *structure; + g_return_val_if_fail (GST_IS_QUERY (query), NULL); g_return_val_if_fail (gst_query_is_writable (query), NULL); - return GST_QUERY_STRUCTURE (query); + structure = GST_QUERY_STRUCTURE (query); + + if (structure == NULL) { + structure = + gst_structure_new_id_empty (gst_query_type_to_quark (GST_QUERY_TYPE + (query))); + gst_structure_set_parent_refcount (structure, &query->mini_object.refcount); + GST_QUERY_STRUCTURE (query) = structure; + } + return structure; } /** |