From 8fad4b8eab77301a88274186afde06df13e1ee90 Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 31 Oct 2016 13:55:32 +0100 Subject: [PATCH] player: enable no-video subtitle display on coverart too Coverart mode has the same issue as no-video mode, except that the video chain is fully active. It shows only 1 frame at the start, which would normally mean that only the subtitle at timestamp 0 is shown. Use the no-video subtitle rendering mode in this case instead. (This still doesn't handle subtitle display when playing cover-art without audio, or playing a single image. This is because there's nothing that will advance playback_pts.) --- player/playloop.c | 2 +- player/sub.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/player/playloop.c b/player/playloop.c index 2a4509ab95..f72994e8a9 100644 --- a/player/playloop.c +++ b/player/playloop.c @@ -1095,7 +1095,7 @@ void run_playloop(struct MPContext *mpctx) handle_dummy_ticks(mpctx); update_osd_msg(mpctx); - if (!mpctx->vo_chain) + if (mpctx->video_status == STATUS_EOF) update_subtitles(mpctx, mpctx->playback_pts); handle_eof(mpctx); diff --git a/player/sub.c b/player/sub.c index 6abb4e3326..747eccef3e 100644 --- a/player/sub.c +++ b/player/sub.c @@ -115,7 +115,7 @@ static bool update_subtitle(struct MPContext *mpctx, double video_pts, // Handle displaying subtitles on VO with no video being played. This is // quite differently, because normally subtitles are redrawn on new video // frames, using the video frames' timestamps. - if (mpctx->video_out && !mpctx->vo_chain) { + if (mpctx->video_out && mpctx->video_status == STATUS_EOF) { if (osd_get_force_video_pts(mpctx->osd) != video_pts) { osd_set_force_video_pts(mpctx->osd, video_pts); osd_query_and_reset_want_redraw(mpctx->osd);