summaryrefslogtreecommitdiffstats
path: root/ext/metadata/metadataxmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/metadata/metadataxmp.c')
-rw-r--r--ext/metadata/metadataxmp.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/ext/metadata/metadataxmp.c b/ext/metadata/metadataxmp.c
index 900a454a..b417a935 100644
--- a/ext/metadata/metadataxmp.c
+++ b/ext/metadata/metadataxmp.c
@@ -52,12 +52,13 @@ GST_DEBUG_CATEGORY (gst_metadata_xmp_debug);
void
metadataparse_xmp_tag_list_add (GstTagList * taglist, GstTagMergeMode mode,
- GstAdapter * adapter)
+ GstAdapter * adapter, MetadataTagMapping mapping)
{
GST_LOG ("XMP not defined, here I should send just one tag as whole chunk");
- metadataparse_util_tag_list_add_chunk (taglist, mode, GST_TAG_XMP, adapter);
+ if (mapping & METADATA_TAG_MAP_WHOLECHUNK)
+ metadataparse_util_tag_list_add_chunk (taglist, mode, GST_TAG_XMP, adapter);
}
@@ -109,7 +110,7 @@ metadataparse_xmp_dispose (void)
void
metadataparse_xmp_tag_list_add (GstTagList * taglist, GstTagMergeMode mode,
- GstAdapter * adapter)
+ GstAdapter * adapter, MetadataTagMapping mapping)
{
const guint8 *buf;
guint32 size;
@@ -121,7 +122,11 @@ metadataparse_xmp_tag_list_add (GstTagList * taglist, GstTagMergeMode mode,
}
/* add chunk tag */
- metadataparse_util_tag_list_add_chunk (taglist, mode, GST_TAG_XMP, adapter);
+ if (mapping & METADATA_TAG_MAP_WHOLECHUNK)
+ metadataparse_util_tag_list_add_chunk (taglist, mode, GST_TAG_XMP, adapter);
+
+ if (!(mapping & METADATA_TAG_MAP_INDIVIDUALS))
+ goto done;
buf = gst_adapter_peek (adapter, size);