[Encode] Fix TCBRC caps report issue
Previous change get reverted #10210, this change is to add encode config which is missing
[VAAPI]1.10.0
diff --git a/media_driver/linux/common/ddi/media_libva_caps.cpp b/media_driver/linux/common/ddi/media_libva_caps.cpp
index b0cfa0c..43e0a29 100755
--- a/media_driver/linux/common/ddi/media_libva_caps.cpp
+++ b/media_driver/linux/common/ddi/media_libva_caps.cpp
@@ -61,11 +61,14 @@
VA_DEC_PROCESSING
};
-const uint32_t MediaLibvaCaps::m_encRcMode[9] =
+const uint32_t MediaLibvaCaps::m_encRcMode[m_numEncRcMode] =
{
VA_RC_CQP, VA_RC_CBR, VA_RC_VBR,
VA_RC_CBR | VA_RC_MB, VA_RC_VBR | VA_RC_MB,
VA_RC_ICQ, VA_RC_VCM, VA_RC_QVBR, VA_RC_AVBR
+#if VA_CHECK_VERSION(1, 10, 0)
+ , VA_RC_TCBRC
+#endif
};
const uint32_t MediaLibvaCaps::m_vpSurfaceAttr[m_numVpSurfaceAttr] =
diff --git a/media_driver/linux/common/ddi/media_libva_caps.h b/media_driver/linux/common/ddi/media_libva_caps.h
index 0d63f3b..8a04f17 100755
--- a/media_driver/linux/common/ddi/media_libva_caps.h
+++ b/media_driver/linux/common/ddi/media_libva_caps.h
@@ -771,6 +771,11 @@
uint32_t colorFormat;
};
+#if VA_CHECK_VERSION(1, 10, 0)
+ static const uint32_t m_numEncRcMode = 10;
+#else
+ static const uint32_t m_numEncRcMode = 9;
+#endif
static const uint16_t m_maxProfiles = 17; //!< Maximum number of supported profiles
static const uint16_t m_maxProfileEntries = 64; //!< Maximum number of supported profile & entrypoint combinations
static const uint32_t m_numVpSurfaceAttr = 18; //!< Number of VP surface attributes
@@ -779,7 +784,7 @@
static const uint16_t m_maxEntrypoints = 7; //!< Maximum number of supported entrypoints
static const uint32_t m_decSliceMode[2]; //!< Store 2 decode slices modes
static const uint32_t m_decProcessMode[2]; //!< Store 2 decode process modes
- static const uint32_t m_encRcMode[9]; //!< Store 9 encode rate control modes
+ static const uint32_t m_encRcMode[m_numEncRcMode]; //!< Store encode rate control modes
static const uint32_t m_vpSurfaceAttr[m_numVpSurfaceAttr]; //!< Store the VP surface attributes
static const uint32_t m_jpegSurfaceAttr[m_numJpegSurfaceAttr]; //!< Store the JPEG surface attributes
static const uint32_t m_jpegEncSurfaceAttr[m_numJpegEncSurfaceAttr]; //!< Store the JPEG encode surface attributes
diff --git a/media_driver/linux/gen12/ddi/media_libva_caps_g12.cpp b/media_driver/linux/gen12/ddi/media_libva_caps_g12.cpp
index 3958698..18187ac 100644
--- a/media_driver/linux/gen12/ddi/media_libva_caps_g12.cpp
+++ b/media_driver/linux/gen12/ddi/media_libva_caps_g12.cpp
@@ -1676,8 +1676,15 @@
if (IsHevcProfile(profile))
{
if (entrypoint != VAEntrypointEncSliceLP)
+ {
attrib.value |= VA_RC_ICQ;
-
+ }
+#if VA_CHECK_VERSION(1, 10, 0)
+ else
+ {
+ attrib.value |= VA_RC_TCBRC;
+ }
+#endif
attrib.value |= VA_RC_VCM | VA_RC_QVBR;
}
if (IsVp9Profile(profile))