transform: Also copy POOL metas and make sure to copy over metas when creating subbuffers

POOL meta just means that this specific instance of the meta is related to a
pool, a copy should be made when reasonable and the flag should just not be
set in the copy.
This commit is contained in:
Sebastian Dröge 2015-07-01 10:50:19 +02:00
parent fefd4622a3
commit 231e77338c

View file

@ -1734,12 +1734,7 @@ foreach_metadata (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
klass = GST_BASE_TRANSFORM_GET_CLASS (trans);
if (GST_META_FLAG_IS_SET (*meta, GST_META_FLAG_POOLED)) {
/* never call the transform_meta with pool private metadata */
GST_DEBUG_OBJECT (trans, "not copying pooled metadata %s",
g_type_name (info->api));
do_copy = FALSE;
} else if (gst_meta_api_type_has_tag (info->api, _gst_meta_tag_memory)) {
if (gst_meta_api_type_has_tag (info->api, _gst_meta_tag_memory)) {
/* never call the transform_meta with memory specific metadata */
GST_DEBUG_OBJECT (trans, "not copying memory specific metadata %s",
g_type_name (info->api));