mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-04 09:42:19 +00:00
playsink: Fix subtitle rendering if there's no video, no visualizations but a text-sink
This commit is contained in:
parent
fe0e2d65e1
commit
4872c7bf75
1 changed files with 20 additions and 18 deletions
|
@ -2583,7 +2583,7 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
|
||||||
|
|
||||||
/* we have a text_pad and we need text rendering, in this case we need a
|
/* we have a text_pad and we need text rendering, in this case we need a
|
||||||
* video_pad to combine the video with the text or visualizations */
|
* video_pad to combine the video with the text or visualizations */
|
||||||
if (need_text && !need_video) {
|
if (need_text && !need_video && !playsink->text_sink) {
|
||||||
if (playsink->video_pad) {
|
if (playsink->video_pad) {
|
||||||
need_video = TRUE;
|
need_video = TRUE;
|
||||||
} else if (need_audio) {
|
} else if (need_audio) {
|
||||||
|
@ -2947,25 +2947,27 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
|
||||||
playsink->textchain->textsinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
playsink->textchain->textsinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (need_vis) {
|
if (need_vis || need_video) {
|
||||||
GstPad *srcpad;
|
if (need_vis) {
|
||||||
|
GstPad *srcpad;
|
||||||
|
|
||||||
srcpad =
|
srcpad =
|
||||||
gst_element_get_static_pad (playsink->vischain->chain.bin, "src");
|
gst_element_get_static_pad (playsink->vischain->chain.bin, "src");
|
||||||
gst_pad_unlink (srcpad, playsink->videochain->sinkpad);
|
gst_pad_unlink (srcpad, playsink->videochain->sinkpad);
|
||||||
gst_pad_link_full (srcpad, playsink->textchain->videosinkpad,
|
gst_pad_link_full (srcpad, playsink->textchain->videosinkpad,
|
||||||
GST_PAD_LINK_CHECK_NOTHING);
|
GST_PAD_LINK_CHECK_NOTHING);
|
||||||
gst_object_unref (srcpad);
|
gst_object_unref (srcpad);
|
||||||
} else {
|
} else {
|
||||||
if (need_deinterlace)
|
if (need_deinterlace)
|
||||||
gst_pad_link_full (playsink->videodeinterlacechain->srcpad,
|
gst_pad_link_full (playsink->videodeinterlacechain->srcpad,
|
||||||
playsink->textchain->videosinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
playsink->textchain->videosinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
||||||
else
|
else
|
||||||
gst_pad_link_full (playsink->video_srcpad_stream_synchronizer,
|
gst_pad_link_full (playsink->video_srcpad_stream_synchronizer,
|
||||||
playsink->textchain->videosinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
playsink->textchain->videosinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
||||||
|
}
|
||||||
|
gst_pad_link_full (playsink->textchain->srcpad,
|
||||||
|
playsink->videochain->sinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
||||||
}
|
}
|
||||||
gst_pad_link_full (playsink->textchain->srcpad,
|
|
||||||
playsink->videochain->sinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
|
||||||
|
|
||||||
activate_chain (GST_PLAY_CHAIN (playsink->textchain), TRUE);
|
activate_chain (GST_PLAY_CHAIN (playsink->textchain), TRUE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue