diff --git a/media_driver/agnostic/Xe_M/Xe_HPM/codec/hal/codechal_hw_xe_hpm.cpp b/media_driver/agnostic/Xe_M/Xe_HPM/codec/hal/codechal_hw_xe_hpm.cpp index c5c8d2c68a2..5b0f617491e 100644 --- a/media_driver/agnostic/Xe_M/Xe_HPM/codec/hal/codechal_hw_xe_hpm.cpp +++ b/media_driver/agnostic/Xe_M/Xe_HPM/codec/hal/codechal_hw_xe_hpm.cpp @@ -135,7 +135,7 @@ CodechalHwInterfaceXe_Hpm::CodechalHwInterfaceXe_Hpm( : CodechalHwInterfaceG12(osInterface, codecFunction, mhwInterfaces, disableScalability) { CODECHAL_HW_FUNCTION_ENTER; - m_avpInterface = static_cast(mhwInterfaces)->m_avpInterface; + PrepareCmdSize(codecFunction); } diff --git a/media_driver/agnostic/Xe_M/Xe_XPM/codec/hal/codechal_hw_xe_xpm.cpp b/media_driver/agnostic/Xe_M/Xe_XPM/codec/hal/codechal_hw_xe_xpm.cpp index d150631d1e0..91e4be63a65 100644 --- a/media_driver/agnostic/Xe_M/Xe_XPM/codec/hal/codechal_hw_xe_xpm.cpp +++ b/media_driver/agnostic/Xe_M/Xe_XPM/codec/hal/codechal_hw_xe_xpm.cpp @@ -49,9 +49,6 @@ CodechalHwInterfaceXe_Xpm::CodechalHwInterfaceXe_Xpm( { CODECHAL_HW_FUNCTION_ENTER; - - m_avpInterface = static_cast(mhwInterfaces)->m_avpInterface; - m_bltState = MOS_New(BltStateXe_Xpm, m_osInterface); if(m_bltState != nullptr) { diff --git a/media_driver/agnostic/gen12/codec/hal/codechal_hw_g12_X.cpp b/media_driver/agnostic/gen12/codec/hal/codechal_hw_g12_X.cpp index 053aca9e8b8..ebb898adfba 100644 --- a/media_driver/agnostic/gen12/codec/hal/codechal_hw_g12_X.cpp +++ b/media_driver/agnostic/gen12/codec/hal/codechal_hw_g12_X.cpp @@ -198,7 +198,13 @@ CodechalHwInterfaceG12::CodechalHwInterfaceG12( : CodechalHwInterface(osInterface, codecFunction, mhwInterfaces, disableScalability) { CODECHAL_HW_FUNCTION_ENTER; - m_avpInterface = static_cast(mhwInterfaces)->m_avpInterface; + + MhwInterfacesG12Tgllp *mhwItfG12Tgllp = static_cast(mhwInterfaces); + CODECHAL_HW_ASSERT(mhwItfG12Tgllp); + m_avpInterface = mhwItfG12Tgllp->m_avpInterface; + //Set the original m_avpInterface to nullptr to avoid double free and wild pointer + mhwItfG12Tgllp->m_avpInterface = nullptr; + m_mediaSfcItf = std::make_shared(m_osInterface); InternalInit(codecFunction);