Blob Blame History Raw
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