From 412fc33c508f475f1840b445ed8688fd92bd75a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= Date: Thu, 26 May 2022 13:13:13 +0300 Subject: [PATCH] display: allow owner to set the fitting mode (rather than just the fill flag) --- include/vlc_vout_display.h | 2 +- src/video_output/display.c | 7 +++---- src/video_output/video_output.c | 7 ++++--- src/video_output/vout_wrapper.h | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/vlc_vout_display.h b/include/vlc_vout_display.h index eff794ffc3..4220793ae0 100644 --- a/include/vlc_vout_display.h +++ b/include/vlc_vout_display.h @@ -145,7 +145,7 @@ enum vout_display_query { VOUT_DISPLAY_CHANGE_DISPLAY_SIZE, /** - * Notifies a change of the display fill display flag by the user. + * Notifies a change of the display fitting mode by the user. * * \retval VLC_SUCCESS if the display handled the change * \retval VLC_EGENERIC if a \ref vlc_display_operations::reset_pictures diff --git a/src/video_output/display.c b/src/video_output/display.c index 4589d46e02..66a4b102c6 100644 --- a/src/video_output/display.c +++ b/src/video_output/display.c @@ -545,15 +545,14 @@ void vout_display_SetSize(vout_display_t *vd, unsigned width, unsigned height) vout_display_Reset(vd); } -void vout_SetDisplayFilled(vout_display_t *vd, bool is_filled) +void vout_SetDisplayFitting(vout_display_t *vd, enum vlc_video_fitting fit) { vout_display_priv_t *osys = container_of(vd, vout_display_priv_t, display); - if (is_filled == (osys->cfg.display.fitting != VLC_VIDEO_FIT_NONE)) + if (fit == osys->cfg.display.fitting) return; /* nothing to do */ - osys->cfg.display.fitting = is_filled ? VLC_VIDEO_FIT_SMALLER - : VLC_VIDEO_FIT_NONE; + osys->cfg.display.fitting = fit; if (vout_display_Control(vd, VOUT_DISPLAY_CHANGE_DISPLAY_FILLED)) vout_display_Reset(vd); } diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c index cfbaeab0cc..3e06868772 100644 --- a/src/video_output/video_output.c +++ b/src/video_output/video_output.c @@ -487,18 +487,19 @@ void vout_ChangeDisplaySize(vout_thread_t *vout, void vout_ChangeDisplayFilled(vout_thread_t *vout, bool is_filled) { vout_thread_sys_t *sys = VOUT_THREAD_TO_SYS(vout); + enum vlc_video_fitting fit = is_filled ? VLC_VIDEO_FIT_SMALLER + : VLC_VIDEO_FIT_NONE; assert(!sys->dummy); vlc_mutex_lock(&sys->window_lock); - sys->display_cfg.display.fitting = is_filled ? VLC_VIDEO_FIT_SMALLER - : VLC_VIDEO_FIT_NONE; + sys->display_cfg.display.fitting = fit; /* no window size update here */ vlc_mutex_lock(&sys->display_lock); vlc_mutex_unlock(&sys->window_lock); if (sys->display != NULL) - vout_SetDisplayFilled(sys->display, is_filled); + vout_SetDisplayFitting(sys->display, fit); vlc_mutex_unlock(&sys->display_lock); } diff --git a/src/video_output/vout_wrapper.h b/src/video_output/vout_wrapper.h index 0aae83be9b..9083661323 100644 --- a/src/video_output/vout_wrapper.h +++ b/src/video_output/vout_wrapper.h @@ -34,7 +34,7 @@ bool vout_IsDisplayFiltered(vout_display_t *); picture_t * vout_ConvertForDisplay(vout_display_t *, picture_t *); void vout_FilterFlush(vout_display_t *); -void vout_SetDisplayFilled(vout_display_t *, bool is_filled); +void vout_SetDisplayFitting(vout_display_t *, enum vlc_video_fitting); void vout_SetDisplayZoom(vout_display_t *, unsigned num, unsigned den); void vout_SetDisplayAspect(vout_display_t *, unsigned num, unsigned den); void vout_SetDisplayCrop(vout_display_t *, const struct vout_crop *);