diff --git a/src/picture.c b/src/picture.c index 4508adb..c126a64 100644 --- a/src/picture.c +++ b/src/picture.c @@ -35,6 +35,7 @@ #include "h265.h" #include "mpeg2.h" #include "vp8.h" +#include "vp9.h" #include #include @@ -114,6 +115,12 @@ static VAStatus codec_store_buffer(struct request_data *driver_data, sizeof(surface_object->params.vp8.picture)); break; + case VAProfileVP9Profile0: + memcpy(&surface_object->params.vp9.picture, + buffer_object->data, + sizeof(surface_object->params.vp9.picture)); + break; + default: break; } @@ -153,6 +160,12 @@ static VAStatus codec_store_buffer(struct request_data *driver_data, sizeof(surface_object->params.vp8.slice)); break; + case VAProfileVP9Profile0: + memcpy(&surface_object->params.vp9.slice, + buffer_object->data, + sizeof(surface_object->params.vp9.slice)); + break; + default: break; } @@ -257,6 +270,12 @@ static VAStatus codec_set_controls(struct request_data *driver_data, return VA_STATUS_ERROR_OPERATION_FAILED; break; + case VAProfileVP9Profile0: + rc = vp9_set_controls(driver_data, context, surface_object); + if (rc < 0) + return VA_STATUS_ERROR_OPERATION_FAILED; + break; + default: return VA_STATUS_ERROR_UNSUPPORTED_PROFILE; }