diff options
author | Tim-Philipp Müller <tim@centricular.net> | 2013-01-06 20:27:54 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2013-03-31 11:47:40 +0100 |
commit | 0e5c1dcf6468d388543c310c12fcf95fdd16d08d (patch) | |
tree | d0d35b52001ae4afea24fff634c68ac341071d65 /gst/gstevent.c | |
parent | dd831b811421b3d7b6769a78ef0a29351e64ca66 (diff) | |
download | gstreamer-0e5c1dcf6468d388543c310c12fcf95fdd16d08d.tar.gz |
event: add stream flags to stream-start event
API: gst_event_set_stream_flags()
API: gst_event_parse_stream_flags()
API: GST_STREAM_FLAG_NONE
API: GST_STREAM_FLAG_SPARSE
https://bugzilla.gnome.org/show_bug.cgi?id=600648
Diffstat (limited to 'gst/gstevent.c')
-rw-r--r-- | gst/gstevent.c | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/gst/gstevent.c b/gst/gstevent.c index 1993eceecc..5517ecfb48 100644 --- a/gst/gstevent.c +++ b/gst/gstevent.c @@ -1404,7 +1404,8 @@ gst_event_new_stream_start (const gchar * stream_id) g_return_val_if_fail (stream_id != NULL, NULL); s = gst_structure_new_id (GST_QUARK (EVENT_STREAM_START), - GST_QUARK (STREAM_ID), G_TYPE_STRING, stream_id, NULL); + GST_QUARK (STREAM_ID), G_TYPE_STRING, stream_id, + GST_QUARK (FLAGS), GST_TYPE_STREAM_FLAGS, GST_STREAM_FLAG_NONE, NULL); return gst_event_new_custom (GST_EVENT_STREAM_START, s); } @@ -1436,6 +1437,43 @@ gst_event_parse_stream_start (GstEvent * event, const gchar ** stream_id) } /** + * gst_event_set_stream_flags: + * @event: a stream-start event + * @flags: the stream flags to set + * + * Since: 1.2 + */ +void +gst_event_set_stream_flags (GstEvent * event, GstStreamFlags flags) +{ + g_return_if_fail (event != NULL); + g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START); + g_return_if_fail (gst_event_is_writable (event)); + + gst_structure_id_set (GST_EVENT_STRUCTURE (event), + GST_QUARK (FLAGS), GST_TYPE_STREAM_FLAGS, flags, NULL); +} + +/** + * gst_event_parse_stream_flags: + * @event: a stream-start event + * @flags: (out): address of variable where to store the stream flags + * + * Since: 1.2 + */ +void +gst_event_parse_stream_flags (GstEvent * event, GstStreamFlags * flags) +{ + g_return_if_fail (event != NULL); + g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STREAM_START); + + if (flags) { + gst_structure_id_get (GST_EVENT_STRUCTURE (event), + GST_QUARK (FLAGS), GST_TYPE_STREAM_FLAGS, flags, NULL); + } +} + +/** * gst_event_new_toc: * @toc: (transfer none): #GstToc structure. * @updated: whether @toc was updated or not. |