From 0fcf8001b16727cdd0e0a26f8ac5a76126a20d5d Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Fri, 16 Oct 2009 01:26:10 +0100 Subject: [PATCH] autoconvert: Use gst_pad_peer_accept_caps instead of gst_pad_set_caps. gst_pad_set_caps on the internal source pad always succeeds, because caps propagate to the peer with buffers, not immediately. Using gst_pad_peer_accept_caps properly checks whether the actual sub-element can accept caps when they change. https://bugzilla.gnome.org/show_bug.cgi?id=575568 --- gst/autoconvert/gstautoconvert.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gst/autoconvert/gstautoconvert.c b/gst/autoconvert/gstautoconvert.c index 39b9c78481..4675c4127e 100644 --- a/gst/autoconvert/gstautoconvert.c +++ b/gst/autoconvert/gstautoconvert.c @@ -692,7 +692,7 @@ gst_auto_convert_sink_setcaps (GstPad * pad, GstCaps * caps) subelement = gst_auto_convert_get_subelement (autoconvert); if (subelement) { - if (gst_pad_set_caps (autoconvert->current_internal_srcpad, caps)) { + if (gst_pad_peer_accept_caps (autoconvert->current_internal_srcpad, caps)) { /* If we can set the new caps on the current element, * then we just get out */ @@ -777,7 +777,7 @@ gst_auto_convert_sink_setcaps (GstPad * pad, GstCaps * caps) internal_sinkpad_quark); /* Now we check if the element can really accept said caps */ - if (!gst_pad_set_caps (internal_srcpad, caps)) { + if (!gst_pad_peer_accept_caps (internal_srcpad, caps)) { GST_DEBUG_OBJECT (autoconvert, "Could not set %s:%s to %" GST_PTR_FORMAT, GST_DEBUG_PAD_NAME (internal_srcpad), caps); goto next_element;