diff --git a/sys/msdk/gstmsdkallocator_libva.c b/sys/msdk/gstmsdkallocator_libva.c index 3808fdf35a..b0c417d7cf 100644 --- a/sys/msdk/gstmsdkallocator_libva.c +++ b/sys/msdk/gstmsdkallocator_libva.c @@ -103,6 +103,11 @@ gst_msdk_frame_alloc (mfxHDL pthis, mfxFrameAllocRequest * req, format = VA_RT_FORMAT_RGB32_10; #endif +#if ((MFX_VERSION >= 1027) && VA_CHECK_VERSION(1, 2, 0)) + if (format == VA_RT_FORMAT_YUV422 && va_fourcc == VA_FOURCC_Y210) + format = VA_RT_FORMAT_YUV422_10; +#endif + va_status = vaCreateSurfaces (gst_msdk_context_get_handle (context), format, req->Info.Width, req->Info.Height, surfaces, surfaces_num, &attrib, 1); diff --git a/sys/msdk/msdk_libva.c b/sys/msdk/msdk_libva.c index 392a09a99e..464ad9b024 100644 --- a/sys/msdk/msdk_libva.c +++ b/sys/msdk/msdk_libva.c @@ -68,6 +68,9 @@ static const struct fourcc_map gst_msdk_fourcc_mfx_to_va[] = { FOURCC_MFX_TO_VA (AYUV, AYUV), #if VA_CHECK_VERSION(1, 4, 1) FOURCC_MFX_TO_VA (A2RGB10, A2R10G10B10), +#endif +#if ((MFX_VERSION >= 1027) && VA_CHECK_VERSION(1, 2, 0)) + FOURCC_MFX_TO_VA (Y210, Y210), #endif {0, 0} };