[vlc-devel] [PATCH 3/4] video_output: try to create a decoder device even if creating the window failed

Alexandre Janniaux ajanni at videolabs.io
Mon Jan 13 13:27:04 CET 2020


Hi,

This looks dangerous if it is expected to have an enabled
window at decoder device creation. vout_window handle
values will basically be undefined without any way for the
decoder device to know it. Why do you need this?

Regards,
--
Alexandre Janniaux
Videolabs

On Mon, Jan 13, 2020 at 12:07:33PM +0100, Steve Lhomme wrote:
> ---
>  src/video_output/video_output.c | 20 +++++++++-----------
>  1 file changed, 9 insertions(+), 11 deletions(-)
>
> diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c
> index 5d583dbe0ca..9540707ab2b 100644
> --- a/src/video_output/video_output.c
> +++ b/src/video_output/video_output.c
> @@ -2099,20 +2099,18 @@ vlc_decoder_device *vout_GetDevice(const vout_device_configuration_t *cfg)
>      assert(cfg->fmt != NULL);
>      vout_thread_sys_t *sys = cfg->vout->p;
>
> -    if (!VoutCheckFormat(cfg->fmt))
> -        return NULL;
> -
> -    video_format_t original;
> -    VoutFixFormat(&original, cfg->fmt);
> -
>      vlc_mutex_lock(&sys->window_lock);
> -    int res = EnableWindowLocked(cfg->vout, &original);
> -    if (res == 0 && sys->dec_device == NULL)
> +    if (VoutCheckFormat(cfg->fmt))
> +    {
> +        video_format_t original;
> +        VoutFixFormat(&original, cfg->fmt);
> +
> +        EnableWindowLocked(cfg->vout, &original);
> +        video_format_Clean(&original);
> +    }
> +    if (sys->dec_device == NULL)
>          sys->dec_device = vlc_decoder_device_Create(&cfg->vout->obj, sys->display_cfg.window);
>      dec_device = sys->dec_device ? vlc_decoder_device_Hold( sys->dec_device ) : NULL;
>      vlc_mutex_unlock(&sys->window_lock);
> -    video_format_Clean(&original);
> -    if (res != 0)
> -        return NULL;
>      return dec_device;
>  }
> --
> 2.17.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