<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 24.08.2015 15:34, Julien Isorce
wrote:<br>
</div>
<blockquote
cite="mid:CAHWPjbVz_xYAkiXZZiCKOSGwK1ye9Rm_CuYSDGWid6t9A+7TFg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>Hi,<br>
<br>
</div>
Thx for your answers.<br>
<br>
</div>
Actually I also realized that "vaQueryImageFormats"
is maybe more related to what formats
"vaCreateImage" supports.<br>
</div>
And actually in mesa, vlVaCreateImage can create image
for all formats NV12, YV12, YUYV, UYVY, BGRA.<br>
<br>
</div>
So what I am looking for is a way to retrieve what
format is supported for the output surface, not for a
VAImage.<br>
</div>
Also I noticed that mesa can only convert from nv12 ->
yv12.<br>
</div>
So even if an application creates one of these 5 image
format, only nv12 and yv12 will be accepted to get the
content of the surface, see vlVaGetImage impl.<br>
<br>
vlVaGetConfigAttributes(VADriverContextP ctx, VAProfile
profile, VAEntrypoint entrypoint, VAConfigAttrib
*attrib_list, int num_attribs) sounded good but only returns
VA_RT_FORMAT_YUV420 which can be I420, NV12, YV12 ... Well I
can use what VaCreateImage output to pick one of the YUV420
formats but what if I want to avoid any conversion by just
using exact same format of the surface.<br>
<br>
</div>
And finally there is <code>vaQuerySurfaceAttributes</code>: <a
moz-do-not-send="true"
href="http://cgit.freedesktop.org/libva/tree/va/va.h#n837">http://cgit.freedesktop.org/libva/tree/va/va.h#n837</a>
to retrieve <code>VASurfaceAttribPixelFormat: <a
moz-do-not-send="true"
href="http://cgit.freedesktop.org/libva/tree/va/va.h#n724">http://cgit.freedesktop.org/libva/tree/va/va.h#n724</a><br>
</code><br>
</div>
<u>But it seems mesa st/va does not implement it</u>. (neither
vaapi 's vdpau-driver: <a moz-do-not-send="true"
href="http://cgit.freedesktop.org/vaapi/vdpau-driver/">http://cgit.freedesktop.org/vaapi/vdpau-driver/</a>)<br>
<div>
<div>
<div>
<div>
<div>
<div>
<div>There is a fallback <a moz-do-not-send="true"
href="http://cgit.freedesktop.org/libva/tree/va/va.c#n765">http://cgit.freedesktop.org/libva/tree/va/va.c#n765</a>
if the backend does not provide it but just append
all image formats: <a moz-do-not-send="true"
href="http://cgit.freedesktop.org/libva/tree/va/va.c#n828">http://cgit.freedesktop.org/libva/tree/va/va.c#n828</a><br>
But vaapi intel driver provides it: <a
moz-do-not-send="true"
href="http://cgit.freedesktop.org/vaapi/intel-driver/tree/src/i965_drv_video.c#n4825">http://cgit.freedesktop.org/vaapi/intel-driver/tree/src/i965_drv_video.c#n4825</a><br>
</div>
<div><br>
</div>
<div>So is vaQuerySurfaceAttributes the best option
to retrieve this NV12 ? If yes I can try to make a
patch that implements vlVaQuerySurfaceAttributes.<br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
Well, badly designed interface would I say, but that's already well
known :)<br>
<br>
Fully implementing vlVaQuerySurfaceAttributes indeed sounds like the
right solution to me.<br>
<br>
Regards,<br>
Christian.<br>
<br>
<blockquote
cite="mid:CAHWPjbVz_xYAkiXZZiCKOSGwK1ye9Rm_CuYSDGWid6t9A+7TFg@mail.gmail.com"
type="cite">
<div dir="ltr">
<div>
<div>
<div>
<div>
<div>
<div>
<div><br>
</div>
<div>Thx<br>
</div>
<div>Julien<br>
</div>
<div><br>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 21 August 2015 at 18:31, Christian
König <span dir="ltr"><<a moz-do-not-send="true"
href="mailto:deathsimple@vodafone.de" target="_blank">deathsimple@vodafone.de</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex"><span
class="">On 21.08.2015 18:30, Ilia Mirkin wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
On Fri, Aug 21, 2015 at 12:22 PM, Julien Isorce <<a
moz-do-not-send="true"
href="mailto:julien.isorce@gmail.com" target="_blank">julien.isorce@gmail.com</a>>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
What is the purpose of checking
PIPE_VIDEO_PROFILE_UNKNOWN :<br>
<a moz-do-not-send="true"
href="http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/nouveau/nouveau_vp3_video.c#n486"
rel="noreferrer" target="_blank">http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/nouveau/nouveau_vp3_video.c#n486</a><br>
and<br>
<a moz-do-not-send="true"
href="http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/radeon/radeon_video.c#n323"
rel="noreferrer" target="_blank">http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/radeon/radeon_video.c#n323</a><br>
?<br>
</blockquote>
The st calls nouveau_vp3_screen_video_supported with
UNKNOWN at some<br>
point (see src/gallium/state_trackers/vdpau). Basically
VDPAU can do a<br>
lot of things. One of them is video decoding, for which
only NV12 is<br>
supported. But it also supports other things, for which
the st<br>
supports the various other formats. No idea if that's
useful, but at<br>
least that's the idea.<br>
</blockquote>
</span>
Yes, exactly.<br>
<br>
Querying with unknown is for checking if we can create video
buffers with that format in general.<br>
<br>
Querying with a specific profile/entrypoint is for checking
if we can create video buffers and decode into them.<br>
<br>
Regards,<br>
Christian.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
-ilia<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a moz-do-not-send="true"
href="mailto:mesa-dev@lists.freedesktop.org"
target="_blank">mesa-dev@lists.freedesktop.org</a><br>
<a moz-do-not-send="true"
href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev"
rel="noreferrer" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote>
<br>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</body>
</html>