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

Rémi Denis-Courmont remi at remlab.net
Mon Jan 13 15:47:57 CET 2020


Hi,

Does VA require an actual window? I'd think it only requires a display, so a vout_window_t in disabled state should suffice.

Le 13 janvier 2020 15:56:43 GMT+02:00, Thomas Guillem <thomas at gllm.fr> a écrit :
>
>On Mon, Jan 13, 2020, at 13:35, Steve Lhomme wrote:
>> "In some cases (nvdec, mmal, mediacodec ?) the actual size of the
>video 
>> to decode is known only after data have been processed, long after
>the 
>> device is setup to use with this API. There are hacks to try to guess
>
>> the size early but in the end it's just a hack."
>
>What to we do when we have a hw decoder that doesn't know its actual
>size but a window is required ? (vaapi).
>
>> 
>> This removes the need for these hacks for those using a decoder
>device 
>> that doesn't need a window.
>> 
>> On 2020-01-13 13:27, Alexandre Janniaux wrote:
>> > 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
>> > _______________________________________________
>> > vlc-devel mailing list
>> > To unsubscribe or modify your subscription options:
>> > https://mailman.videolan.org/listinfo/vlc-devel
>> > 
>> _______________________________________________
>> vlc-devel mailing list
>> To unsubscribe or modify your subscription options:
>> https://mailman.videolan.org/listinfo/vlc-devel
>_______________________________________________
>vlc-devel mailing list
>To unsubscribe or modify your subscription options:
>https://mailman.videolan.org/listinfo/vlc-devel

-- 
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20200113/25606a1b/attachment.html>


More information about the vlc-devel mailing list