[x265] [PATCH] API changes to reconfigure scalinglists
Pradeep Ramachandran
pradeep at multicorewareinc.com
Tue Dec 20 05:18:52 CET 2016
On Mon, Dec 19, 2016 at 6:43 PM, <vignesh at multicorewareinc.com> wrote:
> # HG changeset patch
> # User Vignesh Vijayakumar <vignesh at multicorewareinc.com>
> # Date 1481959810 -19800
> # Sat Dec 17 13:00:10 2016 +0530
> # Branch stable
>
This patch cannot go directly to stable branch as this is a new feature
that needs to be tested first. Please send for default branch.
> # Node ID 176274eb5f2cee9733ba47697e7004482b3bbc12
> # Parent ce19aaa0637df84d56fc985b0062c7fe2664cdf6
> API changes to reconfigure scalinglists
>
> diff -r ce19aaa0637d -r 176274eb5f2c source/encoder/api.cpp
> --- a/source/encoder/api.cpp Fri Dec 16 11:01:59 2016 +0530
> +++ b/source/encoder/api.cpp Sat Dec 17 13:00:10 2016 +0530
> @@ -183,6 +183,13 @@
> }
> else
> {
> + if (encoder->m_latestParam->scalingLists &&
> encoder->m_latestParam->scalingLists != encoder->m_param->scalingLists)
> + {
> + if (encoder->m_scalingList.parseScalingList(encoder->m_
> latestParam->scalingLists))
> + return -1;
> + encoder->m_scalingList.setupQuantMatrices();
> + encoder->m_latestParam->bRepeatHeaders = true;
>
I'm not so sure that this is a good idea. Enabling repeat-headers half way
through the encode seems a little weird to be.
IMO, it would be more prudent to allow for reconfiguring scaling lists only
when repeat headers is enabled. Else, just print a warning.
> + }
> encoder->m_reconfigure = true;
> encoder->printReconfigureParams();
> }
> diff -r ce19aaa0637d -r 176274eb5f2c source/encoder/encoder.cpp
> --- a/source/encoder/encoder.cpp Fri Dec 16 11:01:59 2016 +0530
> +++ b/source/encoder/encoder.cpp Sat Dec 17 13:00:10 2016 +0530
> @@ -408,6 +408,14 @@
> if (m_analysisFile)
> fclose(m_analysisFile);
>
> + if (m_latestParam != NULL && m_latestParam != m_param)
> + {
> + if (m_latestParam->scalingLists != m_param->scalingLists)
> + free((char*)m_latestParam->scalingLists);
> +
> + PARAM_NS::x265_param_free(m_latestParam);
> + }
> +
> if (m_param)
> {
> /* release string arguments that were strdup'd */
> @@ -420,8 +428,6 @@
>
> PARAM_NS::x265_param_free(m_param);
> }
> -
> - PARAM_NS::x265_param_free(m_latestParam);
> }
>
> void Encoder::updateVbvPlan(RateControl* rc)
> @@ -986,6 +992,8 @@
> encParam->bEnableRectInter = param->bEnableRectInter;
> encParam->maxNumMergeCand = param->maxNumMergeCand;
> encParam->bIntraInBFrames = param->bIntraInBFrames;
> + if (param->scalingLists && !encParam->scalingLists)
> + encParam->scalingLists = strdup(param->scalingLists);
> /* To add: Loop Filter/deblocking controls, transform skip, signhide
> require PPS to be resent */
> /* To add: SAO, temporal MVP, AMP, TU depths require SPS to be
> resent, at every CVS boundary */
> return x265_check_params(encParam);
> @@ -2474,6 +2482,7 @@
> TOOLCMP(oldParam->bEnableRectInter, newParam->bEnableRectInter,
> "rect=%d to %d\n");
> TOOLCMP(oldParam->maxNumMergeCand, newParam->maxNumMergeCand,
> "max-merge=%d to %d\n");
> TOOLCMP(oldParam->bIntraInBFrames, newParam->bIntraInBFrames,
> "b-intra=%d to %d\n");
> + TOOLCMP(oldParam->scalingLists, newParam->scalingLists,
> "scalinglists=%s to %s\n");
> }
>
> bool Encoder::computeSPSRPSIndex()
> _______________________________________________
> 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/20161220/4c5a24ec/attachment.html>
More information about the x265-devel
mailing list