Commit 2124711b authored by Anton Khirnov's avatar Anton Khirnov

hwcontext_vaapi: add a quirk for the missing MemoryType attribute

The Intel binary iHD driver does not support the
VASurfaceAttribMemoryType, so surface allocation will fail when using
it.
parent b57e38f5
...@@ -13,6 +13,9 @@ libavutil: 2015-08-28 ...@@ -13,6 +13,9 @@ libavutil: 2015-08-28
API changes, most recent first: API changes, most recent first:
2016-xx-xx - xxxxxxx - lavu 55.23.0 - hwcontext_vaapi.h
Add AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE.
2016-xx-xx - xxxxxxx - lavf 57.08.0 - avio.h 2016-xx-xx - xxxxxxx - lavf 57.08.0 - avio.h
Add AVIO_SEEKABLE_TIME flag. Add AVIO_SEEKABLE_TIME flag.
......
...@@ -273,6 +273,11 @@ static const struct { ...@@ -273,6 +273,11 @@ static const struct {
"i965", "i965",
AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS, AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS,
}, },
{
"Intel iHD",
"ubit",
AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE,
},
}; };
static int vaapi_device_init(AVHWDeviceContext *hwdev) static int vaapi_device_init(AVHWDeviceContext *hwdev)
...@@ -447,7 +452,8 @@ static int vaapi_frames_init(AVHWFramesContext *hwfc) ...@@ -447,7 +452,8 @@ static int vaapi_frames_init(AVHWFramesContext *hwfc)
} }
if (!hwfc->pool) { if (!hwfc->pool) {
int need_memory_type = 1, need_pixel_format = 1; int need_memory_type = !(hwctx->driver_quirks & AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE);
int need_pixel_format = 1;
for (i = 0; i < avfc->nb_attributes; i++) { for (i = 0; i < avfc->nb_attributes; i++) {
if (ctx->attributes[i].type == VASurfaceAttribMemoryType) if (ctx->attributes[i].type == VASurfaceAttribMemoryType)
need_memory_type = 0; need_memory_type = 0;
......
...@@ -45,6 +45,12 @@ enum { ...@@ -45,6 +45,12 @@ enum {
* separately afterwards. * separately afterwards.
*/ */
AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS = (1 << 1), AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS = (1 << 1),
/**
* The driver does not support the VASurfaceAttribMemoryType attribute,
* so the surface allocation code will not try to use it.
*/
AV_VAAPI_DRIVER_QUIRK_ATTRIB_MEMTYPE = (1 << 2),
}; };
/** /**
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
*/ */
#define LIBAVUTIL_VERSION_MAJOR 55 #define LIBAVUTIL_VERSION_MAJOR 55
#define LIBAVUTIL_VERSION_MINOR 22 #define LIBAVUTIL_VERSION_MINOR 23
#define LIBAVUTIL_VERSION_MICRO 0 #define LIBAVUTIL_VERSION_MICRO 0
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
......
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