[banshee/gapless-ng: 820/836] Revert "[libbanshee]Fix video playback with playbin2"



commit 86784957046b445f4a57712aadd37784d3eb3658
Author: Christopher James Halse Rogers <raof ubuntu com>
Date:   Fri Feb 5 11:27:20 2010 +1100

    Revert "[libbanshee]Fix video playback with playbin2"
    
    This reverts commit 75105342186deb69e2f59bf778f095736c61a98b.
    
    This worked-around a bug in playbin2.  We will now only use playbin2
    if we've got a new enough version to have all the fixes, so we can
    drop this workaround.

 libbanshee/banshee-player-private.h |    1 -
 libbanshee/banshee-player-video.c   |   16 +++++++++-------
 2 files changed, 9 insertions(+), 8 deletions(-)
---
diff --git a/libbanshee/banshee-player-private.h b/libbanshee/banshee-player-private.h
index 0f5a617..a098628 100644
--- a/libbanshee/banshee-player-private.h
+++ b/libbanshee/banshee-player-private.h
@@ -108,7 +108,6 @@ struct BansheePlayer {
     GstElement *audiobin;
     GstElement *equalizer;
     GstElement *preamp;
-    GstElement *videosink;
     gint equalizer_status;
     gdouble current_volume;
     
diff --git a/libbanshee/banshee-player-video.c b/libbanshee/banshee-player-video.c
index 4adcdfc..21bc0ce 100644
--- a/libbanshee/banshee-player-video.c
+++ b/libbanshee/banshee-player-video.c
@@ -37,14 +37,15 @@
 static gboolean
 bp_video_find_xoverlay (BansheePlayer *player)
 {
+    GstElement *video_sink = NULL;
     GstElement *xoverlay;
     GstXOverlay *previous_xoverlay;
 
-    g_return_val_if_fail (IS_BANSHEE_PLAYER (player), FALSE);
-    
     previous_xoverlay = player->xoverlay;
     
-    if (player->videosink == NULL) {
+    g_object_get (player->playbin, "video-sink", &video_sink, NULL);
+    
+    if (video_sink == NULL) {
         player->xoverlay = NULL;
         if (previous_xoverlay != NULL) {
             gst_object_unref (previous_xoverlay);
@@ -53,9 +54,9 @@ bp_video_find_xoverlay (BansheePlayer *player)
         return FALSE;
     }
     
-    xoverlay = GST_IS_BIN (player->videosink)
-        ? gst_bin_get_by_interface (GST_BIN (player->videosink), GST_TYPE_X_OVERLAY)
-        : player->videosink;
+    xoverlay = GST_IS_BIN (video_sink)
+        ? gst_bin_get_by_interface (GST_BIN (video_sink), GST_TYPE_X_OVERLAY)
+        : video_sink;
     
     player->xoverlay = GST_IS_X_OVERLAY (xoverlay) ? GST_X_OVERLAY (xoverlay) : NULL;
     
@@ -73,6 +74,8 @@ bp_video_find_xoverlay (BansheePlayer *player)
         g_object_set (G_OBJECT (player->xoverlay), "handle-events", FALSE, NULL);
     }
 
+    gst_object_unref (video_sink);
+
     return player->xoverlay != NULL;
 }
 
@@ -175,7 +178,6 @@ _bp_video_pipeline_setup (BansheePlayer *player, GstBus *bus)
     #endif
     
     #endif
-    player->videosink = videosink;
 }
 
 P_INVOKE void



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