query: copy structure in _add_allocation_meta()

Make gst_query_add_allocation_meta() take a copy of the passed caps instead of
taking ownership. This makes it easier for the caller in most cases because it
doesn't have to make a copy and deal with NULL values.
This commit is contained in:
Wim Taymans 2012-07-10 10:31:00 +02:00
parent 77bc2170f8
commit 82eb275ef9
3 changed files with 5 additions and 5 deletions

View file

@ -1675,13 +1675,13 @@ allocation_meta_free (AllocationMeta * am)
* gst_query_add_allocation_meta:
* @query: a GST_QUERY_ALLOCATION type query #GstQuery
* @api: the metadata API
* @params: (transfer full) (allow-none): API specific parameters
* @params: (transfer none) (allow-none): API specific parameters
*
* Add @api with @params as one of the supported metadata API to @query.
*/
void
gst_query_add_allocation_meta (GstQuery * query, GType api,
GstStructure * params)
const GstStructure * params)
{
GArray *array;
GstStructure *structure;
@ -1697,7 +1697,7 @@ gst_query_add_allocation_meta (GstQuery * query, GType api,
(GDestroyNotify) allocation_meta_free);
am.api = api;
am.params = params;
am.params = (params ? gst_structure_copy (params) : NULL);
g_array_append_val (array, am);
}

View file

@ -428,7 +428,7 @@ void gst_query_set_nth_allocation_param (GstQuery *query, guint ind
const GstAllocationParams *params);
/* metadata */
void gst_query_add_allocation_meta (GstQuery *query, GType api, GstStructure *params);
void gst_query_add_allocation_meta (GstQuery *query, GType api, const GstStructure *params);
guint gst_query_get_n_allocation_metas (GstQuery *query);
GType gst_query_parse_nth_allocation_meta (GstQuery *query, guint index,
const GstStructure **params);

View file

@ -1373,7 +1373,7 @@ gst_base_transform_default_propose_allocation (GstBaseTransform * trans,
api = gst_query_parse_nth_allocation_meta (decide_query, i, &params);
GST_DEBUG_OBJECT (trans, "proposing metadata %s", g_type_name (api));
gst_query_add_allocation_meta (query, api, gst_structure_copy (params));
gst_query_add_allocation_meta (query, api, params);
}
ret = TRUE;
}