<div dir="ltr"><div># HG changeset patch</div><div># User Deepthi Nandakumar <<a href="mailto:deepthi@multicorewareinc.com">deepthi@multicorewareinc.com</a>></div><div># Date 1458199897 -19800</div><div>#      Thu Mar 17 13:01:37 2016 +0530</div><div># Node ID 63748dea60675d5a029ca0b1b8a92de2aaad94b0</div><div># Parent  4b0da550a69cb237f1042d913f0d40fd9c8e293e</div><div>encoder: the first frame encoder resets reconfigure for itself and all other FEs</div><div><br></div><div>Reconfigure also now prints the next frame ID to be queued (and not the next one</div><div>to be encoded)</div><div><br></div><div>diff -r 4b0da550a69c -r 63748dea6067 source/encoder/encoder.cpp</div><div>--- a/source/encoder/encoder.cpp<span class="" style="white-space:pre"> </span>Thu Mar 17 17:04:10 2016 +0530</div><div>+++ b/source/encoder/encoder.cpp<span class="" style="white-space:pre">     </span>Thu Mar 17 13:01:37 2016 +0530</div><div>@@ -821,22 +821,17 @@</div><div>             if (curEncoder->m_reconfigure)</div><div>             {</div><div>                 /* One round robin cycle of FE reconfigure is complete */</div><div>-                if (m_reconfigure)</div><div>-                {</div><div>-                    /* Safe to copy m_latestParam to Encoder::m_param, encoder reconfigure complete */</div><div>-                    memcpy (m_param, m_latestParam, sizeof(x265_param));</div><div>-                    m_reconfigure = false;</div><div>-                }</div><div>-                /* Reset current FEs to default */</div><div>-                curEncoder->m_param = m_param;</div><div>-                curEncoder->m_reconfigure = false;</div><div>+                /* Safe to copy m_latestParam to Encoder::m_param, encoder reconfigure complete */</div><div>+                for (int frameEncId = 0; frameEncId < m_param->frameNumThreads; frameEncId++)</div><div>+                    m_frameEncoder[frameEncId]->m_reconfigure = false;</div><div>+                memcpy (m_param, m_latestParam, sizeof(x265_param));</div><div>+                m_reconfigure = false;</div><div>             }</div><div>-            else</div><div>-            {</div><div>-                /* Initiate reconfigure for this FE if necessary */</div><div>-                curEncoder->m_param = m_reconfigure ? m_latestParam : m_param;</div><div>-                curEncoder->m_reconfigure = m_reconfigure;</div><div>-            }</div><div>+</div><div>+            /* Initiate reconfigure for this FE if necessary */</div><div>+            curEncoder->m_param = m_reconfigure ? m_latestParam : m_param;</div><div>+            curEncoder->m_reconfigure = m_reconfigure;</div><div>+</div><div>             /* give this frame a FrameData instance before encoding */</div><div>             if (m_dpb->m_frameDataFreeList)</div><div>             {</div><div>@@ -2174,7 +2169,7 @@</div><div>     x265_param* oldParam = m_param;</div><div>     x265_param* newParam = m_latestParam;</div><div>     </div><div>-    x265_log(newParam, X265_LOG_INFO, "Reconfigured param options, input Frame: %d\n", m_encodedFrameNum + 1);</div><div>+    x265_log(newParam, X265_LOG_INFO, "Reconfigured param options, input Frame: %d\n", m_pocLast + 1);</div><div> </div><div>     char tmp[40];</div><div> #define TOOLCMP(COND1, COND2, STR)  if (COND1 != COND2) { sprintf(tmp, STR, COND1, COND2); x265_log(newParam, X265_LOG_INFO, tmp); }</div><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div>Deepthi Nandakumar<br></div>Engineering Manager, x265<br></div>Multicoreware, Inc<br></div></div>
</div>