summaryrefslogtreecommitdiff
path: root/gst/gstevent.c
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim.muller@collabora.co.uk>2012-05-26 11:37:49 +0100
committerTim-Philipp Müller <tim.muller@collabora.co.uk>2012-05-26 11:44:03 +0100
commit61dcbaab634560b9aeea0375ffd8c810c77446ee (patch)
tree53ecd916bc14f7b85ed8a9eb8f2ff84b5c38c1a5 /gst/gstevent.c
parent97c2498bbec1ef98019e5c1298c17fbd4bdb7928 (diff)
downloadgstreamer-61dcbaab634560b9aeea0375ffd8c810c77446ee.tar.gz
message, event: update for tag lists not being structures any more
Diffstat (limited to 'gst/gstevent.c')
-rw-r--r--gst/gstevent.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/gst/gstevent.c b/gst/gstevent.c
index a6b092e326..d918d7b8cc 100644
--- a/gst/gstevent.c
+++ b/gst/gstevent.c
@@ -1002,9 +1002,16 @@ gst_event_copy_segment (GstEvent * event, GstSegment * segment)
GstEvent *
gst_event_new_tag (GstTagList * taglist)
{
+ GstStructure *s;
+ GValue val = G_VALUE_INIT;
+
g_return_val_if_fail (taglist != NULL, NULL);
- return gst_event_new_custom (GST_EVENT_TAG, (GstStructure *) taglist);
+ s = gst_structure_new_id_empty (GST_QUARK (EVENT_TAG));
+ g_value_init (&val, GST_TYPE_TAG_LIST);
+ g_value_take_boxed (&val, taglist);
+ gst_structure_id_take_value (s, GST_QUARK (TAGLIST), &val);
+ return gst_event_new_custom (GST_EVENT_TAG, s);
}
/**
@@ -1020,11 +1027,16 @@ gst_event_new_tag (GstTagList * taglist)
void
gst_event_parse_tag (GstEvent * event, GstTagList ** taglist)
{
+ const GValue *val;
+
g_return_if_fail (GST_IS_EVENT (event));
g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_TAG);
+ val = gst_structure_id_get_value (GST_EVENT_STRUCTURE (event),
+ GST_QUARK (TAGLIST));
+
if (taglist)
- *taglist = (GstTagList *) GST_EVENT_STRUCTURE (event);
+ *taglist = (GstTagList *) g_value_get_boxed (val);
}
/* buffersize event */