[Bug 756804] New: playsink: text_sink dynamic reconnection is not working
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Mon Oct 19 02:54:29 PDT 2015
https://bugzilla.gnome.org/show_bug.cgi?id=756804
Bug ID: 756804
Summary: playsink: text_sink dynamic reconnection is not
working
Classification: Platform
Product: GStreamer
Version: git master
OS: All
Status: NEW
Severity: normal
Priority: Normal
Component: gst-plugins-base
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: kameyameha at gmail.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
I am playing a HLS stream with subtitles. However, on bitrate change, playback
hangs.
I dumped the .dot file (see attached), and saw that text_sink pad of playsink
was not connected.
Inside gstplaysink.c, following code is there:
if (!playsink->text_sinkpad_stream_synchronizer) {
GValue item = { 0, };
playsink->text_sinkpad_stream_synchronizer =
gst_element_get_request_pad (GST_ELEMENT_CAST
(playsink->stream_synchronizer), "sink_%u");
it = gst_pad_iterate_internal_links
(playsink->text_sinkpad_stream_synchronizer);
g_assert (it);
gst_iterator_next (it, &item);
playsink->text_srcpad_stream_synchronizer = g_value_dup_object (&item);
g_value_unset (&item);
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);
}
Now, in case of dynamic pipeline switching
playsink->text_sinkpad_stream_synchronizer will not be NULL but still below two
lines
need to be executed for its reconnection (as is done for audio/video pads):
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);
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list