diff options
Diffstat (limited to 'ext/metadata/metadataiptc.c')
-rw-r--r-- | ext/metadata/metadataiptc.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/ext/metadata/metadataiptc.c b/ext/metadata/metadataiptc.c index a391fc78..8c0507a4 100644 --- a/ext/metadata/metadataiptc.c +++ b/ext/metadata/metadataiptc.c @@ -52,12 +52,14 @@ GST_DEBUG_CATEGORY (gst_metadata_iptc_debug); void metadataparse_iptc_tag_list_add (GstTagList * taglist, GstTagMergeMode mode, - GstAdapter * adapter) + GstAdapter * adapter, MetadataTagMapping mapping) { GST_LOG ("IPTC not defined, here I should send just one tag as whole chunk"); - metadataparse_util_tag_list_add_chunk (taglist, mode, GST_TAG_IPTC, adapter); + if (mapping & METADATA_TAG_MAP_WHOLECHUNK) + metadataparse_util_tag_list_add_chunk (taglist, mode, GST_TAG_IPTC, + adapter); } @@ -78,7 +80,7 @@ iptc_data_foreach_dataset_func (IptcDataSet * dataset, void *user_data); void metadataparse_iptc_tag_list_add (GstTagList * taglist, GstTagMergeMode mode, - GstAdapter * adapter) + GstAdapter * adapter, MetadataTagMapping mapping) { const guint8 *buf; guint32 size; @@ -89,7 +91,12 @@ metadataparse_iptc_tag_list_add (GstTagList * taglist, GstTagMergeMode mode, } /* add chunk tag */ - metadataparse_util_tag_list_add_chunk (taglist, mode, GST_TAG_IPTC, adapter); + if (mapping & METADATA_TAG_MAP_WHOLECHUNK) + metadataparse_util_tag_list_add_chunk (taglist, mode, GST_TAG_IPTC, + adapter); + + if (!(mapping & METADATA_TAG_MAP_INDIVIDUALS)) + goto done; buf = gst_adapter_peek (adapter, size); |