From 76d3a625dad9dc3e655e0272434caf42f787098f Mon Sep 17 00:00:00 2001
From: Jan Schmidt <thaytan@noraisin.net>
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 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/farsight/autoconvert/gstautoconvert.c b/gst/autoconvert/gstautoconvert.c
index 39b9c78..4675c41 100644
--- a/farsight/autoconvert/gstautoconvert.c
+++ b/farsight/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;
--
1.6.0.4