<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Dec 22, 2017 at 3:51 PM,  <span dir="ltr"><<a href="mailto:aruna@multicorewareinc.com" target="_blank">aruna@multicorewareinc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""># HG changeset patch<br>
# User Aruna Matheswaran <<a href="mailto:aruna@multicorewareinc.com">aruna@multicorewareinc.com</a>><br>
# Date 1512624552 -19800<br>
#      Thu Dec 07 10:59:12 2017 +0530<br>
</span># Branch stable<br>
# Node ID 2e684b80d90fac3d674fbbcd4b4157<wbr>2e4337b736<br>
# Parent  78c0f2c8ba087b38e291226a9555b4<wbr>b4dab323a5<br>
<span class="">rc: Fix inconsistency in --const-vbv (issue #381)<br>
<br>
VBV intializations during ABR-reset is removed.<br>
Inconsistent rowTotalBits in rc-update with --const-vbv is fixed.<br>
<br>
</span>diff -r 78c0f2c8ba08 -r 2e684b80d90f source/encoder/frameencoder.<wbr>cpp<br>
--- a/source/encoder/frameencoder.<wbr>cpp   Fri Dec 22 12:48:37 2017 +0530<br>
<span class="">+++ b/source/encoder/frameencoder.<wbr>cpp   Thu Dec 07 10:59:12 2017 +0530<br>
</span>@@ -1746,8 +1746,8 @@<br>
<span class="">         if (rowInSlice == rowCount)<br>
         {<br>
             m_rowSliceTotalBits[sliceId] = 0;<br>
-            if (bIsVbv)<br>
-            {<br>
+            if (bIsVbv && !(m_param->rc.bEnableConstVbv && m_param->bEnableWavefront))<br>
+            {<br>
                 for (uint32_t i = m_sliceBaseRow[sliceId]; i < rowCount + m_sliceBaseRow[sliceId]; i++)<br>
                     m_rowSliceTotalBits[sliceId] += curEncData.m_rowStat[i].<wbr>encodedBits;<br>
             }<br>
</span>diff -r 78c0f2c8ba08 -r 2e684b80d90f source/encoder/ratecontrol.cpp<br>
--- a/source/encoder/ratecontrol.<wbr>cpp    Fri Dec 22 12:48:37 2017 +0530<br>
<span class="">+++ b/source/encoder/ratecontrol.<wbr>cpp    Thu Dec 07 10:59:12 2017 +0530<br>
@@ -219,6 +219,7 @@<br>
     m_param->rc.vbvMaxBitrate = x265_clip3(0, 2000000, m_param->rc.vbvMaxBitrate);<br>
     m_param->rc.vbvBufferInit = x265_clip3(0.0, 2000000.0, m_param->rc.vbvBufferInit);<br>
     m_param->vbvBufferEnd = x265_clip3(0.0, 2000000.0, m_param->vbvBufferEnd);<br>
</span>+    m_initVbv = false;<br>
<span class="">     m_singleFrameVbv = 0;<br>
     m_rateTolerance = 1.0;<br>
<br>
@@ -319,7 +320,7 @@<br>
<br>
 bool RateControl::init(const SPS& sps)<br>
 {<br>
-    if (m_isVbv)<br>
</span>+    if (m_isVbv && !m_initVbv)<br>
<span class="">     {<br>
         /* We don't support changing the ABR bitrate right now,<br>
          * so if the stream starts as CBR, keep it CBR. */<br>
@@ -353,6 +354,7 @@<br>
         m_bufferFillFinal = m_bufferSize * m_param->rc.vbvBufferInit;<br>
         m_bufferFillActual = m_bufferFillFinal;<br>
         m_bufferExcess = 0;<br>
</span>+        m_initVbv = true;<br>
     }<br>
<br>
     m_totalBits = 0;<br>
diff -r 78c0f2c8ba08 -r 2e684b80d90f source/encoder/ratecontrol.h<br>
--- a/source/encoder/ratecontrol.h      Fri Dec 22 12:48:37 2017 +0530<br>
<div class="HOEnZb"><div class="h5">+++ b/source/encoder/ratecontrol.h      Thu Dec 07 10:59:12 2017 +0530<br>
@@ -132,6 +132,7 @@<br>
     bool   m_isGrainEnabled;<br>
     bool   m_isAbrReset;<br>
     bool   m_isNextGop;<br>
+    bool   m_initVbv;<br>
     int    m_lastAbrResetPoc;<br>
<br>
     double m_rateTolerance;<br>
</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 class="gmail_extra">Pushed.</div></div>