check the support RT format inside CreateConfig
Signed-off-by: XinfengZhang <carl.zhang@intel.com>
diff --git a/media_driver/linux/common/ddi/media_libva_caps.cpp b/media_driver/linux/common/ddi/media_libva_caps.cpp
index 11cf2b3..bb3b140 100644
--- a/media_driver/linux/common/ddi/media_libva_caps.cpp
+++ b/media_driver/linux/common/ddi/media_libva_caps.cpp
@@ -369,7 +369,6 @@
attrib->value = VA_RT_FORMAT_YUV420;
}
-#ifdef _FULL_OPEN_SOURCE
EncodeFormat format = Others;
EncodeType type = entrypoint == VAEntrypointEncSliceLP ? Vdenc : DualPipe;
struct EncodeFormatTable* encodeFormatTable = m_encodeFormatTable;
@@ -396,7 +395,6 @@
break;
}
}
-#endif
return VA_STATUS_SUCCESS;
}
@@ -1500,25 +1498,11 @@
}
if(VAConfigAttribRTFormat == attribList[j].type)
{
- if(m_profileEntryTbl[profileTableIdx].m_profile == VAProfileJPEGBaseline)
+ VAConfigAttrib attribRT;
+ CheckEncRTFormat(m_profileEntryTbl[profileTableIdx].m_profile, entrypoint, &attribRT);
+ if((attribList[j].value | attribRT.value) == 0)
{
- if(VA_RT_FORMAT_YUV420 != attribList[j].value &&
- VA_RT_FORMAT_YUV422 != attribList[j].value &&
- VA_RT_FORMAT_YUV444 != attribList[j].value &&
- VA_RT_FORMAT_YUV400 != attribList[j].value &&
- VA_RT_FORMAT_YUV411 != attribList[j].value &&
- VA_RT_FORMAT_RGB16 != attribList[j].value &&
- VA_RT_FORMAT_RGB32 != attribList[j].value)
- {
- return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
- }
- }
- else
- {
- if(VA_RT_FORMAT_YUV420 != attribList[j].value)
- {
- return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
- }
+ return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
}
}
}