<p>Thanks, this is the right patch. Steve, can you pls push this logic? My internet connection gave up on me right after I pushed the wrong one - talk about luck<br>
On Oct 2, 2014 12:47 AM, <<a href="mailto:aarthi@multicorewareinc.com">aarthi@multicorewareinc.com</a>> wrote:<br>
><br>
> # HG changeset patch<br>
> # User Aarthi Thirumalai<br>
> # Date 1412190970 -19800<br>
> #      Thu Oct 02 00:46:10 2014 +0530<br>
> # Node ID 715f6cd617955e1e6100653e224e4a294d369f69<br>
> # Parent  07b9168a967236e84abe2decf3f26bab463f9d89<br>
> rc: correct the threshold for resetABR function<br>
><br>
> diff -r 07b9168a9672 -r 715f6cd61795 source/encoder/ratecontrol.cpp<br>
> --- a/source/encoder/ratecontrol.cpp    Thu Oct 02 00:14:13 2014 +0530<br>
> +++ b/source/encoder/ratecontrol.cpp    Thu Oct 02 00:46:10 2014 +0530<br>
> @@ -1620,9 +1620,9 @@<br>
>          if (!m_isAbrReset && rce->movingAvgSum > 0)<br>
>          {<br>
>              // Reset ABR if prev frames are blank to prevent further sudden overflows/ high bit rate spikes.<br>
> -            double underflow = 1.0 + (m_totalBits - m_wantedBitsWindow) / abrBuffer;<br>
> -            const float epsilon = 0.1f;<br>
> -            if (fabs (underflow - 0.9f) < epsilon && !isFrameDone)<br>
> +            double underflow = (m_totalBits - m_wantedBitsWindow) / abrBuffer;<br>
> +            const double epsilon = 0.0001f;<br>
> +            if (underflow < epsilon && !isFrameDone)<br>
>              {<br>
>                  init(m_curSlice->m_sps);<br>
>                  m_shortTermCplxSum = rce->lastSatd / (CLIP_DURATION(m_frameDuration) / BASE_FRAME_DURATION);<br>
> _______________________________________________<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">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</p>