diff --git a/_studio/mfx_lib/encode_hw/av1/agnostic/base/av1ehw_base_iddi.h b/_studio/mfx_lib/encode_hw/av1/agnostic/base/av1ehw_base_iddi.h index 0744e51458..2d5b83491a 100644 --- a/_studio/mfx_lib/encode_hw/av1/agnostic/base/av1ehw_base_iddi.h +++ b/_studio/mfx_lib/encode_hw/av1/agnostic/base/av1ehw_base_iddi.h @@ -62,9 +62,7 @@ class IDDI virtual void ResetState(const FeatureBlocks& blocks, TPushRS Push) override = 0; virtual mfxStatus SetDDIID(const mfxU16 bitDepth - , const mfxU16 chromFormat - , const mfxU32 fourCC - , const mfxU16 targetChromaForamt) = 0; + , const mfxU16 chromFormat) = 0; }; } //Base diff --git a/_studio/mfx_lib/encode_hw/av1/linux/base/av1ehw_base_va_lin.cpp b/_studio/mfx_lib/encode_hw/av1/linux/base/av1ehw_base_va_lin.cpp index 109ef3e0b8..998a068218 100644 --- a/_studio/mfx_lib/encode_hw/av1/linux/base/av1ehw_base_va_lin.cpp +++ b/_studio/mfx_lib/encode_hw/av1/linux/base/av1ehw_base_va_lin.cpp @@ -29,7 +29,7 @@ using namespace AV1EHW; using namespace AV1EHW::Base; using namespace AV1EHW::Linux::Base; -mfxStatus DDI_VA::SetDDIID(const mfxU16 bitDepth, const mfxU16 chromFormat, const mfxU32 /*fourCC*/, const mfxU16/* targetChromaFormat*/) +mfxStatus DDI_VA::SetDDIID(const mfxU16 bitDepth, const mfxU16 chromFormat) { MFX_CHECK(!m_vaid, MFX_ERR_NONE); @@ -114,11 +114,9 @@ void DDI_VA::Query1NoCaps(const FeatureBlocks& /*blocks*/, TPushQ1 Push) m_hw = Glob::VideoCore::Get(strg).GetHWType(); const mfxU16 bitDepth = m_pDefaults->base.GetBitDepthLuma(*m_pDefaults); - const mfxU16 chromaFormat = par.mfx.FrameInfo.ChromaFormat; - const mfxU32 fourCC = par.mfx.FrameInfo.FourCC; const mfxU16 profile = par.mfx.CodecProfile; const mfxExtCodingOption3* pCO3 = ExtBuffer::Get(m_pDefaults->mvp); - mfxU16 targetChromaFormat = MFX_CHROMAFORMAT_YUV420; + mfxU16 targetChromaFormat = m_pDefaults->base.GetTargetChromaFormatPlus1(*m_pDefaults) - 1;; SetIf(targetChromaFormat, profile == MFX_PROFILE_AV1_HIGH, MFX_CHROMAFORMAT_YUV444); if (pCO3) @@ -126,7 +124,7 @@ void DDI_VA::Query1NoCaps(const FeatureBlocks& /*blocks*/, TPushQ1 Push) SetIf(targetChromaFormat, !pCO3->TargetChromaFormatPlus1, pCO3->TargetChromaFormatPlus1 - 1); } - MFX_SAFE_CALL(SetDDIID(bitDepth, chromaFormat, fourCC, targetChromaFormat)); + MFX_SAFE_CALL(SetDDIID(bitDepth, targetChromaFormat)); return MFX_ERR_NONE; }); @@ -398,6 +396,7 @@ mfxStatus DDI_VA::QueryCaps() MFX_CHECK_STS(sts); m_caps.ChromaSupportFlags.fields.i420 = !!(AV(VAConfigAttribRTFormat) & VA_RT_FORMAT_YUV420); + m_caps.ChromaSupportFlags.fields.RGB = !!(AV(VAConfigAttribRTFormat) & VA_RT_FORMAT_RGB32); m_caps.BitDepthSupportFlags.fields.eight_bits = !!(AV(VAConfigAttribRTFormat) & VA_RT_FORMAT_YUV420); m_caps.BitDepthSupportFlags.fields.ten_bits = !!(AV(VAConfigAttribRTFormat) & VA_RT_FORMAT_YUV420_10BPP); diff --git a/_studio/mfx_lib/encode_hw/av1/linux/base/av1ehw_base_va_lin.h b/_studio/mfx_lib/encode_hw/av1/linux/base/av1ehw_base_va_lin.h index cbf470b539..6c8ff206eb 100644 --- a/_studio/mfx_lib/encode_hw/av1/linux/base/av1ehw_base_va_lin.h +++ b/_studio/mfx_lib/encode_hw/av1/linux/base/av1ehw_base_va_lin.h @@ -59,9 +59,7 @@ class DDI_VA virtual void SetDefaults(const FeatureBlocks& blocks, TPushSD Push) override; virtual mfxStatus SetDDIID(const mfxU16 bitDepth - , const mfxU16 chromFormat - , const mfxU32 fourCC - , const mfxU16 targetChromaFormat) override; + , const mfxU16 chromFormat) override; mfxStatus CreateVABuffers( const std::list& par