<div dir="ltr"><div><div><div><div><div>Hi Xiang,<br><br></div>Thx for your review. I initially did not understand your remark and I had not time to go further.<br></div>But I figure out that indeed I cannot use i965_image_formats_map because it is does not entirely include the format exposes in the i965_DeriveImage switch. I was focus on RGB likes format.<br></div>So I submitted a v2 (see mail just before). It looks a bit verbose, maybe its own map would be better. But I am ok with whatever solution you prefer. Just let me know.<br><br></div>Cheers<br></div>Julien<br></div><div class="gmail_extra"><br><div class="gmail_quote">On 29 September 2015 at 03:36, Xiang, Haihao <span dir="ltr"><<a href="mailto:haihao.xiang@intel.com" target="_blank">haihao.xiang@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5"><br>
> <a href="https://bugs.freedesktop.org/show_bug.cgi?id=92088" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=92088</a><br>
><br>
> Signed-off-by: Julien Isorce <<a href="mailto:j.isorce@samsung.com">j.isorce@samsung.com</a>><br>
> ---<br>
>  src/i965_drv_video.c | 14 +++++++++++---<br>
>  1 file changed, 11 insertions(+), 3 deletions(-)<br>
><br>
> diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c<br>
> index 9bbd67f..bf599d6 100644<br>
> --- a/src/i965_drv_video.c<br>
> +++ b/src/i965_drv_video.c<br>
> @@ -4008,6 +4008,7 @@ VAStatus i965_DeriveImage(VADriverContextP ctx,<br>
>      struct object_surface *obj_surface;<br>
>      VAImageID image_id;<br>
>      unsigned int w_pitch;<br>
> +    int i = 0;<br>
>      VAStatus va_status = VA_STATUS_ERROR_OPERATION_FAILED;<br>
><br>
>      out_image->image_id = VA_INVALID_ID;<br>
> @@ -4055,9 +4056,16 @@ VAStatus i965_DeriveImage(VADriverContextP ctx,<br>
>      image->height = obj_surface->orig_height;<br>
>      image->data_size = obj_surface->size;<br>
><br>
> -    image->format.fourcc = obj_surface->fourcc;<br>
> -    image->format.byte_order = VA_LSB_FIRST;<br>
> -    image->format.bits_per_pixel = 12;<br>
> +    for (i = 0; i965_image_formats_map[i].va_format.fourcc != 0; i++) {<br>
> +        const i965_image_format_map_t * const m = &i965_image_formats_map[i];<br>
> +        if (m->va_format.fourcc == obj_surface->fourcc) {<br>
> +            image->format = m->va_format;<br>
> +            break;<br>
> +        }<br>
> +    }<br>
<br>
</div></div>i965_image_formats_map() holds images exposed by vaQueryImageFormats()<br>
only. it doesn't include the derived image formats.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
> +<br>
> +    if (!i965_image_formats_map[i].va_format.fourcc)<br>
> +        goto error;<br>
><br>
>      switch (image->format.fourcc) {<br>
>      case VA_FOURCC_YV12:<br>
<br>
<br>
</div></div></blockquote></div><br></div>