Commit a3dd59e9 authored by Thiago Santos's avatar Thiago Santos Committed by Sebastian Dröge

event: Adding new renegotiate event

parent 77569e0a
...@@ -109,6 +109,7 @@ static GstEventQuarks event_quarks[] = { ...@@ -109,6 +109,7 @@ static GstEventQuarks event_quarks[] = {
{GST_EVENT_NAVIGATION, "navigation", 0}, {GST_EVENT_NAVIGATION, "navigation", 0},
{GST_EVENT_LATENCY, "latency", 0}, {GST_EVENT_LATENCY, "latency", 0},
{GST_EVENT_STEP, "step", 0}, {GST_EVENT_STEP, "step", 0},
{GST_EVENT_RENEGOTIATE, "renegotiate", 0},
{GST_EVENT_CUSTOM_UPSTREAM, "custom-upstream", 0}, {GST_EVENT_CUSTOM_UPSTREAM, "custom-upstream", 0},
{GST_EVENT_CUSTOM_DOWNSTREAM, "custom-downstream", 0}, {GST_EVENT_CUSTOM_DOWNSTREAM, "custom-downstream", 0},
{GST_EVENT_CUSTOM_DOWNSTREAM_OOB, "custom-downstream-oob", 0}, {GST_EVENT_CUSTOM_DOWNSTREAM_OOB, "custom-downstream-oob", 0},
...@@ -1281,6 +1282,29 @@ gst_event_parse_step (GstEvent * event, GstFormat * format, guint64 * amount, ...@@ -1281,6 +1282,29 @@ gst_event_parse_step (GstEvent * event, GstFormat * format, guint64 * amount,
GST_QUARK (INTERMEDIATE))); GST_QUARK (INTERMEDIATE)));
} }
/**
* 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: * gst_event_new_sink_message:
* @msg: (transfer none): the #GstMessage to be posted * @msg: (transfer none): the #GstMessage to be posted
......
...@@ -115,6 +115,8 @@ typedef enum { ...@@ -115,6 +115,8 @@ typedef enum {
* Since: 0.10.12 * Since: 0.10.12
* @GST_EVENT_STEP: A request for stepping through the media. Sinks will usually * @GST_EVENT_STEP: A request for stepping through the media. Sinks will usually
* execute the step operation. Since: 0.10.24 * 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_UPSTREAM: Upstream custom event
* @GST_EVENT_CUSTOM_DOWNSTREAM: Downstream custom event that travels in the * @GST_EVENT_CUSTOM_DOWNSTREAM: Downstream custom event that travels in the
* data flow. * data flow.
...@@ -150,6 +152,7 @@ typedef enum { ...@@ -150,6 +152,7 @@ typedef enum {
GST_EVENT_NAVIGATION = GST_EVENT_MAKE_TYPE (17, 0, FLAG(UPSTREAM)), GST_EVENT_NAVIGATION = GST_EVENT_MAKE_TYPE (17, 0, FLAG(UPSTREAM)),
GST_EVENT_LATENCY = GST_EVENT_MAKE_TYPE (18, 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_STEP = GST_EVENT_MAKE_TYPE (19, 0, FLAG(UPSTREAM)),
GST_EVENT_RENEGOTIATE = GST_EVENT_MAKE_TYPE (20, 0, FLAG(UPSTREAM)),
/* custom events start here */ /* custom events start here */
GST_EVENT_CUSTOM_UPSTREAM = GST_EVENT_MAKE_TYPE (32, 0, FLAG(UPSTREAM)), 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 ...@@ -523,6 +526,9 @@ GstEvent* gst_event_new_step (GstFormat format, guint64 amoun
void gst_event_parse_step (GstEvent *event, GstFormat *format, guint64 *amount, void gst_event_parse_step (GstEvent *event, GstFormat *format, guint64 *amount,
gdouble *rate, gboolean *flush, gboolean *intermediate); gdouble *rate, gboolean *flush, gboolean *intermediate);
/* renegotiate event */
GstEvent* gst_event_new_renegotiate (void);
G_END_DECLS G_END_DECLS
#endif /* __GST_EVENT_H__ */ #endif /* __GST_EVENT_H__ */
...@@ -52,7 +52,7 @@ static const gchar *_quark_strings[] = { ...@@ -52,7 +52,7 @@ static const gchar *_quark_strings[] = {
"quality", "processed", "dropped", "buffering-ranges", "GstMessageProgress", "quality", "processed", "dropped", "buffering-ranges", "GstMessageProgress",
"code", "text", "percent", "timeout", "GstBufferPoolConfig", "caps", "size", "code", "text", "percent", "timeout", "GstBufferPoolConfig", "caps", "size",
"min-buffers", "max-buffers", "prefix", "postfix", "align", "time", "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]; GQuark _priv_gst_quark_table[GST_QUARK_MAX];
......
...@@ -146,8 +146,9 @@ typedef enum _GstQuarkId ...@@ -146,8 +146,9 @@ typedef enum _GstQuarkId
GST_QUARK_META = 117, GST_QUARK_META = 117,
GST_QUARK_POOL = 118, GST_QUARK_POOL = 118,
GST_QUARK_EVENT_CAPS = 119, GST_QUARK_EVENT_CAPS = 119,
GST_QUARK_EVENT_RENEGOTIATE = 120,
GST_QUARK_MAX = 120 GST_QUARK_MAX = 121
} GstQuarkId; } GstQuarkId;
extern GQuark _priv_gst_quark_table[GST_QUARK_MAX]; extern GQuark _priv_gst_quark_table[GST_QUARK_MAX];
......
...@@ -404,6 +404,7 @@ EXPORTS ...@@ -404,6 +404,7 @@ EXPORTS
gst_event_new_new_segment_full gst_event_new_new_segment_full
gst_event_new_qos gst_event_new_qos
gst_event_new_qos_full gst_event_new_qos_full
gst_event_new_renegotiate
gst_event_new_seek gst_event_new_seek
gst_event_new_sink_message gst_event_new_sink_message
gst_event_new_step gst_event_new_step
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment