[rhythmbox] xfade: start fixing filter addition and removal



commit 84b82ccdd3c4648c4c7e306523eb5e35882732a3
Author: Jonathan Matthew <jonathan d14n org>
Date:   Wed Nov 4 23:00:54 2009 +1000

    xfade: start fixing filter addition and removal
    
    A couple of obvious problems: an extra unref when removing a filter, and
    blocking the filterbin src pad to add and remove filters.  Better to
    block the previous element instead.
    
    It still doesn't work very well, but at least it works some of the time
    now.

 backends/gstreamer/rb-player-gst-xfade.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
---
diff --git a/backends/gstreamer/rb-player-gst-xfade.c b/backends/gstreamer/rb-player-gst-xfade.c
index a3b424c..3542497 100644
--- a/backends/gstreamer/rb-player-gst-xfade.c
+++ b/backends/gstreamer/rb-player-gst-xfade.c
@@ -4171,7 +4171,6 @@ really_remove_filter (GstPad *pad,
 		 * the ghostpad to the previous element.
 		 */
 		gst_ghost_pad_set_target (GST_GHOST_PAD (nextpad), prevpad);
-		gst_object_unref (nextpad);
 	} else {
 		/* we are in the middle, so link the previous and next elements */
 		gst_object_unref (nextpad);
@@ -4211,7 +4210,7 @@ rb_player_gst_xfade_add_filter (RBPlayerGstFilter *iplayer, GstElement *element)
 
 	return pipeline_op (player,
 			    element,
-			    player->priv->filterbin,
+			    player->priv->volume,
 			    (GstPadBlockCallback) really_add_filter);
 }
 
@@ -4227,7 +4226,7 @@ rb_player_gst_xfade_remove_filter (RBPlayerGstFilter *iplayer, GstElement *eleme
 	}
 	return pipeline_op (player,
 			    element,
-			    player->priv->filterbin,
+			    player->priv->volume,
 			    (GstPadBlockCallback) really_remove_filter);
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]