diff options
Diffstat (limited to 'src/i965_drv_video.c')
-rwxr-xr-x | src/i965_drv_video.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c index 0dcac01..e801a4d 100755 --- a/src/i965_drv_video.c +++ b/src/i965_drv_video.c @@ -152,6 +152,8 @@ i965_image_formats_map[I965_MAX_IMAGE_FORMATS + 1] = { { VA_FOURCC_YUY2, VA_LSB_FIRST, 16, } }, { I965_SURFACETYPE_YUV, { VA_FOURCC_UYVY, VA_LSB_FIRST, 16, } }, + { I965_SURFACETYPE_YUV, + { VA_FOURCC_422H, VA_LSB_FIRST, 16, } }, { I965_SURFACETYPE_RGBA, { VA_FOURCC_RGBX, VA_LSB_FIRST, 32, 24, 0x000000ff, 0x0000ff00, 0x00ff0000 } }, { I965_SURFACETYPE_RGBA, @@ -2821,6 +2823,16 @@ i965_CreateImage(VADriverContextP ctx, image->offsets[2] = size + size2; image->data_size = size + 2 * size2; break; + case VA_FOURCC_422H: + image->num_planes = 3; + image->pitches[0] = awidth; + image->offsets[0] = 0; + image->pitches[1] = awidth / 2; + image->offsets[1] = size; + image->pitches[2] = awidth / 2; + image->offsets[2] = size + (awidth / 2) * aheight; + image->data_size = size + 2 * ((awidth / 2) * aheight); + break; case VA_FOURCC_NV12: image->num_planes = 2; image->pitches[0] = awidth; @@ -3228,6 +3240,7 @@ VAStatus i965_DeriveImage(VADriverContextP ctx, break; case VA_FOURCC_I420: + case VA_FOURCC_422H: image->num_planes = 3; image->pitches[0] = w_pitch; /* Y */ image->offsets[0] = 0; |