<div dir="ltr"># HG changeset patch<br># User Vignesh Vijayakumar <<a href="mailto:vignesh@multicorewareinc.com">vignesh@multicorewareinc.com</a>><br># Date 1482231953 -19800<br>#      Tue Dec 20 16:35:53 2016 +0530<br># Node ID 88285bf550a4f88bb09ff5b49ec46b81140a025d<br># Parent  78e1e1354a25d287f17359ed489833e46bf177f1<br>API changes to reconfigure scalinglists<br><br>diff -r 78e1e1354a25 -r 88285bf550a4 source/encoder/api.cpp<br>--- a/source/encoder/api.cpp    Fri Dec 09 10:45:12 2016 +0530<br>+++ b/source/encoder/api.cpp    Tue Dec 20 16:35:53 2016 +0530<br>@@ -183,6 +183,12 @@<br>     }<br>     else<br>     {<br>+        if (encoder->m_latestParam->scalingLists && encoder->m_latestParam->scalingLists != encoder->m_param->scalingLists)<br>+        {<br>+            if (encoder->m_scalingList.parseScalingList(encoder->m_latestParam->scalingLists))<br>+                return -1;<br>+            encoder->m_scalingList.setupQuantMatrices();<br>+        }<br>         encoder->m_reconfigure = true;<br>         encoder->printReconfigureParams();<br>     }<br>diff -r 78e1e1354a25 -r 88285bf550a4 source/encoder/encoder.cpp<br>--- a/source/encoder/encoder.cpp    Fri Dec 09 10:45:12 2016 +0530<br>+++ b/source/encoder/encoder.cpp    Tue Dec 20 16:35:53 2016 +0530<br>@@ -408,6 +408,14 @@<br>     if (m_analysisFile)<br>         fclose(m_analysisFile);<br> <br>+    if (m_latestParam != NULL && m_latestParam != m_param)<br>+    {<br>+        if (m_latestParam->scalingLists != m_param->scalingLists)<br>+            free((char*)m_latestParam->scalingLists);<br>+<br>+        PARAM_NS::x265_param_free(m_latestParam);<br>+    }<br>+<br>     if (m_param)<br>     {<br>         /* release string arguments that were strdup'd */<br>@@ -420,8 +428,6 @@<br> <br>         PARAM_NS::x265_param_free(m_param);<br>     }<br>-<br>-    PARAM_NS::x265_param_free(m_latestParam);<br> }<br> <br> void Encoder::updateVbvPlan(RateControl* rc)<br>@@ -986,6 +992,8 @@<br>     encParam->bEnableRectInter = param->bEnableRectInter;<br>     encParam->maxNumMergeCand = param->maxNumMergeCand;<br>     encParam->bIntraInBFrames = param->bIntraInBFrames;<br>+    if (param->scalingLists && !encParam->scalingLists)<br>+        encParam->scalingLists = strdup(param->scalingLists);<br>     /* To add: Loop Filter/deblocking controls, transform skip, signhide require PPS to be resent */<br>     /* To add: SAO, temporal MVP, AMP, TU depths require SPS to be resent, at every CVS boundary */<br>     return x265_check_params(encParam);<br>@@ -2474,6 +2482,7 @@<br>     TOOLCMP(oldParam->bEnableRectInter, newParam->bEnableRectInter, "rect=%d to %d\n");<br>     TOOLCMP(oldParam->maxNumMergeCand, newParam->maxNumMergeCand, "max-merge=%d to %d\n");<br>     TOOLCMP(oldParam->bIntraInBFrames, newParam->bIntraInBFrames, "b-intra=%d to %d\n");<br>+    TOOLCMP(oldParam->scalingLists, newParam->scalingLists, "scalinglists=%s to %s\n");<br> }<br> <br> bool Encoder::computeSPSRPSIndex()<br><br></div>