Commit d58c6d4b authored by Gwenole Beauchesne's avatar Gwenole Beauchesne Committed by Xiang, Haihao

Add I420 image format.

parent 252dd7c6
...@@ -64,6 +64,8 @@ static const i965_image_format_map_t ...@@ -64,6 +64,8 @@ static const i965_image_format_map_t
i965_image_formats_map[I965_MAX_IMAGE_FORMATS + 1] = { i965_image_formats_map[I965_MAX_IMAGE_FORMATS + 1] = {
{ I965_SURFACETYPE_YUV, { I965_SURFACETYPE_YUV,
{ VA_FOURCC('Y','V','1','2'), VA_LSB_FIRST, 12, } }, { VA_FOURCC('Y','V','1','2'), VA_LSB_FIRST, 12, } },
{ I965_SURFACETYPE_YUV,
{ VA_FOURCC('I','4','2','0'), VA_LSB_FIRST, 12, } },
}; };
/* List of supported subpicture formats */ /* List of supported subpicture formats */
...@@ -1352,6 +1354,16 @@ i965_CreateImage(VADriverContextP ctx, ...@@ -1352,6 +1354,16 @@ i965_CreateImage(VADriverContextP ctx,
image->offsets[2] = size; image->offsets[2] = size;
image->data_size = size + 2 * size2; image->data_size = size + 2 * size2;
break; break;
case VA_FOURCC('I','4','2','0'):
image->num_planes = 3;
image->pitches[0] = width;
image->offsets[0] = 0;
image->pitches[1] = width2;
image->offsets[1] = size;
image->pitches[2] = width2;
image->offsets[2] = size + size2;
image->data_size = size + 2 * size2;
break;
default: default:
goto error; goto error;
} }
...@@ -1549,7 +1561,9 @@ i965_GetImage(VADriverContextP ctx, ...@@ -1549,7 +1561,9 @@ i965_GetImage(VADriverContextP ctx,
rect.height = height; rect.height = height;
switch (obj_image->image.format.fourcc) { switch (obj_image->image.format.fourcc) {
case VA_FOURCC('Y','V','1','2'): /* YV12 is native format here */ case VA_FOURCC('Y','V','1','2'):
case VA_FOURCC('I','4','2','0'):
/* I420 is native format for MPEG-2 decoded surfaces */
if (render_state->interleaved_uv) if (render_state->interleaved_uv)
goto operation_failed; goto operation_failed;
get_image_yv12(obj_image, image_data, obj_surface, &rect); get_image_yv12(obj_image, image_data, obj_surface, &rect);
......
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
#define I965_MAX_PROFILES 11 #define I965_MAX_PROFILES 11
#define I965_MAX_ENTRYPOINTS 5 #define I965_MAX_ENTRYPOINTS 5
#define I965_MAX_CONFIG_ATTRIBUTES 10 #define I965_MAX_CONFIG_ATTRIBUTES 10
#define I965_MAX_IMAGE_FORMATS 1 #define I965_MAX_IMAGE_FORMATS 2
#define I965_MAX_SUBPIC_FORMATS 4 #define I965_MAX_SUBPIC_FORMATS 4
#define I965_MAX_DISPLAY_ATTRIBUTES 4 #define I965_MAX_DISPLAY_ATTRIBUTES 4
#define I965_STR_VENDOR "i965 Driver 0.1" #define I965_STR_VENDOR "i965 Driver 0.1"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment