diff --git a/media_driver/agnostic/gen8/codec/hal/codechal_fei_avc_g8.cpp b/media_driver/agnostic/gen8/codec/hal/codechal_fei_avc_g8.cpp index 31e6ca84a3..1de653fed4 100644 --- a/media_driver/agnostic/gen8/codec/hal/codechal_fei_avc_g8.cpp +++ b/media_driver/agnostic/gen8/codec/hal/codechal_fei_avc_g8.cpp @@ -6884,7 +6884,6 @@ MOS_STATUS CodechalEncodeAvcEncFeiG8::InitializeState() } bWeightedPredictionSupported = true; - m_brcHistoryBufferSize = m_brcHistoryBufferSize; dwBrcConstantSurfaceWidth = m_brcConstantSurfaceWidth; dwBrcConstantSurfaceHeight = m_brcConstantSurfaceHeight; diff --git a/media_driver/linux/common/codec/ddi/media_libva_decoder.cpp b/media_driver/linux/common/codec/ddi/media_libva_decoder.cpp index edeb718968..6dc130d6ca 100755 --- a/media_driver/linux/common/codec/ddi/media_libva_decoder.cpp +++ b/media_driver/linux/common/codec/ddi/media_libva_decoder.cpp @@ -65,7 +65,7 @@ static int32_t DdiDecode_GetDisplayInfo(VADriverContextP ctx) vsinfo.yres = 0; fd = open("/dev/graphics/fb0",O_RDONLY); - if(fd > 0) + if(fd >= 0) { if(ioctl(fd, FBIOGET_VSCREENINFO, &vsinfo) < 0) { @@ -527,7 +527,7 @@ VAStatus DdiDecode_StatusReport(PDDI_MEDIA_CONTEXT mediaCtx, DecodePipelineAdapt // The surface is not busy in HW, but uNumCompletedReport is 0, treat as engine reset else { - surface->curStatusReport.decode.status == CODECHAL_STATUS_INCOMPLETE; + surface->curStatusReport.decode.status = CODECHAL_STATUS_INCOMPLETE; surface->curStatusReportQueryState = DDI_MEDIA_STATUS_REPORT_QUERY_STATE_COMPLETED; DDI_ASSERTMESSAGE("No report available at all! Engine reset may have occured."); } diff --git a/media_driver/linux/common/renderhal/renderhal_linux.cpp b/media_driver/linux/common/renderhal/renderhal_linux.cpp index 65a422641b..e2393e02cf 100644 --- a/media_driver/linux/common/renderhal/renderhal_linux.cpp +++ b/media_driver/linux/common/renderhal/renderhal_linux.cpp @@ -242,6 +242,7 @@ MOS_STATUS RenderHal_SetSurfaceStateToken( SURFACE_STATE_TOKEN_COMMON *pTokenState = (SURFACE_STATE_TOKEN_COMMON*)pSurfaceStateToken; PMOS_INTERFACE pOsInterface = pRenderHal->pOsInterface; + MHW_MI_CHK_NULL(pOsInterface); PMOS_RESOURCE pOsResource = &(pParams->pOsSurface->OsResource); int32_t iAllocationIndex = pOsInterface->pfnGetResourceAllocationIndex(pOsInterface, pOsResource); diff --git a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_back_end_xe_lpm_plus_base.h b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_back_end_xe_lpm_plus_base.h index a86344914a..261162eecc 100644 --- a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_back_end_xe_lpm_plus_base.h +++ b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_back_end_xe_lpm_plus_base.h @@ -41,6 +41,7 @@ class HevcDecodeBackEndPktXe_Lpm_Plus_Base : public HevcDecodeBackEndPkt : HevcDecodeBackEndPkt(pipeline, task, hwInterface) { m_hwInterface = dynamic_cast(hwInterface); + DECODE_CHK_NULL_NO_STATUS_RETURN(m_hwInterface); m_vdencItf = std::static_pointer_cast(m_hwInterface->GetVdencInterfaceNext()); } diff --git a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_front_end_xe_lpm_plus_base.h b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_front_end_xe_lpm_plus_base.h index f173a34bc7..e318f24a16 100644 --- a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_front_end_xe_lpm_plus_base.h +++ b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_front_end_xe_lpm_plus_base.h @@ -41,6 +41,7 @@ class HevcDecodeFrontEndPktXe_Lpm_Plus_Base : public HevcDecodeFrontEndPkt : HevcDecodeFrontEndPkt(pipeline, task, hwInterface) { m_hwInterface = dynamic_cast(hwInterface); + DECODE_CHK_NULL_NO_STATUS_RETURN(m_hwInterface); m_vdencItf = std::static_pointer_cast(m_hwInterface->GetVdencInterfaceNext()); } diff --git a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_long_xe_lpm_plus_base.h b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_long_xe_lpm_plus_base.h index bd6858608d..a44f9dc68c 100644 --- a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_long_xe_lpm_plus_base.h +++ b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_long_xe_lpm_plus_base.h @@ -41,6 +41,7 @@ class HevcDecodeLongPktXe_Lpm_Plus_Base : public HevcDecodeLongPkt : HevcDecodeLongPkt(pipeline, task, hwInterface) { m_hwInterface = dynamic_cast(hwInterface); + DECODE_CHK_NULL_NO_STATUS_RETURN(m_hwInterface); m_vdencItf = std::static_pointer_cast(m_hwInterface->GetVdencInterfaceNext()); } diff --git a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_real_tile_xe_lpm_plus_base.h b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_real_tile_xe_lpm_plus_base.h index 6213582f16..4e20650df5 100644 --- a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_real_tile_xe_lpm_plus_base.h +++ b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/hevc/packet/decode_hevc_packet_real_tile_xe_lpm_plus_base.h @@ -41,6 +41,7 @@ class HevcDecodeRealTilePktXe_Lpm_Plus_Base : public HevcDecodeRealTilePkt : HevcDecodeRealTilePkt(pipeline, task, hwInterface) { m_hwInterface = dynamic_cast(hwInterface); + DECODE_CHK_NULL_NO_STATUS_RETURN(m_hwInterface); m_vdencItf = std::static_pointer_cast(m_hwInterface->GetVdencInterfaceNext()); } diff --git a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_back_end_xe_lpm_plus_base.h b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_back_end_xe_lpm_plus_base.h index 3557bf146a..d9aebd3d86 100644 --- a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_back_end_xe_lpm_plus_base.h +++ b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_back_end_xe_lpm_plus_base.h @@ -41,6 +41,7 @@ class Vp9DecodeBackEndPktXe_Lpm_Plus_Base : public Vp9DecodeBackEndPkt : Vp9DecodeBackEndPkt(pipeline, task, hwInterface) { m_hwInterface = dynamic_cast(hwInterface); + DECODE_CHK_NULL_NO_STATUS_RETURN(m_hwInterface); m_vdencItf = std::static_pointer_cast(m_hwInterface->GetVdencInterfaceNext()); } diff --git a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_front_end_xe_lpm_plus_base.h b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_front_end_xe_lpm_plus_base.h index f298718811..9e4488f763 100644 --- a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_front_end_xe_lpm_plus_base.h +++ b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_front_end_xe_lpm_plus_base.h @@ -41,6 +41,7 @@ class Vp9DecodeFrontEndPktXe_Lpm_Plus_Base : public Vp9DecodeFrontEndPkt : Vp9DecodeFrontEndPkt(pipeline, task, hwInterface) { m_hwInterface = dynamic_cast(hwInterface); + DECODE_CHK_NULL_NO_STATUS_RETURN(m_hwInterface); m_vdencItf = std::static_pointer_cast(m_hwInterface->GetVdencInterfaceNext()); } diff --git a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_single_xe_lpm_plus_base.h b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_single_xe_lpm_plus_base.h index 5497b1bcee..e5f01ae77b 100644 --- a/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_single_xe_lpm_plus_base.h +++ b/media_softlet/agnostic/Xe_M_plus/Xe_LPM_plus_base/codec/hal/dec/vp9/packet/decode_vp9_packet_single_xe_lpm_plus_base.h @@ -40,6 +40,7 @@ class Vp9DecodeSinglePktXe_Lpm_Plus_Base : public Vp9DecodeSinglePkt Vp9DecodeSinglePkt(pipeline, task, hwInterface) { m_hwInterface = dynamic_cast(hwInterface); + DECODE_CHK_NULL_NO_STATUS_RETURN(m_hwInterface); m_vdencItf = std::static_pointer_cast(m_hwInterface->GetVdencInterfaceNext()); } diff --git a/media_softlet/linux/common/codec/ddi/dec/ddi_decode_functions.cpp b/media_softlet/linux/common/codec/ddi/dec/ddi_decode_functions.cpp index c44812be92..5fe54688ad 100644 --- a/media_softlet/linux/common/codec/ddi/dec/ddi_decode_functions.cpp +++ b/media_softlet/linux/common/codec/ddi/dec/ddi_decode_functions.cpp @@ -1097,7 +1097,7 @@ VAStatus DdiDecodeFunctions::StatusReport( // The surface is not busy in HW, but uNumCompletedReport is 0, treat as engine reset else { - surface->curStatusReport.decode.status == CODECHAL_STATUS_INCOMPLETE; + surface->curStatusReport.decode.status = CODECHAL_STATUS_INCOMPLETE; surface->curStatusReportQueryState = DDI_MEDIA_STATUS_REPORT_QUERY_STATE_COMPLETED; DDI_ASSERTMESSAGE("No report available at all! Engine reset may have occured."); } @@ -1252,7 +1252,7 @@ int32_t DdiDecodeFunctions::GetDisplayInfo(VADriverContextP ctx) vsinfo.yres = 0; fd = open("/dev/graphics/fb0",O_RDONLY); - if (fd > 0) + if (fd >= 0) { if (ioctl(fd, FBIOGET_VSCREENINFO, &vsinfo) < 0) {