From a3dd59e97acc7992896cc5d4d92198abccc0b974 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Mon, 17 Jan 2011 11:51:49 -0300 Subject: [PATCH] event: Adding new renegotiate event --- gst/gstevent.c | 24 ++++++++++++++++++++++++ gst/gstevent.h | 6 ++++++ gst/gstquark.c | 2 +- gst/gstquark.h | 3 ++- win32/common/libgstreamer.def | 1 + 5 files changed, 34 insertions(+), 2 deletions(-) diff --git a/gst/gstevent.c b/gst/gstevent.c index 9daa7de..cd56349 100644 --- a/gst/gstevent.c +++ b/gst/gstevent.c @@ -109,6 +109,7 @@ static GstEventQuarks event_quarks[] = { {GST_EVENT_NAVIGATION, "navigation", 0}, {GST_EVENT_LATENCY, "latency", 0}, {GST_EVENT_STEP, "step", 0}, + {GST_EVENT_RENEGOTIATE, "renegotiate", 0}, {GST_EVENT_CUSTOM_UPSTREAM, "custom-upstream", 0}, {GST_EVENT_CUSTOM_DOWNSTREAM, "custom-downstream", 0}, {GST_EVENT_CUSTOM_DOWNSTREAM_OOB, "custom-downstream-oob", 0}, @@ -1282,6 +1283,29 @@ gst_event_parse_step (GstEvent * event, GstFormat * format, guint64 * amount, } /** + * gst_event_new_renegotiate: + + * Create a new renegotiate event. The purpose of the step event is to travel + * upstream and make elements renegotiate its caps. This is useful when changing + * properties or elements on the pipeline. + * + * Returns: (transfer full): a new #GstEvent + * + * Since: 0.10.33 + */ +GstEvent * +gst_event_new_renegotiate (void) +{ + GstEvent *event; + + GST_CAT_INFO (GST_CAT_EVENT, "creating renegotiate event"); + + event = gst_event_new_custom (GST_EVENT_RENEGOTIATE, NULL); + + return event; +} + +/** * gst_event_new_sink_message: * @msg: (transfer none): the #GstMessage to be posted * diff --git a/gst/gstevent.h b/gst/gstevent.h index 74a2017..0b76589 100644 --- a/gst/gstevent.h +++ b/gst/gstevent.h @@ -115,6 +115,8 @@ typedef enum { * Since: 0.10.12 * @GST_EVENT_STEP: A request for stepping through the media. Sinks will usually * execute the step operation. Since: 0.10.24 + * @GST_EVENT_RENEGOTIATE: A request for upstream renegotiating caps. + * Since: 0.10.33 * @GST_EVENT_CUSTOM_UPSTREAM: Upstream custom event * @GST_EVENT_CUSTOM_DOWNSTREAM: Downstream custom event that travels in the * data flow. @@ -150,6 +152,7 @@ typedef enum { GST_EVENT_NAVIGATION = GST_EVENT_MAKE_TYPE (17, 0, FLAG(UPSTREAM)), GST_EVENT_LATENCY = GST_EVENT_MAKE_TYPE (18, 0, FLAG(UPSTREAM)), GST_EVENT_STEP = GST_EVENT_MAKE_TYPE (19, 0, FLAG(UPSTREAM)), + GST_EVENT_RENEGOTIATE = GST_EVENT_MAKE_TYPE (20, 0, FLAG(UPSTREAM)), /* custom events start here */ GST_EVENT_CUSTOM_UPSTREAM = GST_EVENT_MAKE_TYPE (32, 0, FLAG(UPSTREAM)), @@ -523,6 +526,9 @@ GstEvent* gst_event_new_step (GstFormat format, guint64 amoun void gst_event_parse_step (GstEvent *event, GstFormat *format, guint64 *amount, gdouble *rate, gboolean *flush, gboolean *intermediate); +/* renegotiate event */ +GstEvent* gst_event_new_renegotiate (void); + G_END_DECLS #endif /* __GST_EVENT_H__ */ diff --git a/gst/gstquark.c b/gst/gstquark.c index 8e71801..8d46be9 100644 --- a/gst/gstquark.c +++ b/gst/gstquark.c @@ -52,7 +52,7 @@ static const gchar *_quark_strings[] = { "quality", "processed", "dropped", "buffering-ranges", "GstMessageProgress", "code", "text", "percent", "timeout", "GstBufferPoolConfig", "caps", "size", "min-buffers", "max-buffers", "prefix", "postfix", "align", "time", - "GstQueryAllocation", "need-pool", "meta", "pool", "GstEventCaps" + "GstQueryAllocation", "need-pool", "meta", "pool", "GstEventCaps", "GstEventRenegotiate" }; GQuark _priv_gst_quark_table[GST_QUARK_MAX]; diff --git a/gst/gstquark.h b/gst/gstquark.h index 87c0f3e..ecf080e 100644 --- a/gst/gstquark.h +++ b/gst/gstquark.h @@ -146,8 +146,9 @@ typedef enum _GstQuarkId GST_QUARK_META = 117, GST_QUARK_POOL = 118, GST_QUARK_EVENT_CAPS = 119, + GST_QUARK_EVENT_RENEGOTIATE = 120, - GST_QUARK_MAX = 120 + GST_QUARK_MAX = 121 } GstQuarkId; extern GQuark _priv_gst_quark_table[GST_QUARK_MAX]; diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def index 6c1cc12..9dcc4a6 100644 --- a/win32/common/libgstreamer.def +++ b/win32/common/libgstreamer.def @@ -404,6 +404,7 @@ EXPORTS gst_event_new_new_segment_full gst_event_new_qos gst_event_new_qos_full + gst_event_new_renegotiate gst_event_new_seek gst_event_new_sink_message gst_event_new_step -- 2.7.4