diff options
author | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2012-05-26 11:37:49 +0100 |
---|---|---|
committer | Tim-Philipp Müller <tim.muller@collabora.co.uk> | 2012-05-26 11:44:03 +0100 |
commit | 61dcbaab634560b9aeea0375ffd8c810c77446ee (patch) | |
tree | 53ecd916bc14f7b85ed8a9eb8f2ff84b5c38c1a5 /gst/gstevent.c | |
parent | 97c2498bbec1ef98019e5c1298c17fbd4bdb7928 (diff) | |
download | gstreamer-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.c | 16 |
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 */ |