<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Dec 13, 2016 at 9:49 AM, Vignesh V Menon <span dir="ltr"><<a href="mailto:vignesh@multicorewareinc.com" target="_blank">vignesh@multicorewareinc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div class="m_3251896426862886914gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"># HG changeset patch</div><div dir="ltr"># User Vignesh Vijayakumar <<a href="mailto:vignesh@multicorewareinc.com" target="_blank">vignesh@multicorewareinc.com</a>></div><div dir="ltr"># Date 1480914995 -19800</div><div dir="ltr">#      Mon Dec 05 10:46:35 2016 +0530</div><div dir="ltr"># Node ID fb436beef19588e35160624e32fdff<wbr>cf9506efce</div><div dir="ltr"># Parent  <wbr>c97c64ab8b8eaea8b1de611adc9022<wbr>815d88b09b</div><div dir="ltr">API function to reconfigure scalinglists</div><div dir="ltr"><br></div><div dir="ltr">diff -r c97c64ab8b8e -r fb436beef195 source/CMakeLists.txt</div><div dir="ltr">--- a/source/CMakeLists.txt<span class="m_3251896426862886914gmail-Apple-tab-span" style="white-space:pre-wrap">     </span>Thu May 26 17:49:25 2016 +0530</div><div dir="ltr">+++ b/source/CMakeLists.txt<span class="m_3251896426862886914gmail-Apple-tab-span" style="white-space:pre-wrap">        </span>Mon Dec 05 10:46:35 2016 +0530</div><div dir="ltr">@@ -30,7 +30,7 @@</div><div dir="ltr"> mark_as_advanced(FPROFILE_USE FPROFILE_GENERATE NATIVE_BUILD)</div><div dir="ltr"> </div><div dir="ltr"> # X265_BUILD must be incremented each time the public API is changed</div><div dir="ltr">-set(X265_BUILD 102)</div><div dir="ltr">+set(X265_BUILD 103)</div><div dir="ltr"> configure_file("${PROJECT_<wbr>SOURCE_DIR}/<a href="http://x265.def.in" target="_blank">x265.def.in</a>"</div><div dir="ltr">                "${PROJECT_BINARY_DIR}/x265.<wbr>def")</div><div dir="ltr"> configure_file("${PROJECT_<wbr>SOURCE_DIR}/<a href="http://x265_config.h.in" target="_blank">x265_config.h.in</a>"</div><div dir="ltr">diff -r c97c64ab8b8e -r fb436beef195 source/encoder/api.cpp</div><div dir="ltr">--- a/source/encoder/api.cpp<span class="m_3251896426862886914gmail-Apple-tab-span" style="white-space:pre-wrap">  </span>Thu May 26 17:49:25 2016 +0530</div><div dir="ltr">+++ b/source/encoder/api.cpp<span class="m_3251896426862886914gmail-Apple-tab-span" style="white-space:pre-wrap">       </span>Mon Dec 05 10:46:35 2016 +0530</div><div dir="ltr">@@ -31,6 +31,10 @@</div><div dir="ltr"> #include "nal.h"</div><div dir="ltr"> #include "bitcost.h"</div><div dir="ltr"> </div><div dir="ltr">+#ifdef _WIN32</div><div dir="ltr">+#define strdup _strdup</div><div dir="ltr">+#endif</div><div dir="ltr">+</div><div dir="ltr"> /* multilib namespace reflectors */</div><div dir="ltr"> #if LINKED_8BIT</div><div dir="ltr"> namespace x265_8bit {</div><div dir="ltr">@@ -189,6 +193,23 @@</div><div dir="ltr">     return ret;</div><div dir="ltr"> }</div><div dir="ltr"> </div><div dir="ltr">+int x265_scalinglists_reconfig(<wbr>x265_encoder* enc, const char *filename)</div><div dir="ltr">+{</div><div dir="ltr">+    if (!enc || !filename)</div><div dir="ltr">+        return -1;</div><div dir="ltr">+    Encoder* encoder = static_cast<Encoder*>(enc);</div><div dir="ltr">+    if (!encoder->m_latestParam)</div><div dir="ltr">+        return -1;</div><div dir="ltr">+    encoder->m_latestParam-><wbr>bRepeatHeaders = true;</div><div dir="ltr">+    encoder->m_latestParam-><wbr>scalingLists = strdup(filename);</div><div dir="ltr">+    if (encoder->m_scalingList.<wbr>parseScalingList(encoder->m_<wbr>latestParam->scalingLists))</div><div dir="ltr">+        return -1;</div><div dir="ltr">+    encoder->m_scalingList.<wbr>setupQuantMatrices();</div><div dir="ltr">+    encoder->m_reconfigure = true;</div><div dir="ltr">+    encoder-><wbr>printReconfigureParams();</div><div dir="ltr">+    return 0;</div><div dir="ltr">+}</div><div dir="ltr">+</div><div dir="ltr"> int x265_encoder_encode(x265_<wbr>encoder *enc, x265_nal **pp_nal, uint32_t *pi_nal, x265_picture *pic_in, x265_picture *pic_out)</div><div dir="ltr"> {</div><div dir="ltr">     if (!enc)</div><div dir="ltr">diff -r c97c64ab8b8e -r fb436beef195 source/encoder/encoder.cpp</div><div dir="ltr">--- a/source/encoder/encoder.cpp<span class="m_3251896426862886914gmail-Apple-tab-span" style="white-space:pre-wrap">    </span>Thu May 26 17:49:25 2016 +0530</div><div dir="ltr">+++ b/source/encoder/encoder.cpp<span class="m_3251896426862886914gmail-Apple-tab-span" style="white-space:pre-wrap">   </span>Mon Dec 05 10:46:35 2016 +0530</div><div dir="ltr">@@ -408,6 +408,14 @@</div><div dir="ltr">     if (m_analysisFile)</div><div dir="ltr">         fclose(m_analysisFile);</div><div dir="ltr"> </div><div dir="ltr">+    if (m_latestParam != NULL && m_latestParam != m_param)</div><div dir="ltr">+    {</div><div dir="ltr">+        if (m_latestParam->scalingLists != m_param->scalingLists)</div><div dir="ltr">+            free((char*)m_latestParam-><wbr>scalingLists);</div><div dir="ltr">+</div><div dir="ltr">+        PARAM_NS::x265_param_free(m_<wbr>latestParam);</div><div dir="ltr">+    }</div><div dir="ltr">+</div><div dir="ltr">     if (m_param)</div><div dir="ltr">     {</div><div dir="ltr">         /* release string arguments that were strdup'd */</div><div dir="ltr">@@ -420,8 +428,6 @@</div><div dir="ltr"> </div><div dir="ltr">         PARAM_NS::x265_param_free(m_<wbr>param);</div><div dir="ltr">     }</div><div dir="ltr">-</div><div dir="ltr">-    PARAM_NS::x265_param_free(m_<wbr>latestParam);</div><div dir="ltr"> }</div><div dir="ltr"> </div><div dir="ltr"> void Encoder::updateVbvPlan(<wbr>RateControl* rc)</div><div dir="ltr">@@ -2474,6 +2480,7 @@</div><div dir="ltr">     TOOLCMP(oldParam-><wbr>bEnableRectInter, newParam->bEnableRectInter, "rect=%d to %d\n");</div><div dir="ltr">     TOOLCMP(oldParam-><wbr>maxNumMergeCand, newParam->maxNumMergeCand, "max-merge=%d to %d\n");</div><div dir="ltr">     TOOLCMP(oldParam-><wbr>bIntraInBFrames, newParam->bIntraInBFrames, "b-intra=%d to %d\n");</div><div dir="ltr">+    TOOLCMP(oldParam-><wbr>scalingLists, newParam->scalingLists, "scalinglists=%s to %s\n");</div><div dir="ltr"> }</div><div dir="ltr"> </div><div dir="ltr"> bool Encoder::computeSPSRPSIndex()</div><div dir="ltr">diff -r c97c64ab8b8e -r fb436beef195 source/x265.h</div><div dir="ltr">--- a/source/x265.h<span class="m_3251896426862886914gmail-Apple-tab-span" style="white-space:pre-wrap">  </span>Thu May 26 17:49:25 2016 +0530</div><div dir="ltr">+++ b/source/x265.h<span class="m_3251896426862886914gmail-Apple-tab-span" style="white-space:pre-wrap">        </span>Mon Dec 05 10:46:35 2016 +0530</div><div dir="ltr">@@ -1498,6 +1498,10 @@</div><div dir="ltr">  *      parameters to take this into account. */</div><div dir="ltr"> int x265_encoder_reconfig(x265_<wbr>encoder *, x265_param *);</div><div dir="ltr"> </div><div dir="ltr">+/* x265_scalinglists_reconfig:</div><div dir="ltr">+ *      quantization coefficients from the input file will be copied. */</div><div dir="ltr">+int x265_scalinglists_reconfig(<wbr>x265_encoder* enc, const char *filename);</div><div dir="ltr">+</div></div></div></div></div></div></div></div></blockquote><div><br></div><div>Can't this be done as part of the x265_encoder_reconfig() API call, with some special casing when the scaling list is changing?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div class="m_3251896426862886914gmail_signature"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"> /* x265_encoder_get_stats:</div><div dir="ltr">  *       returns encoder statistics */</div><div dir="ltr"> void x265_encoder_get_stats(x265_<wbr>encoder *encoder, x265_stats *, uint32_t statsSizeBytes);</div><div><br></div><div><br></div></div></div></div></div></div></div>
</div>
<br>______________________________<wbr>_________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" rel="noreferrer" target="_blank">https://mailman.videolan.org/<wbr>listinfo/x265-devel</a><br>
<br></blockquote></div><br></div></div>