[Mesa-dev] vlVaQueryImageFormats and vlVdpVideoSurfaceQueryGetPutBitsYCbCrCapabilities also return unsupported formats

Christian König deathsimple at vodafone.de
Mon Aug 24 06:42:21 PDT 2015


On 24.08.2015 15:34, Julien Isorce wrote:
> Hi,
>
> Thx for your answers.
>
> Actually I also realized that "vaQueryImageFormats" is maybe more 
> related to what formats "vaCreateImage" supports.
> And actually in mesa, vlVaCreateImage can create image for all formats 
> NV12, YV12, YUYV, UYVY, BGRA.
>
> So what I am looking for is a way to retrieve what format is supported 
> for the output surface, not for a VAImage.
> Also I noticed that mesa can only convert from nv12 -> yv12.
> 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.
>
> 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.
>
> And finally there is |vaQuerySurfaceAttributes|: 
> http://cgit.freedesktop.org/libva/tree/va/va.h#n837 to retrieve 
> |VASurfaceAttribPixelFormat: 
> http://cgit.freedesktop.org/libva/tree/va/va.h#n724
> |
> _But it seems mesa st/va does not implement it_. (neither vaapi 's 
> vdpau-driver: http://cgit.freedesktop.org/vaapi/vdpau-driver/)
> There is a fallback 
> http://cgit.freedesktop.org/libva/tree/va/va.c#n765 if the backend 
> does not provide it but just append all image formats: 
> http://cgit.freedesktop.org/libva/tree/va/va.c#n828
> But vaapi intel driver provides it: 
> http://cgit.freedesktop.org/vaapi/intel-driver/tree/src/i965_drv_video.c#n4825
>
> So is vaQuerySurfaceAttributes the best option to retrieve this NV12 ? 
> If yes I can try to make a patch that implements 
> vlVaQuerySurfaceAttributes.

Well, badly designed interface would I say, but that's already well known :)

Fully implementing vlVaQuerySurfaceAttributes indeed sounds like the 
right solution to me.

Regards,
Christian.

>
> Thx
> Julien
>
>
> On 21 August 2015 at 18:31, Christian König <deathsimple at vodafone.de 
> <mailto:deathsimple at vodafone.de>> wrote:
>
>     On 21.08.2015 18:30, Ilia Mirkin wrote:
>
>         On Fri, Aug 21, 2015 at 12:22 PM, Julien Isorce
>         <julien.isorce at gmail.com <mailto:julien.isorce at gmail.com>> wrote:
>
>             What is the purpose of checking PIPE_VIDEO_PROFILE_UNKNOWN :
>             http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/nouveau/nouveau_vp3_video.c#n486
>             and
>             http://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/radeon/radeon_video.c#n323
>             ?
>
>         The st calls nouveau_vp3_screen_video_supported with UNKNOWN
>         at some
>         point (see src/gallium/state_trackers/vdpau). Basically VDPAU
>         can do a
>         lot of things. One of them is video decoding, for which only
>         NV12 is
>         supported. But it also supports other things, for which the st
>         supports the various other formats. No idea if that's useful,
>         but at
>         least that's the idea.
>
>     Yes, exactly.
>
>     Querying with unknown is for checking if we can create video
>     buffers with that format in general.
>
>     Querying with a specific profile/entrypoint is for checking if we
>     can create video buffers and decode into them.
>
>     Regards,
>     Christian.
>
>
>            -ilia
>         _______________________________________________
>         mesa-dev mailing list
>         mesa-dev at lists.freedesktop.org
>         <mailto:mesa-dev at lists.freedesktop.org>
>         http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150824/951af069/attachment-0001.html>


More information about the mesa-dev mailing list