[x265] [PATCH] Fix issue in default code flow & memory leak

Karam Singh karam.singh at multicorewareinc.com
Thu Sep 12 15:22:35 UTC 2024


This patch has been pushed to the master 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 Thu, Sep 12, 2024 at 5:55 PM Anusuya Kumarasamy <
anusuya.kumarasamy at multicorewareinc.com> wrote:

> From b5d9bc355bb68cd789679f1f6c0c27286b4fa6e5 Mon Sep 17 00:00:00 2001
> From: AnusuyaKumarasamy <anusuya.kumarasamy at multicorewareinc.com>
> Date: Tue, 10 Sep 2024 16:37:51 +0530
> Subject: [PATCH]  Fix issue in default code flow & memory leak
>
> ---
>  source/encoder/dpb.cpp |  7 ++++++-
>  source/x265cli.cpp     | 11 ++++++++++-
>  2 files changed, 16 insertions(+), 2 deletions(-)
>
> diff --git a/source/encoder/dpb.cpp b/source/encoder/dpb.cpp
> index 19480d7ca..caf73ad6d 100644
> --- a/source/encoder/dpb.cpp
> +++ b/source/encoder/dpb.cpp
> @@ -289,7 +289,12 @@ void DPB::prepareEncode(Frame *newFrame)
>          slice->m_numRefIdx[0] = x265_clip3(1,
> newFrame->m_param->maxNumReferences, numRef +
> newFrame->refPicSetInterLayer0.size() +
> newFrame->refPicSetInterLayer1.size());
>      else
>          slice->m_numRefIdx[0] =
> X265_MIN(newFrame->m_param->maxNumReferences, numRef); // Ensuring L0
> contains just the -ve POC
> -    slice->m_numRefIdx[1] = X265_MIN(newFrame->m_param->bBPyramid ? 3 :
> 2, slice->m_rps.numberOfPositivePictures +
> newFrame->refPicSetInterLayer0.size() +
> newFrame->refPicSetInterLayer1.size());
> +#if ENABLE_MULTIVIEW || ENABLE_SCC_EXT
> +    if(slice->m_param->numViews > 1 || !!slice->m_param->bEnableSCC)
> +        slice->m_numRefIdx[1] = X265_MIN(newFrame->m_param->bBPyramid ? 3
> : 2, slice->m_rps.numberOfPositivePictures +
> newFrame->refPicSetInterLayer0.size() +
> newFrame->refPicSetInterLayer1.size());
> +    else
> +#endif
> +        slice->m_numRefIdx[1] = X265_MIN(newFrame->m_param->bBPyramid ? 2
> : 1, slice->m_rps.numberOfPositivePictures);
>      slice->setRefPicList(m_picList, newFrame->refPicSetInterLayer0,
> newFrame->refPicSetInterLayer1, layer);
>
>      X265_CHECK(slice->m_sliceType != B_SLICE || slice->m_numRefIdx[1], "B
> slice without L1 references (non-fatal)\n");
> diff --git a/source/x265cli.cpp b/source/x265cli.cpp
> index 89852c701..ca7d9c973 100755
> --- a/source/x265cli.cpp
> +++ b/source/x265cli.cpp
> @@ -738,7 +738,7 @@ namespace X265_NS {
>                  OPT("frames") this->framesToBeEncoded =
> (uint32_t)x265_atoi(optarg, bError);
>                  OPT("no-progress") this->bProgress = false;
>                  OPT("output") outputfn = optarg;
> -                OPT("input") inputfn[0] = optarg;
> +                OPT("input") strcpy(inputfn[0] , optarg);
>                  OPT("recon") reconfn[0] = optarg;
>                  OPT("input-depth") inputBitDepth =
> (uint32_t)x265_atoi(optarg, bError);
>                  OPT("dither") this->bDither = true;
> @@ -1034,6 +1034,15 @@ namespace X265_NS {
>              return true;
>          }
>          general_log_file(param, this->output->getName(), X265_LOG_INFO,
> "output file: %s\n", outputfn);
> +
> +        for (int view = 0; view < MAX_VIEWS; view++)
> +        {
> +            if (inputfn[view] != NULL)
> +            {
> +                X265_FREE(inputfn[view]);
> +                inputfn[view] = NULL;
> +            }
> +        }
>          return false;
>      }
>
> --
> 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/20240912/eda776d6/attachment.htm>


More information about the x265-devel mailing list