summaryrefslogtreecommitdiff
path: root/i965_drv_video.c
diff options
context:
space:
mode:
authorGwenole Beauchesne <gbeauchesne@splitted-desktop.com>2010-06-03 08:54:55 +0200
committerXiang, Haihao <haihao.xiang@intel.com>2010-07-12 15:01:42 +0800
commit97d1f5d604061116ba412cd716cc78a48db89718 (patch)
tree4be0236e55784708d3bf80e65a896c7cf19669b5 /i965_drv_video.c
parenta0a32fd67ce0ea333bae10f918d76a220db84661 (diff)
Add I420 image format.
Diffstat (limited to 'i965_drv_video.c')
-rw-r--r--i965_drv_video.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/i965_drv_video.c b/i965_drv_video.c
index 6a020eb..c5fc2a5 100644
--- a/i965_drv_video.c
+++ b/i965_drv_video.c
@@ -64,6 +64,8 @@ static const i965_image_format_map_t
i965_image_formats_map[I965_MAX_IMAGE_FORMATS + 1] = {
{ I965_SURFACETYPE_YUV,
{ 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 */
@@ -1352,6 +1354,16 @@ i965_CreateImage(VADriverContextP ctx,
image->offsets[2] = size;
image->data_size = size + 2 * size2;
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:
goto error;
}
@@ -1549,7 +1561,9 @@ i965_GetImage(VADriverContextP ctx,
rect.height = height;
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)
goto operation_failed;
get_image_yv12(obj_image, image_data, obj_surface, &rect);