vlc | branch: master | Rémi Denis-Courmont <r...@remlab.net> | Wed Jul 26 21:54:56 2017 +0300| [5908911afb80b6c274525018c1fbf55ebebac594] | committer: Rémi Denis-Courmont
vout: make vout_FilterDisplay() work always Deal with the trivial case whereby the vout is unfiltered. Simplify the call sites accordingly. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5908911afb80b6c274525018c1fbf55ebebac594 --- src/video_output/display.c | 8 +++++--- src/video_output/video_output.c | 16 ++++++++-------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/video_output/display.c b/src/video_output/display.c index 055bb7d01d..fe2c86e75c 100644 --- a/src/video_output/display.c +++ b/src/video_output/display.c @@ -1092,11 +1092,14 @@ picture_t *vout_FilterDisplay(vout_display_t *vd, picture_t *picture) { vout_display_owner_sys_t *osys = vd->owner.sys; - assert(osys->filters); + if (osys->filters == NULL) + return picture; + if (filter_chain_IsEmpty(osys->filters)) { picture_Release(picture); return NULL; } + return filter_chain_VideoFilter(osys->filters, picture); } @@ -1451,8 +1454,7 @@ static void SplitterPrepare(vout_display_t *vd, } for (int i = 0; i < sys->count; i++) { - if (vout_IsDisplayFiltered(sys->display[i])) - sys->picture[i] = vout_FilterDisplay(sys->display[i], sys->picture[i]); + sys->picture[i] = vout_FilterDisplay(sys->display[i], sys->picture[i]); if (sys->picture[i]) vout_display_Prepare(sys->display[i], sys->picture[i], NULL); } diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index 336b97e7ba..640232a0ea 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -1045,17 +1045,17 @@ static int ThreadDisplayRenderPicture(vout_thread_t *vout, bool is_forced) /* Render the direct buffer */ vout_UpdateDisplaySourceProperties(vd, &todisplay->format); + + todisplay = vout_FilterDisplay(vd, todisplay); + if (todisplay == NULL) { + if (subpic != NULL) + subpicture_Delete(subpic); + return VLC_EGENERIC; + } + if (sys->display.use_dr) { vout_display_Prepare(vd, todisplay, subpic); } else { - todisplay = vout_FilterDisplay(vd, todisplay); - if (todisplay == NULL) - { - if (subpic != NULL) - subpicture_Delete(subpic); - return VLC_EGENERIC; - } - if (!do_dr_spu && !do_early_spu && vout->p->spu_blend && subpic) picture_BlendSubpicture(todisplay, vout->p->spu_blend, subpic); vout_display_Prepare(vd, todisplay, do_dr_spu ? subpic : NULL); _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits