[vlc-devel] [PATCH 01/13] vout: gather window locking/unlocking
Thomas Guillem
thomas at gllm.fr
Thu Jun 13 08:04:15 CEST 2019
Hi,
OK for the whole set.
On Wed, Jun 12, 2019, at 19:48, RĂ©mi Denis-Courmont wrote:
> ---
> src/video_output/video_output.c | 36 ++++++++++++++++-----------------
> 1 file changed, 17 insertions(+), 19 deletions(-)
>
> diff --git a/src/video_output/video_output.c
> b/src/video_output/video_output.c
> index e9c9da1305..dc137711cf 100644
> --- a/src/video_output/video_output.c
> +++ b/src/video_output/video_output.c
> @@ -1448,26 +1448,12 @@ static int vout_Start(vout_thread_t *vout,
> const vout_configuration_t *cfg)
> sys->filter.chain_interactive = filter_chain_NewVideo(vout, true,
> &owner);
>
> vout_display_cfg_t dcfg;
> + int x = 0, y = 0, w = 0, h = 0;
> + unsigned num, den;
>
> vlc_mutex_lock(&sys->window_lock);
> dcfg = sys->display_cfg;
> - /* Any configuration change after unlocking will involve a control request
> - * that will be processed in the new thread. There may also be some pending
> - * control requests for configuration change already visible in
> - * sys->display_cfg, leading to processing of extra harmless and useless
> - * control request processing.
> - *
> - * TODO: display lock separate from window lock.
> - */
> - vlc_mutex_unlock(&sys->window_lock);
> -
> - if (vout_OpenWrapper(vout, sys->splitter_name, &dcfg))
> - goto error;
>
> - unsigned num = 0, den = 0;
> - int x = 0, y = 0, w = 0, h = 0;
> -
> - vlc_mutex_lock(&sys->window_lock); /* see above */
> switch (sys->source.crop.mode) {
> case VOUT_CROP_NONE:
> break;
> @@ -1488,13 +1474,25 @@ static int vout_Start(vout_thread_t *vout,
> const vout_configuration_t *cfg)
> h = -(int)sys->source.crop.border.bottom;
> break;
> }
> - vlc_mutex_unlock(&sys->window_lock);
> - vout_SetDisplayCrop(sys->display, num, den, x, y, w, h);
>
> - vlc_mutex_lock(&sys->window_lock); /* see above */
> num = sys->source.dar.num;
> den = sys->source.dar.den;
> + /*
> + * Any configuration change after unlocking will involve a control request
> + * that will be processed in the new thread. There may also be some pending
> + * control requests for configuration change already visible in
> + * sys->display_cfg, leading to processing of extra harmless and useless
> + * control request processing.
> + *
> + * TODO: display lock separate from window lock.
> + */
> vlc_mutex_unlock(&sys->window_lock);
> +
> + if (vout_OpenWrapper(vout, sys->splitter_name, &dcfg))
> + goto error;
> +
> + vout_SetDisplayCrop(sys->display, num, den, x, y, w, h);
> +
> if (num != 0 && den != 0)
> vout_SetDisplayAspect(sys->display, num, den);
>
> --
> 2.20.1
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list