playsink: Fix subpicture overlay when deinterlacing disabled.

Fix a bug when reconfiguring the playsink where the subpicture
stream is broken by attempting to connect it through
streamsynchroniser and second time.
This commit is contained in:
Jan Schmidt 2010-10-26 16:41:28 +01:00
parent 79020ae3f6
commit ee303c441d

View file

@ -2489,21 +2489,23 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
NULL); NULL);
add_chain (GST_PLAY_CHAIN (playsink->textchain), TRUE); add_chain (GST_PLAY_CHAIN (playsink->textchain), TRUE);
playsink->text_sinkpad_stream_synchronizer = if (!playsink->text_sinkpad_stream_synchronizer) {
gst_element_get_request_pad (GST_ELEMENT_CAST playsink->text_sinkpad_stream_synchronizer =
(playsink->stream_synchronizer), "sink_%d"); gst_element_get_request_pad (GST_ELEMENT_CAST
it = gst_pad_iterate_internal_links (playsink->stream_synchronizer), "sink_%d");
(playsink->text_sinkpad_stream_synchronizer); it = gst_pad_iterate_internal_links
g_assert (it); (playsink->text_sinkpad_stream_synchronizer);
gst_iterator_next (it, g_assert (it);
(gpointer *) & playsink->text_srcpad_stream_synchronizer); gst_iterator_next (it,
g_assert (playsink->text_srcpad_stream_synchronizer); (gpointer *) & playsink->text_srcpad_stream_synchronizer);
gst_iterator_free (it); g_assert (playsink->text_srcpad_stream_synchronizer);
gst_iterator_free (it);
gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->text_pad), gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->text_pad),
playsink->text_sinkpad_stream_synchronizer); playsink->text_sinkpad_stream_synchronizer);
gst_pad_link_full (playsink->text_srcpad_stream_synchronizer, gst_pad_link_full (playsink->text_srcpad_stream_synchronizer,
playsink->textchain->textsinkpad, GST_PAD_LINK_CHECK_NOTHING); playsink->textchain->textsinkpad, GST_PAD_LINK_CHECK_NOTHING);
}
if (need_vis) { if (need_vis) {
GstPad *srcpad; GstPad *srcpad;