From d1b26e1d594ab2b63324e43a36330475e98cdf18 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Tue, 11 Sep 2012 15:38:23 +0200 Subject: [PATCH] v4l2: disable renegotiation We can't yet wait for the bufferpool to DRAIN before starting renegotiation so disable it for now. Fixes https://bugzilla.gnome.org/show_bug.cgi?id=682770 --- sys/v4l2/gstv4l2src.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c index f109b1a..4e52e27 100644 --- a/sys/v4l2/gstv4l2src.c +++ b/sys/v4l2/gstv4l2src.c @@ -132,6 +132,7 @@ static gboolean gst_v4l2src_decide_allocation (GstBaseSrc * src, GstQuery * query); static GstFlowReturn gst_v4l2src_fill (GstPushSrc * src, GstBuffer * out); static GstCaps *gst_v4l2src_fixate (GstBaseSrc * basesrc, GstCaps * caps); +static gboolean gst_v4l2src_event (GstBaseSrc * src, GstEvent * event); static gboolean gst_v4l2src_negotiate (GstBaseSrc * basesrc); static void gst_v4l2src_set_property (GObject * object, guint prop_id, @@ -219,6 +220,7 @@ gst_v4l2src_class_init (GstV4l2SrcClass * klass) basesrc_class->stop = GST_DEBUG_FUNCPTR (gst_v4l2src_stop); basesrc_class->query = GST_DEBUG_FUNCPTR (gst_v4l2src_query); basesrc_class->fixate = GST_DEBUG_FUNCPTR (gst_v4l2src_fixate); + basesrc_class->event = GST_DEBUG_FUNCPTR (gst_v4l2src_event); basesrc_class->negotiate = GST_DEBUG_FUNCPTR (gst_v4l2src_negotiate); basesrc_class->decide_allocation = GST_DEBUG_FUNCPTR (gst_v4l2src_decide_allocation); @@ -343,6 +345,22 @@ gst_v4l2src_fixate (GstBaseSrc * basesrc, GstCaps * caps) static gboolean +gst_v4l2src_event (GstBaseSrc * src, GstEvent * event) +{ + GST_DEBUG_OBJECT (src, "handle event %" GST_PTR_FORMAT, event); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_RECONFIGURE: + gst_pad_check_reconfigure (GST_BASE_SRC_PAD (src)); + break; + default: + break; + } + return GST_BASE_SRC_CLASS (parent_class)->event (src, event); +} + + +static gboolean gst_v4l2src_negotiate (GstBaseSrc * basesrc) { GstCaps *thiscaps; -- 2.7.4