<!DOCTYPE html><html><head><title></title><style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div><br></div><div>On Mon, Jan 13, 2020, at 15:47, Rémi Denis-Courmont wrote:<br></div><blockquote type="cite" id="qt"><div>Hi,<br></div><div><br></div><div>Does VA require an actual window? I'd think it only requires a display, so a vout_window_t in disabled state should suffice.<br></div></blockquote><div><br></div><div>Indeed, we don't have any API that require an enabled window.<br></div><div>VA only need:<br></div><div>    Display *x11dpy = XOpenDisplay(window->display.x11);<br></div><div>    VADisplay vadpy = *vadpyp = vaGetDisplay(x11dpy);<br></div><div><br></div><div>So, I think we could simplify everything by not requiring an enabled window. I that case, you can load the window module, and create the decoder device without a valid size.<br></div><div><br></div><blockquote type="cite" id="qt"><div><br></div><div class="qt-gmail_quote"><div>Le 13 janvier 2020 15:56:43 GMT+02:00, Thomas Guillem <thomas@gllm.fr> a écrit :<br></div><blockquote style="margin-top:0pt;margin-right:0pt;margin-bottom:0pt;margin-left:0.8ex;border-left-color:rgb(204, 204, 204);border-left-style:solid;border-left-width:1px;padding-left:1ex;" class="qt-gmail_quote"><pre class="qt-k9mail"><div><br></div><div>On Mon, Jan 13, 2020, at 13:35, Steve Lhomme wrote:<br></div><blockquote style="margin-top:0pt;margin-right:0pt;margin-bottom:1ex;margin-left:0.8ex;border-left-color:rgb(114, 159, 207);border-left-style:solid;border-left-width:1px;padding-left:1ex;" class="qt-gmail_quote"><div>"In some cases (nvdec, mmal, mediacodec ?) the actual size of the video <br></div><div>to decode is known only after data have been processed, long after the <br></div><div>device is setup to use with this API. There are hacks to try to guess <br></div><div>the size early but in the end it's just a hack."<br></div></blockquote><div><br></div><div>What to we do when we have a hw decoder that doesn't know its actual size but a window is required ? (vaapi).<br></div><div><br></div><div>> <br></div><blockquote style="margin-top:0pt;margin-right:0pt;margin-bottom:1ex;margin-left:0.8ex;border-left-color:rgb(114, 159, 207);border-left-style:solid;border-left-width:1px;padding-left:1ex;" class="qt-gmail_quote"><div>This removes the need for these hacks for those using a decoder device <br></div><div>that doesn't need a window.<br></div><div><br></div><div>On 2020-01-13 13:27, Alexandre Janniaux wrote:<br></div><blockquote style="margin-top:0pt;margin-right:0pt;margin-bottom:1ex;margin-left:0.8ex;border-left-color:rgb(173, 127, 168);border-left-style:solid;border-left-width:1px;padding-left:1ex;" class="qt-gmail_quote"><div>Hi,<br></div><div><br></div><div>This looks dangerous if it is expected to have an enabled<br></div><div>window at decoder device creation. vout_window handle<br></div><div>values will basically be undefined without any way for the<br></div><div>decoder device to know it. Why do you need this?<br></div><div><br></div><div>Regards,<br></div><div>--<br></div><div>Alexandre Janniaux<br></div><div>Videolabs<br></div><div><br></div><div>On Mon, Jan 13, 2020 at 12:07:33PM +0100, Steve Lhomme wrote:<br></div><blockquote style="margin-top:0pt;margin-right:0pt;margin-bottom:1ex;margin-left:0.8ex;border-left-color:rgb(138, 226, 52);border-left-style:solid;border-left-width:1px;padding-left:1ex;" class="qt-gmail_quote"><div><hr>   src/video_output/video_output.c | 20 +++++++++-----------<br></div><div>   1 file changed, 9 insertions(+), 11 deletions(-)<br></div><div><br></div><div> diff --git a/src/video_output/video_output.c b/src/video_output/video_output.c<br></div><div> index 5d583dbe0ca..9540707ab2b 100644<br></div><div> --- a/src/video_output/video_output.c<br></div><div> +++ b/src/video_output/video_output.c<br></div><div> @@ -2099,20 +2099,18 @@ vlc_decoder_device *vout_GetDevice(const vout_device_configuration_t *cfg)<br></div><div>       assert(cfg->fmt != NULL);<br></div><div>       vout_thread_sys_t *sys = cfg->vout->p;<br></div><div><br></div><div> -    if (!VoutCheckFormat(cfg->fmt))<br></div><div> -        return NULL;<br></div><div> -<br></div><div> -    video_format_t original;<br></div><div> -    VoutFixFormat(&original, cfg->fmt);<br></div><div> -<br></div><div>       vlc_mutex_lock(&sys->window_lock);<br></div><div> -    int res = EnableWindowLocked(cfg->vout, &original);<br></div><div> -    if (res == 0 && sys->dec_device == NULL)<br></div><div> +    if (VoutCheckFormat(cfg->fmt))<br></div><div> +    {<br></div><div> +        video_format_t original;<br></div><div> +        VoutFixFormat(&original, cfg->fmt);<br></div><div> +<br></div><div> +        EnableWindowLocked(cfg->vout, &original);<br></div><div> +        video_format_Clean(&original);<br></div><div> +    }<br></div><div> +    if (sys->dec_device == NULL)<br></div><div>           sys->dec_device = vlc_decoder_device_Create(&cfg->vout->obj, sys->display_cfg.window);<br></div><div>       dec_device = sys->dec_device ? vlc_decoder_device_Hold( sys->dec_device ) : NULL;<br></div><div>       vlc_mutex_unlock(&sys->window_lock);<br></div><div> -    video_format_Clean(&original);<br></div><div> -    if (res != 0)<br></div><div> -        return NULL;<br></div><div>       return dec_device;<br></div><div>   }<br></div><div> --<br></div><div> 2.17.1<hr> vlc-devel mailing list<br></div><div> To unsubscribe or modify your subscription options:<br></div><div> <a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div></blockquote><div><hr>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div><div><br></div></blockquote><div><hr>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div></blockquote><div><hr>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div><a href="https://mailman.videolan.org/listinfo/vlc-devel">https://mailman.videolan.org/listinfo/vlc-devel</a><br></div></pre></blockquote></div><div><br></div><div>-- <br></div><div>Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté. <br></div><div>_______________________________________________<br></div><div>vlc-devel mailing list<br></div><div>To unsubscribe or modify your subscription options:<br></div><div>https://mailman.videolan.org/listinfo/vlc-devel<br></div></blockquote><div><br></div></body></html>