Hi Xiang, Thx for your review. I initially did not understand your remark and I had not time to go further. 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. 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.
Cheers Julien On 29 September 2015 at 03:36, Xiang, Haihao <haihao.xi...@intel.com> wrote: > > > https://bugs.freedesktop.org/show_bug.cgi?id=92088 > > > > Signed-off-by: Julien Isorce <j.iso...@samsung.com> > > --- > > src/i965_drv_video.c | 14 +++++++++++--- > > 1 file changed, 11 insertions(+), 3 deletions(-) > > > > diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c > > index 9bbd67f..bf599d6 100644 > > --- a/src/i965_drv_video.c > > +++ b/src/i965_drv_video.c > > @@ -4008,6 +4008,7 @@ VAStatus i965_DeriveImage(VADriverContextP ctx, > > struct object_surface *obj_surface; > > VAImageID image_id; > > unsigned int w_pitch; > > + int i = 0; > > VAStatus va_status = VA_STATUS_ERROR_OPERATION_FAILED; > > > > out_image->image_id = VA_INVALID_ID; > > @@ -4055,9 +4056,16 @@ VAStatus i965_DeriveImage(VADriverContextP ctx, > > image->height = obj_surface->orig_height; > > image->data_size = obj_surface->size; > > > > - image->format.fourcc = obj_surface->fourcc; > > - image->format.byte_order = VA_LSB_FIRST; > > - image->format.bits_per_pixel = 12; > > + for (i = 0; i965_image_formats_map[i].va_format.fourcc != 0; i++) { > > + const i965_image_format_map_t * const m = > &i965_image_formats_map[i]; > > + if (m->va_format.fourcc == obj_surface->fourcc) { > > + image->format = m->va_format; > > + break; > > + } > > + } > > i965_image_formats_map() holds images exposed by vaQueryImageFormats() > only. it doesn't include the derived image formats. > > > > > + > > + if (!i965_image_formats_map[i].va_format.fourcc) > > + goto error; > > > > switch (image->format.fourcc) { > > case VA_FOURCC_YV12: > > >
_______________________________________________ Libva mailing list Libva@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libva