summaryrefslogtreecommitdiff
path: root/gst/qtmux/atoms.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/qtmux/atoms.c')
-rw-r--r--gst/qtmux/atoms.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/gst/qtmux/atoms.c b/gst/qtmux/atoms.c
index d62077e10..99b02eff6 100644
--- a/gst/qtmux/atoms.c
+++ b/gst/qtmux/atoms.c
@@ -47,7 +47,7 @@
#include <gst/gst.h>
#include <gst/base/gstbytewriter.h>
-
+#include <gst/tag/tag.h>
/**
* Creates a new AtomsContext for the given flavor.
@@ -2772,6 +2772,22 @@ atom_moov_add_3gp_uint_tag (AtomMOOV * moov, guint32 fourcc, guint16 value)
atom_moov_add_3gp_str_int_tag (moov, fourcc, NULL, value);
}
+void
+atom_moov_add_xmp_tags (AtomMOOV * moov, const GstTagList * tags)
+{
+ GstBuffer *xmpbuffer = gst_tag_list_to_xmp_buffer (tags, TRUE);
+ AtomData *data_atom = NULL;
+
+ data_atom = atom_data_new_from_gst_buffer (FOURCC_XMP_, xmpbuffer);
+ gst_buffer_unref (xmpbuffer);
+
+ atom_moov_init_metatags (moov, &moov->context);
+
+ moov->udta->entries = g_list_append (moov->udta->entries,
+ build_atom_info_wrapper ((Atom *) data_atom, atom_data_copy_data,
+ atom_data_free));
+}
+
/*
* Functions for specifying media types
*/