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:
Sebastian Dröge 2010-04-23 16:08:14 +02:00
parent 5cfd799076
commit cc8a5bdcd3

View file

@ -2972,8 +2972,25 @@ autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps,
{ {
GstCaps *subcaps; GstCaps *subcaps;
gboolean ret = FALSE; 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); ret = !gst_caps_can_intersect (subcaps, caps);
gst_caps_unref (subcaps); gst_caps_unref (subcaps);