event: Adding new renegotiate event
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>
Mon, 17 Jan 2011 14:51:49 +0000 (11:51 -0300)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 5 May 2011 13:02:39 +0000 (15:02 +0200)
gst/gstevent.c
gst/gstevent.h
gst/gstquark.c
gst/gstquark.h
win32/common/libgstreamer.def

index 9daa7de..cd56349 100644 (file)
@@ -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
  *
index 74a2017..0b76589 100644 (file)
@@ -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__ */
index 8e71801..8d46be9 100644 (file)
@@ -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];
index 87c0f3e..ecf080e 100644 (file)
@@ -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];
index 6c1cc12..9dcc4a6 100644 (file)
@@ -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