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);
add_chain (GST_PLAY_CHAIN (playsink->textchain), TRUE);
playsink->text_sinkpad_stream_synchronizer =
gst_element_get_request_pad (GST_ELEMENT_CAST
(playsink->stream_synchronizer), "sink_%d");
it = gst_pad_iterate_internal_links
(playsink->text_sinkpad_stream_synchronizer);
g_assert (it);
gst_iterator_next (it,
(gpointer *) & playsink->text_srcpad_stream_synchronizer);
g_assert (playsink->text_srcpad_stream_synchronizer);
gst_iterator_free (it);
if (!playsink->text_sinkpad_stream_synchronizer) {
playsink->text_sinkpad_stream_synchronizer =
gst_element_get_request_pad (GST_ELEMENT_CAST
(playsink->stream_synchronizer), "sink_%d");
it = gst_pad_iterate_internal_links
(playsink->text_sinkpad_stream_synchronizer);
g_assert (it);
gst_iterator_next (it,
(gpointer *) & playsink->text_srcpad_stream_synchronizer);
g_assert (playsink->text_srcpad_stream_synchronizer);
gst_iterator_free (it);
gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->text_pad),
playsink->text_sinkpad_stream_synchronizer);
gst_pad_link_full (playsink->text_srcpad_stream_synchronizer,
playsink->textchain->textsinkpad, GST_PAD_LINK_CHECK_NOTHING);
gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (playsink->text_pad),
playsink->text_sinkpad_stream_synchronizer);
gst_pad_link_full (playsink->text_srcpad_stream_synchronizer,
playsink->textchain->textsinkpad, GST_PAD_LINK_CHECK_NOTHING);
}
if (need_vis) {
GstPad *srcpad;