[x265] [PATCH] Fix decoder crash in scc

Karam Singh karam.singh at multicorewareinc.com
Tue Oct 15 09:36:01 UTC 2024


This patch has been pushed to the release 4.1 branch.
*__________________________*
*Karam Singh*
*Ph.D. IIT Guwahati*
Senior Software (Video Coding) Engineer
Mobile: +91 8011279030
Block 9A, 6th floor, DLF Cyber City
Manapakkam, Chennai 600 089


On Tue, Oct 15, 2024 at 12:17 PM Anusuya Kumarasamy <
anusuya.kumarasamy at multicorewareinc.com> wrote:

> From 815a784c473b0d95498974228e60d1440316ea11 Mon Sep 17 00:00:00 2001
> From: AnusuyaKumarasamy <anusuya.kumarasamy at 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
>
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20241015/bee6b21f/attachment-0001.htm>


More information about the x265-devel mailing list