diff options
author | Tim-Philipp Müller <tim@centricular.net> | 2013-01-19 12:51:56 +0000 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.net> | 2013-01-19 12:51:56 +0000 |
commit | c0926dc7cc9a0e180621ad454ee6eb54745f5de1 (patch) | |
tree | bffa05c0851b9008acea3013935d8a792b8fddc8 /gst | |
parent | c015b70456710cf3d743b0ea04dab73a7c93e30f (diff) |
pad: add gst_pad_get_stream_id() utility function
API: gst_pad_get_stream_id()
Diffstat (limited to 'gst')
-rw-r--r-- | gst/gstutils.c | 40 | ||||
-rw-r--r-- | gst/gstutils.h | 2 |
2 files changed, 42 insertions, 0 deletions
diff --git a/gst/gstutils.c b/gst/gstutils.c index 7c20a72ed3..8968024123 100644 --- a/gst/gstutils.c +++ b/gst/gstutils.c @@ -3707,3 +3707,43 @@ gst_pad_create_stream_id (GstPad * pad, GstElement * parent, { return gst_pad_create_stream_id_printf (pad, parent, stream_id, NULL); } + +/** + * gst_pad_get_stream_id: + * @pad: A source #GstPad + * + * Returns the current stream-id for the @pad, or %NULL if none has been + * set yet, i.e. the pad has not received a stream-start event yet. + * + * This is a convenience wrapper around gst_pad_get_sticky_event() and + * gst_event_parse_stream_start(). + * + * The returned stream-id string should be treated as an opaque string, its + * contents should not be interpreted. + * + * Returns: a newly-allocated copy of the stream-idfor @pad, or %NULL. + * g_free() the returned string when no longer needed. + * + * Since: 1.2 + */ +gchar * +gst_pad_get_stream_id (GstPad * pad) +{ + const gchar *stream_id = NULL; + GstEvent *event; + gchar *ret = NULL; + + g_return_val_if_fail (GST_IS_PAD (pad), NULL); + + event = gst_pad_get_sticky_event (pad, GST_EVENT_STREAM_START, 0); + if (event != NULL) { + gst_event_parse_stream_start (event, &stream_id); + ret = g_strdup (stream_id); + gst_event_unref (event); + GST_LOG_OBJECT (pad, "pad has stream-id '%s'", ret); + } else { + GST_DEBUG_OBJECT (pad, "pad has not received a stream-start event yet"); + } + + return ret; +} diff --git a/gst/gstutils.h b/gst/gstutils.h index aa216dc49e..219e607bd0 100644 --- a/gst/gstutils.h +++ b/gst/gstutils.h @@ -892,6 +892,8 @@ gchar * gst_pad_create_stream_id (GstPad * pad, Gs gchar * gst_pad_create_stream_id_printf (GstPad * pad, GstElement * parent, const gchar *stream_id, ...); gchar * gst_pad_create_stream_id_printf_valist (GstPad * pad, GstElement * parent, const gchar *stream_id, va_list var_args); +gchar * gst_pad_get_stream_id (GstPad * pad); + /* bin functions */ void gst_bin_add_many (GstBin *bin, GstElement *element_1, ...) G_GNUC_NULL_TERMINATED; void gst_bin_remove_many (GstBin *bin, GstElement *element_1, ...) G_GNUC_NULL_TERMINATED; |