<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>