From 6b82568ac37b8ff0b9f018a9e7a8044f9e61fe35 Mon Sep 17 00:00:00 2001 From: Anuj Mittal Date: Mon, 18 Apr 2022 10:00:38 +0800 Subject: intel-media-driver: fix build with gcc12 Backport a patch to fix: | error: the address of '_CODEC_VP8_PIC_PARAMS::ucMvUpdateProb' will | never be NULL [-Werror=address] | 238 | if (codecPicParams->ucMvUpdateProb[0] && picParam->mv_probs[0]) Signed-off-by: Anuj Mittal --- .../c8457540aed1ab9424661087276fb788c0e3aabb.patch | 109 +++++++++++++++++++++ .../libva/intel-media-driver_22.1.1.bb | 1 + 2 files changed, 110 insertions(+) create mode 100644 recipes-multimedia/libva/files/c8457540aed1ab9424661087276fb788c0e3aabb.patch diff --git a/recipes-multimedia/libva/files/c8457540aed1ab9424661087276fb788c0e3aabb.patch b/recipes-multimedia/libva/files/c8457540aed1ab9424661087276fb788c0e3aabb.patch new file mode 100644 index 00000000..046778b2 --- /dev/null +++ b/recipes-multimedia/libva/files/c8457540aed1ab9424661087276fb788c0e3aabb.patch @@ -0,0 +1,109 @@ +From c8457540aed1ab9424661087276fb788c0e3aabb Mon Sep 17 00:00:00 2001 +From: "Wang, Pingli" +Date: Wed, 23 Mar 2022 20:14:04 +0800 +Subject: [PATCH] Fixes #1354 + +Fixes #1354. It is to fix the compiling issue for gcc12.0.1. +[-Werror=address] [-Werror=dangling-pointer=][-Werror=alloc-size-larger-than=] + +Signed-off-by: Wang, Pingli + +Upstream-Status: Backport +Signed-off-by: Anuj Mittal +--- + .../agnostic/common/os/mos_utilities.h | 4 +-- + .../codec/hal/codechal_encoder_base.cpp | 2 +- + .../common/codec/ddi/media_ddi_decode_vp8.cpp | 25 ++++++++----------- + .../agnostic/common/os/mos_utilities_next.h | 4 +-- + 4 files changed, 16 insertions(+), 19 deletions(-) + +diff --git a/media_common/agnostic/common/os/mos_utilities.h b/media_common/agnostic/common/os/mos_utilities.h +index 7c395816f..d41a3a065 100644 +--- a/media_common/agnostic/common/os/mos_utilities.h ++++ b/media_common/agnostic/common/os/mos_utilities.h +@@ -181,10 +181,10 @@ _Ty* MOS_NewUtil(_Types&&... _Args) + template + _Ty *MOS_NewArrayUtil(const char *functionName, + const char *filename, +- int32_t line, int32_t numElements) ++ int32_t line, size_t numElements) + #else + template +-_Ty* MOS_NewArrayUtil(int32_t numElements) ++_Ty* MOS_NewArrayUtil(size_t numElements) + #endif + { + #if MOS_MESSAGES_ENABLED +diff --git a/media_driver/agnostic/common/codec/hal/codechal_encoder_base.cpp b/media_driver/agnostic/common/codec/hal/codechal_encoder_base.cpp +index 4bf869c60..e9b3575fd 100644 +--- a/media_driver/agnostic/common/codec/hal/codechal_encoder_base.cpp ++++ b/media_driver/agnostic/common/codec/hal/codechal_encoder_base.cpp +@@ -3891,6 +3891,7 @@ MOS_STATUS CodechalEncoderState::ReadCounterValue(uint16_t index, EncodeStatusRe + CODECHAL_ENCODE_FUNCTION_ENTER; + CODECHAL_ENCODE_CHK_NULL_RETURN(encodeStatusReport); + uint64_t *address2Counter = nullptr; ++ uint32_t ctr[4] = { 0 }; + + if (m_hwInterface->GetCpInterface()->IsHwCounterIncrement(m_osInterface)) + { +@@ -3923,7 +3924,6 @@ MOS_STATUS CodechalEncoderState::ReadCounterValue(uint16_t index, EncodeStatusRe + else + { + //Report driver generated counter which was submitted to HW by command +- uint32_t ctr[4] = { 0 }; + eStatus = m_hwInterface->GetCpInterface()->GetCounterValue(ctr); + if (MOS_STATUS_SUCCESS == eStatus) + { +diff --git a/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp b/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp +index 72891d584..fac4c415d 100644 +--- a/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp ++++ b/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp +@@ -235,20 +235,17 @@ VAStatus DdiDecodeVP8::ParsePicParams( + codecPicParams->ucUvModeProbs[0] = picParam->uv_mode_probs[0]; + codecPicParams->ucUvModeProbs[1] = picParam->uv_mode_probs[1]; + codecPicParams->ucUvModeProbs[2] = picParam->uv_mode_probs[2]; +- if (codecPicParams->ucMvUpdateProb[0] && picParam->mv_probs[0]) +- { +- MOS_SecureMemcpy(codecPicParams->ucMvUpdateProb[0], +- sizeof(codecPicParams->ucMvUpdateProb[0]), +- picParam->mv_probs[0], +- sizeof(codecPicParams->ucMvUpdateProb[0])); +- } +- if (codecPicParams->ucMvUpdateProb[1] && picParam->mv_probs[1]) +- { +- MOS_SecureMemcpy(codecPicParams->ucMvUpdateProb[1], +- sizeof(codecPicParams->ucMvUpdateProb[1]), +- picParam->mv_probs[1], +- sizeof(codecPicParams->ucMvUpdateProb[1])); +- } ++ ++ MOS_SecureMemcpy(codecPicParams->ucMvUpdateProb[0], ++ sizeof(codecPicParams->ucMvUpdateProb[0]), ++ picParam->mv_probs[0], ++ sizeof(codecPicParams->ucMvUpdateProb[0])); ++ ++ MOS_SecureMemcpy(codecPicParams->ucMvUpdateProb[1], ++ sizeof(codecPicParams->ucMvUpdateProb[1]), ++ picParam->mv_probs[1], ++ sizeof(codecPicParams->ucMvUpdateProb[1])); ++ + codecPicParams->ucP0EntropyCount = (8 - picParam->bool_coder_ctx.count) & 0x7; //hardware needs used bits not remaining bits in bool decoder + codecPicParams->ucP0EntropyValue = picParam->bool_coder_ctx.value; + codecPicParams->uiP0EntropyRange = picParam->bool_coder_ctx.range; +diff --git a/media_softlet/agnostic/common/os/mos_utilities_next.h b/media_softlet/agnostic/common/os/mos_utilities_next.h +index 509f2de3d..b6069bbc8 100644 +--- a/media_softlet/agnostic/common/os/mos_utilities_next.h ++++ b/media_softlet/agnostic/common/os/mos_utilities_next.h +@@ -90,10 +90,10 @@ class MosUtilities + template + static _Ty *MosNewArrayUtil(const char *functionName, + const char *filename, +- int32_t line, int32_t numElements) ++ int32_t line, size_t numElements) + #else + template +- static _Ty* MosNewArrayUtil(int32_t numElements) ++ static _Ty* MosNewArrayUtil(size_t numElements) + #endif + { + #if (_DEBUG || _RELEASE_INTERNAL) diff --git a/recipes-multimedia/libva/intel-media-driver_22.1.1.bb b/recipes-multimedia/libva/intel-media-driver_22.1.1.bb index eb1f0284..3613bb1b 100644 --- a/recipes-multimedia/libva/intel-media-driver_22.1.1.bb +++ b/recipes-multimedia/libva/intel-media-driver_22.1.1.bb @@ -21,6 +21,7 @@ DEPENDS += "libva gmmlib" SRC_URI = "git://github.com/intel/media-driver.git;protocol=https;nobranch=1 \ file://0001-upstream-ADLN.patch \ file://0002-Add-support-for-ADL-N-Enable-the-cmake-options.patch \ + file://c8457540aed1ab9424661087276fb788c0e3aabb.patch \ " SRCREV = "31c1b995f49ef118a4b02f0b8e45bccdacf0d15e" -- cgit v1.2.3-54-g00ecf