diff options
author | Zhao Yakui <yakui.zhao@intel.com> | 2013-12-27 15:05:44 +0800 |
---|---|---|
committer | Yakui Zhao <yakui.zhao@intel.com> | 2013-12-27 15:05:44 +0800 |
commit | a2ce7ea28ecd4d54afa863e4a20c6c0eea7c7809 (patch) | |
tree | 6698d8d701343444e9b34fc03f32795e6f2a172a | |
parent | 81aa858505acf4c1e096ed02e806340ab333500c (diff) | |
download | libva-intel-driver-a2ce7ea28ecd4d54afa863e4a20c6c0eea7c7809.tar.gz libva-intel-driver-a2ce7ea28ecd4d54afa863e4a20c6c0eea7c7809.tar.bz2 libva-intel-driver-a2ce7ea28ecd4d54afa863e4a20c6c0eea7c7809.zip |
Add the support of querying the surface attributes on BDW
Otherwise the user-space application doesn't query which surfaceformat is
supported by the libva-vappi driver on BDW.
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
-rwxr-xr-x | src/i965_drv_video.c | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/src/i965_drv_video.c b/src/i965_drv_video.c index c7c4a6c..f179147 100755 --- a/src/i965_drv_video.c +++ b/src/i965_drv_video.c @@ -4627,6 +4627,116 @@ i965_QuerySurfaceAttributes(VADriverContextP ctx, i++; } } + } else if (IS_GEN8(i965->intel.device_id)) { + if (obj_config->entrypoint == VAEntrypointVLD) { /* decode */ + if (obj_config->profile == VAProfileJPEGBaseline) { + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('I', 'M', 'C', '3'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('I', 'M', 'C', '1'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('Y', '8', '0', '0'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('4', '1', '1', 'P'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('4', '2', '2', 'H'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('4', '2', '2', 'V'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('4', '4', '4', 'P'); + i++; + } else { + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('N', 'V', '1', '2'); + i++; + } + } else if (obj_config->entrypoint == VAEntrypointEncSlice || /* encode */ + obj_config->entrypoint == VAEntrypointVideoProc) { /* vpp */ + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('N', 'V', '1', '2'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('I', '4', '2', '0'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('Y', 'V', '1', '2'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('I', 'M', 'C', '3'); + i++; + + if (obj_config->entrypoint == VAEntrypointVideoProc) { + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('Y', 'U', 'Y', '2'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('R', 'G', 'B', 'A'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('R', 'G', 'B', 'X'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('B', 'G', 'R', 'A'); + i++; + + attribs[i].type = VASurfaceAttribPixelFormat; + attribs[i].value.type = VAGenericValueTypeInteger; + attribs[i].flags = VA_SURFACE_ATTRIB_GETTABLE | VA_SURFACE_ATTRIB_SETTABLE; + attribs[i].value.value.i = VA_FOURCC('B', 'G', 'R', 'X'); + i++; + } + } } attribs[i].type = VASurfaceAttribMemoryType; |