>From 815a784c473b0d95498974228e60d1440316ea11 Mon Sep 17 00:00:00 2001 From: AnusuyaKumarasamy <anusuya.kumaras...@multicorewareinc.com> Date: Mon, 14 Oct 2024 13:11:47 +0530 Subject: [PATCH] Fix decoder crash in scc
--- source/common/slice.cpp | 2 +- source/common/slice.h | 1 - source/encoder/dpb.cpp | 41 -------------------------------------- source/encoder/entropy.cpp | 4 ---- 4 files changed, 1 insertion(+), 47 deletions(-) diff --git a/source/common/slice.cpp b/source/common/slice.cpp index 5e5ad8a92..b5b5e815c 100644 --- a/source/common/slice.cpp +++ b/source/common/slice.cpp @@ -101,7 +101,7 @@ void Slice::setRefPicList(PicList& picList, int sLayerId) if (!checkNumPocTotalCurr && m_rps.numberOfPictures == 0) { Frame* prevPic = picList.getPOC(X265_MAX(0, m_poc - 1)); - if (prevPic->m_poc != X265_MAX(0, m_poc - 1)) + if (prevPic && prevPic->m_poc != X265_MAX(0, m_poc - 1)) { prevPic = picList.getPOC(m_poc); diff --git a/source/common/slice.h b/source/common/slice.h index 0d0b2efb4..08e2577c7 100644 --- a/source/common/slice.h +++ b/source/common/slice.h @@ -405,7 +405,6 @@ public: #if ENABLE_SCC_EXT Frame* m_lastEncPic; - bool m_bLMvdL1Zero; bool m_useIntegerMv; #endif bool m_bTemporalMvp; diff --git a/source/encoder/dpb.cpp b/source/encoder/dpb.cpp index ae26c5518..69f821aee 100644 --- a/source/encoder/dpb.cpp +++ b/source/encoder/dpb.cpp @@ -341,47 +341,6 @@ void DPB::prepareEncode(Frame *newFrame) slice->m_bTemporalMvp = slice->m_sps->bTemporalMVPEnabled; #if ENABLE_SCC_EXT - bool bGPBcheck = false; - if (slice->m_sliceType == B_SLICE) - { - if (slice->m_param->bEnableSCC) - { - if (slice->m_numRefIdx[0] - 1 == slice->m_numRefIdx[1]) - { - bGPBcheck = true; - for (int i = 0; i < slice->m_numRefIdx[1]; i++) - { - if (slice->m_refPOCList[1][i] != slice->m_refPOCList[0][i]) - { - bGPBcheck = false; - break; - } - } - } - } - else if (slice->m_numRefIdx[0] == slice->m_numRefIdx[1]) - { - bGPBcheck = true; - int i; - for (i = 0; i < slice->m_numRefIdx[1]; i++) - { - if (slice->m_refPOCList[1][i] != slice->m_refPOCList[0][i]) - { - bGPBcheck = false; - break; - } - } - } - } - if (bGPBcheck) - { - slice->m_bLMvdL1Zero = true; - } - else - { - slice->m_bLMvdL1Zero = false; - } - if (!slice->isIntra() && slice->m_param->bEnableTemporalMvp) { const Frame* colPic = slice->m_refFrameList[slice->isInterB() && !slice->m_colFromL0Flag][slice->m_colRefIdx]; diff --git a/source/encoder/entropy.cpp b/source/encoder/entropy.cpp index 18978f26e..86a1d0c7d 100644 --- a/source/encoder/entropy.cpp +++ b/source/encoder/entropy.cpp @@ -1073,11 +1073,7 @@ void Entropy::codeSliceHeader(const Slice& slice, FrameData& encData, uint32_t s } if (slice.isInterB()) -#if ENABLE_SCC_EXT - WRITE_FLAG(slice.m_bLMvdL1Zero, "mvd_l1_zero_flag"); -#else WRITE_FLAG(0, "mvd_l1_zero_flag"); -#endif #if ENABLE_SCC_EXT if (slice.m_bTemporalMvp) -- 2.36.0.windows.1
0001-Fix-decoder-crash-in-scc.patch
Description: Binary data
_______________________________________________ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel