From: Sebastian Dröge Date: Thu, 14 Jan 2010 12:36:23 +0000 (+0100) Subject: playsink: Fix disabling of subtitles if subtitles were used before X-Git-Tag: 1.19.3~511^2~8856 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3b842bc98b73a568f0fab91624b9549c415e16ba;p=platform%2Fupstream%2Fgstreamer.git playsink: Fix disabling of subtitles if subtitles were used before In this case the video still goes through the text chain and subtitles are still going in there, in case subtitles are enabled again. This makes sure that re-enabling subtitles happens instantly. Fixes hanging video when disabling subtitles, caused by an unliked video pad. --- diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c index 0887f7a..aaed656 100644 --- a/gst/playback/gstplaysink.c +++ b/gst/playback/gstplaysink.c @@ -1787,7 +1787,8 @@ gst_play_sink_reconfigure (GstPlaySink * playsink) add_chain (GST_PLAY_CHAIN (playsink->videochain), TRUE); activate_chain (GST_PLAY_CHAIN (playsink->videochain), TRUE); /* if we are not part of vis or subtitles, set the ghostpad target */ - if (!need_vis && !need_text) { + if (!need_vis && !need_text && !playsink->text_pad + && !playsink->textchain) { GST_DEBUG_OBJECT (playsink, "ghosting video sinkpad"); gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->video_pad), playsink->videochain->sinkpad); @@ -1859,7 +1860,7 @@ gst_play_sink_reconfigure (GstPlaySink * playsink) } if (!need_video && playsink->video_pad) gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->video_pad), NULL); - if (playsink->text_pad) + if (playsink->text_pad && !playsink->textchain) gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->text_pad), NULL); }