mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-28 03:00:35 +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
|
||||
* 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) {
|
||||
need_video = TRUE;
|
||||
} else if (need_audio) {
|
||||
|
@ -2947,25 +2947,27 @@ gst_play_sink_reconfigure (GstPlaySink * playsink)
|
|||
playsink->textchain->textsinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
||||
}
|
||||
|
||||
if (need_vis) {
|
||||
GstPad *srcpad;
|
||||
if (need_vis || need_video) {
|
||||
if (need_vis) {
|
||||
GstPad *srcpad;
|
||||
|
||||
srcpad =
|
||||
gst_element_get_static_pad (playsink->vischain->chain.bin, "src");
|
||||
gst_pad_unlink (srcpad, playsink->videochain->sinkpad);
|
||||
gst_pad_link_full (srcpad, playsink->textchain->videosinkpad,
|
||||
GST_PAD_LINK_CHECK_NOTHING);
|
||||
gst_object_unref (srcpad);
|
||||
} else {
|
||||
if (need_deinterlace)
|
||||
gst_pad_link_full (playsink->videodeinterlacechain->srcpad,
|
||||
playsink->textchain->videosinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
||||
else
|
||||
gst_pad_link_full (playsink->video_srcpad_stream_synchronizer,
|
||||
playsink->textchain->videosinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
||||
srcpad =
|
||||
gst_element_get_static_pad (playsink->vischain->chain.bin, "src");
|
||||
gst_pad_unlink (srcpad, playsink->videochain->sinkpad);
|
||||
gst_pad_link_full (srcpad, playsink->textchain->videosinkpad,
|
||||
GST_PAD_LINK_CHECK_NOTHING);
|
||||
gst_object_unref (srcpad);
|
||||
} else {
|
||||
if (need_deinterlace)
|
||||
gst_pad_link_full (playsink->videodeinterlacechain->srcpad,
|
||||
playsink->textchain->videosinkpad, GST_PAD_LINK_CHECK_NOTHING);
|
||||
else
|
||||
gst_pad_link_full (playsink->video_srcpad_stream_synchronizer,
|
||||
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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue