[Libva] [PATCH] vaDeriveImage: properly set VAImage format
Julien Isorce
julien.isorce at gmail.com
Mon Sep 28 01:04:36 PDT 2015
https://bugs.freedesktop.org/show_bug.cgi?id=92088
Signed-off-by: Julien Isorce <j.isorce at 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;
+ }
+ }
+
+ if (!i965_image_formats_map[i].va_format.fourcc)
+ goto error;
switch (image->format.fourcc) {
case VA_FOURCC_YV12:
--
1.9.1
More information about the Libva
mailing list