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

Add YV12 image format.

parent 4119b70e
...@@ -54,6 +54,18 @@ enum { ...@@ -54,6 +54,18 @@ enum {
I965_SURFACETYPE_INDEXED I965_SURFACETYPE_INDEXED
}; };
/* List of supported image formats */
typedef struct {
unsigned int type;
VAImageFormat va_format;
} i965_image_format_map_t;
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, } },
};
/* List of supported subpicture formats */ /* List of supported subpicture formats */
typedef struct { typedef struct {
unsigned int type; unsigned int type;
...@@ -419,8 +431,16 @@ i965_QueryImageFormats(VADriverContextP ctx, ...@@ -419,8 +431,16 @@ i965_QueryImageFormats(VADriverContextP ctx,
VAImageFormat *format_list, /* out */ VAImageFormat *format_list, /* out */
int *num_formats) /* out */ int *num_formats) /* out */
{ {
int n;
for (n = 0; i965_image_formats_map[n].va_format.fourcc != 0; n++) {
const i965_image_format_map_t * const m = &i965_image_formats_map[n];
if (format_list)
format_list[n] = m->va_format;
}
if (num_formats) if (num_formats)
*num_formats = 0; *num_formats = n;
return VA_STATUS_SUCCESS; return VA_STATUS_SUCCESS;
} }
...@@ -1320,6 +1340,16 @@ i965_CreateImage(VADriverContextP ctx, ...@@ -1320,6 +1340,16 @@ i965_CreateImage(VADriverContextP ctx,
image->offsets[0] = 0; image->offsets[0] = 0;
image->data_size = image->offsets[0] + image->pitches[0] * height; image->data_size = image->offsets[0] + image->pitches[0] * height;
break; break;
case VA_FOURCC('Y','V','1','2'):
image->num_planes = 3;
image->pitches[0] = width;
image->offsets[0] = 0;
image->pitches[1] = width2;
image->offsets[1] = size + size2;
image->pitches[2] = width2;
image->offsets[2] = size;
image->data_size = size + 2 * size2;
break;
default: default:
goto error; goto error;
} }
......
...@@ -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 10 #define I965_MAX_IMAGE_FORMATS 1
#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