Enabling SNB avc encoding configuration
[platform/upstream/libva-intel-driver.git] / src / i965_fourcc.h
index 510c044..3a9f120 100644 (file)
 #define VA_FOURCC_YVY2 VA_FOURCC('Y','V','Y','2')
 #endif
 
+#define I965_MAX_PLANES         4
+#define I965_MAX_COMONENTS      4
+
+#define I965_COLOR_YUV          0
+#define I965_COLOR_RGB          1
+#define I965_COLOR_INDEX        2
+
+typedef struct {
+    uint8_t plane;                      /* the plane which the pixel belongs to */
+    uint8_t offset;                     /* bits offset within a pixel in the plane */
+} i965_component_info;
+
+typedef struct {
+    uint32_t fourcc;                    /* fourcc */
+    uint32_t format;                    /* 0: YUV, 1: RGB, 2: Indexed format */
+    uint32_t subsampling;               /* Sub sampling */
+    uint8_t flag;                       /* 1: only supported by vaCreateSurfaces(), 2: only supported by vaCreateImage(), 3: both */
+    uint8_t hfactor;                    /* horizontal sampling factor */
+    uint8_t vfactor;                    /* vertical sampling factor */
+    uint8_t num_planes;                 /* number of planes */
+    uint8_t bpp[I965_MAX_PLANES];       /* bits per pixel within a plane */
+    uint8_t num_components;             /* number of components */
+    /*
+     * Components in the array are ordered in Y, U, V, A (up to 4 components)
+     * for YUV formats, R, G, B, A (up to 4 components) for RGB formats and
+     * I, A (2 components) for indexed formats
+     */
+    i965_component_info components[I965_MAX_COMONENTS];
+} i965_fourcc_info;
+
+extern const i965_fourcc_info *get_fourcc_info(unsigned int);
+
 #endif /* _I965_FOURCC_H_ */