mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 04:01:08 +00:00
playbin2: If a text sink is provided, let subtitle parsing be done by decodebin2 if required
This way subtitle sinks only get buffers in the format that they understand, i.e. raw parsed text in most cases. Fixes bug #614942.
This commit is contained in:
parent
5cfd799076
commit
cc8a5bdcd3
1 changed files with 18 additions and 1 deletions
|
@ -2972,8 +2972,25 @@ autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps,
|
|||
{
|
||||
GstCaps *subcaps;
|
||||
gboolean ret = FALSE;
|
||||
GstElement *text_sink;
|
||||
GstPad *text_sinkpad = NULL;
|
||||
|
||||
text_sink =
|
||||
(group->playbin->text_sink) ? gst_object_ref (group->
|
||||
playbin->text_sink) : NULL;
|
||||
if (text_sink)
|
||||
text_sinkpad = gst_element_get_static_pad (text_sink, "sink");
|
||||
|
||||
if (text_sinkpad) {
|
||||
subcaps = gst_pad_get_caps_reffed (text_sinkpad);
|
||||
gst_object_unref (text_sinkpad);
|
||||
} else {
|
||||
subcaps = gst_subtitle_overlay_create_factory_caps ();
|
||||
}
|
||||
|
||||
if (text_sink)
|
||||
gst_object_unref (text_sink);
|
||||
|
||||
subcaps = gst_subtitle_overlay_create_factory_caps ();
|
||||
ret = !gst_caps_can_intersect (subcaps, caps);
|
||||
gst_caps_unref (subcaps);
|
||||
|
||||
|
|
Loading…
Reference in a new issue