vlc | branch: master | Steve Lhomme <[email protected]> | Wed Nov 18 15:08:35 2020 +0100| [ec12c2ed804c5f5dcd7683859f1a4a1a08f8a5f6] | committer: Steve Lhomme
video_output: set filter.changed when an aspect-ratio/crop change is detected And use sys->filter.changed to trigger ThreadChangeFilters() after we have a decoded picture to use. The picture_Hold is not because the core needs an extra hold but because the filter call may release the picture the core wants to keep. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=ec12c2ed804c5f5dcd7683859f1a4a1a08f8a5f6 --- src/video_output/video_output.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index 218b13c9d1..276ceb4f41 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -1116,7 +1116,7 @@ static picture_t *ThreadDisplayPreparePicture(vout_thread_sys_t *vout, bool reus vlc_video_context_Release(sys->filter.src_vctx); sys->filter.src_vctx = pic_vctx ? vlc_video_context_Hold(pic_vctx) : NULL; - ThreadChangeFilters(vout); + sys->filter.changed = true; } } } @@ -1128,9 +1128,14 @@ static picture_t *ThreadDisplayPreparePicture(vout_thread_sys_t *vout, bool reus if (sys->displayed.decoded) picture_Release(sys->displayed.decoded); - sys->displayed.decoded = picture_Hold(decoded); + sys->displayed.decoded = decoded; sys->displayed.is_interlaced = !decoded->b_progressive; + + if (sys->filter.changed) + ThreadChangeFilters(vout); + + picture_Hold(sys->displayed.decoded); picture = filter_chain_VideoFilter(sys->filter.chain_static, sys->displayed.decoded); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
