[Mesa-dev] [PATCH 2/2] Added support for NV12 to IYUV conversion in vlVaGetImage

Das, Indrajit-kumar Indrajit-kumar.Das at amd.com
Fri Oct 16 09:51:16 PDT 2015


Gstreamer-vaapi for one.

-----Original Message-----
From: Emil Velikov [mailto:emil.l.velikov at gmail.com] 
Sent: Friday, October 16, 2015 9:26 PM
To: Christian König
Cc: ML mesa-dev; Das, Indrajit-kumar
Subject: Re: [Mesa-dev] [PATCH 2/2] Added support for NV12 to IYUV conversion in vlVaGetImage

Hi guys,

Out of curiosity - do you know off-hand about any users of IYUV/I420 ?
I was under the impression that everyone is doing nv12/nv21/yv12 in 99% of the cases.

On 16 October 2015 at 15:53, Christian König <deathsimple at vodafone.de> wrote:
> From: Indrajit Das <indrajit-kumar.das at amd.com>
>
> Reviewed-by: Christian König <christian.koenig at amd.com>
> ---
>  src/gallium/state_trackers/va/image.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/state_trackers/va/image.c 
> b/src/gallium/state_trackers/va/image.c
> index 3b36430..b37a971 100644
> --- a/src/gallium/state_trackers/va/image.c
> +++ b/src/gallium/state_trackers/va/image.c
> @@ -240,9 +240,11 @@ vlVaGetImage(VADriverContextP ctx, VASurfaceID surface, int x, int y,
>        return VA_STATUS_ERROR_OPERATION_FAILED;
>
>     if (format != surf->buffer->buffer_format) {
> -      /* support NV12 to YV12 conversion now only */
> -      if (format == PIPE_FORMAT_YV12 &&
> -          surf->buffer->buffer_format == PIPE_FORMAT_NV12)
> +      /* support NV12 to YV12 and IYUV conversion now only */
> +      if ((format == PIPE_FORMAT_YV12 &&
> +          surf->buffer->buffer_format == PIPE_FORMAT_NV12) ||
> +          (format == PIPE_FORMAT_IYUV &&
> +          surf->buffer->buffer_format == PIPE_FORMAT_NV12))
I was just about to mention that we're not flipping the planes pointers (and their respective info) only to see that we're checking vs VA_FOURCC a few lines below :-)

Perhaps we should add a couple of trivial helpers u_copy_nv12_to_iyuv and u_copy_iyuv_to_nv12, which wrap around their yv12 brethren ? This way one can use them directly - be that here, in vdpau and/or elsewhere.

Cheers,
Emil


More information about the mesa-dev mailing list