diff --git a/gst/gstevent.c b/gst/gstevent.c index 43a7704ed4..14d63e5348 100644 --- a/gst/gstevent.c +++ b/gst/gstevent.c @@ -240,6 +240,25 @@ gst_event_discont_get_value (GstEvent *event, GstFormat format, gint64 *value) } +/** + * gst_event_has_new_media: + * @event: The event to check + * + * Checks if a given event indicates a new media. + * + * Returns: True if the event indicates a new media + */ +gboolean +gst_event_has_new_media (GstEvent *event) +{ + g_return_val_if_fail (GST_IS_EVENT (event), FALSE); + g_return_val_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_DISCONTINUOUS || + GST_EVENT_TYPE (event) == GST_EVENT_NEW_MEDIA, FALSE); + if (GST_EVENT_TYPE (event) == GST_EVENT_NEW_MEDIA) + return TRUE; + + return GST_EVENT_DISCONT_NEW_MEDIA (event); +} /** * gst_event_new_size: * @format: The format of the size value diff --git a/gst/gstevent.h b/gst/gstevent.h index e26e50c5f9..1f9a18a6e0 100644 --- a/gst/gstevent.h +++ b/gst/gstevent.h @@ -207,6 +207,7 @@ GstEvent* gst_event_new_size (GstFormat format, gint64 value); GstEvent* gst_event_new_discontinuous (gboolean new_media, GstFormat format1, ...); gboolean gst_event_discont_get_value (GstEvent *event, GstFormat format, gint64 *value); +gboolean gst_event_has_new_media (GstEvent *event); #define gst_event_new_filler() gst_event_new(GST_EVENT_FILLER)