[Xfce4-commits] <parole:master> Added fix for subtitles and crashes with audio.

Sean Davis noreply at xfce.org
Mon Jul 23 01:26:22 CEST 2012


Updating branch refs/heads/master
         to cddf2b238a23272f7926108043edd6beee428dc8 (commit)
       from 4fa9a307d345110ae8fd954fb25c4123aebbc055 (commit)

commit cddf2b238a23272f7926108043edd6beee428dc8
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Thu Jul 19 16:58:52 2012 -0400

    Added fix for subtitles and crashes with audio.

 src/gst/parole-gst.c |   15 +++++++++++++++
 src/gst/parole-gst.h |    2 ++
 src/parole-player.c  |    9 +++++++--
 3 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/src/gst/parole-gst.c b/src/gst/parole-gst.c
index b8614d3..35e4895 100644
--- a/src/gst/parole-gst.c
+++ b/src/gst/parole-gst.c
@@ -2266,6 +2266,18 @@ gst_get_lang_list_for_type (ParoleGst * gst, const gchar * type_name)
   return g_list_reverse (ret);
 }
 
+gboolean
+gst_get_has_video( ParoleGst *gst )
+{
+	gboolean playing_video;
+
+	g_object_get (G_OBJECT (gst->priv->stream), 
+		  "has-video", &playing_video,
+		  NULL);
+		  
+	return playing_video;
+}
+
 void
 gst_set_current_audio_track( ParoleGst *gst, gint track_no )
 {
@@ -2275,7 +2287,10 @@ gst_set_current_audio_track( ParoleGst *gst, gint track_no )
 void
 gst_set_current_subtitle_track( ParoleGst *gst, gint track_no )
 {
+	if (track_no >= 0)
 	g_object_set (G_OBJECT (gst->priv->playbin), "current-text", (track_no-1), NULL);
+	else
+	g_object_set (G_OBJECT (gst->priv->playbin), "current-text", (NULL), NULL);
 }
 
 const ParoleStream     *parole_gst_get_stream 		(ParoleGst *gst)
diff --git a/src/gst/parole-gst.h b/src/gst/parole-gst.h
index 648dc0a..680c928 100644
--- a/src/gst/parole-gst.h
+++ b/src/gst/parole-gst.h
@@ -142,6 +142,8 @@ void 			parole_gst_set_cursor_visible 	(ParoleGst *gst,
 							 
 GList *			gst_get_lang_list_for_type (ParoleGst * gst, const gchar * type_name);
 
+gboolean		gst_get_has_video( ParoleGst *gst );
+
 void			gst_set_current_audio_track( ParoleGst *gst, gint track_no );
 void			gst_set_current_subtitle_track( ParoleGst *gst, gint track_no );
 
diff --git a/src/parole-player.c b/src/parole-player.c
index 7daccf6..688fc7b 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -495,6 +495,7 @@ static void
 parole_player_reset (ParolePlayer *player)
 {
 	player->priv->update_languages = TRUE;
+	gtk_widget_hide(GTK_WIDGET(player->priv->infobar));
     parole_player_change_range_value (player, 0);
 
     if ( player->priv->row )
@@ -625,8 +626,12 @@ parole_player_update_languages (ParolePlayer *player, ParoleGst *gst)
 {
 	if (player->priv->update_languages == TRUE)
 	{
-		parole_player_update_audio_tracks(player, gst);
-		parole_player_update_subtitles(player, gst);
+		if (gst_get_has_video( PAROLE_GST(player->priv->gst) ))
+		{
+			parole_player_update_audio_tracks(player, gst);
+		
+			parole_player_update_subtitles(player, gst);
+		}
 		player->priv->update_languages = FALSE;
 	}
 }


More information about the Xfce4-commits mailing list