basetransform: Handle the new renegotiate event
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>
Mon, 17 Jan 2011 17:13:46 +0000 (14:13 -0300)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 5 May 2011 13:02:46 +0000 (15:02 +0200)
Let basetransform push a renegotiate event upstream
when it gets a new suggestion

libs/gst/base/gstbasetransform.c

index 2247995..8868ea4 100644 (file)
@@ -1844,6 +1844,9 @@ gst_base_transform_src_eventfunc (GstBaseTransform * trans, GstEvent * event)
       gst_base_transform_update_qos (trans, proportion, diff, timestamp);
       break;
     }
+    case GST_EVENT_RENEGOTIATE:
+      gst_pad_set_caps (GST_BASE_TRANSFORM_SINK_PAD (trans), NULL);
+      break;
     default:
       break;
   }
@@ -2579,6 +2582,11 @@ gst_base_transform_suggest (GstBaseTransform * trans, GstCaps * caps,
   trans->priv->suggest_pending = TRUE;
   GST_DEBUG_OBJECT (trans, "new suggest %" GST_PTR_FORMAT, caps);
   GST_OBJECT_UNLOCK (trans->sinkpad);
+
+  /* push the renegotiate event */
+  if (!gst_pad_push_event (GST_BASE_TRANSFORM_SINK_PAD (trans),
+          gst_event_new_renegotiate ()))
+    GST_DEBUG_OBJECT (trans, "Renegotiate event wasn't handled");
 }
 
 /**