diff options
Diffstat (limited to 'ext/metadata/metadataxmp.c')
-rw-r--r-- | ext/metadata/metadataxmp.c | 13 |
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); |