diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index 00dd9ac9ce02f787d7bb45c8bfa6049aff0a0d35..8db67467255a834924a866ae5a482d45484d831a 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -1126,9 +1126,8 @@ static int ThreadDisplayRenderPicture(vout_thread_sys_t *vout, bool render_now) vlc_mutex_lock(&sys->display_lock); /* - * Get the subpicture to be displayed + * Get the rendering date for the current subpicture to be displayed. */ - const bool do_snapshot = vout_snapshot_IsRequested(sys->snapshot); vlc_tick_t system_now = vlc_tick_now(); vlc_tick_t render_subtitle_date; if (sys->pause.is_on) @@ -1150,8 +1149,11 @@ static int ThreadDisplayRenderPicture(vout_thread_sys_t *vout, bool render_now) } /* - * Get the subpicture to be displayed + * Check whether we let the display draw the subpicture itself (when + * do_dr_spu=true), and if we can fallback to blending the subpicture + * ourselves (do_early_spu=true). */ + const bool do_snapshot = vout_snapshot_IsRequested(sys->snapshot); const bool do_dr_spu = !do_snapshot && vd->info.subpicture_chromas && *vd->info.subpicture_chromas != 0; @@ -1203,6 +1205,7 @@ static int ThreadDisplayRenderPicture(vout_thread_sys_t *vout, bool render_now) } } + /* Get the subpicture to be displayed. */ video_format_t fmt_spu_rot; video_format_ApplyRotation(&fmt_spu_rot, &fmt_spu); subpicture_t *subpic = !sys->spu ? NULL :