<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Apr 19, 2014 at 12:21 AM, Steve Borho <span dir="ltr"><<a href="mailto:steve@borho.org" target="_blank">steve@borho.org</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>On Fri, Apr 18, 2014 at 7:25 AM,  <<a href="mailto:santhoshini@multicorewareinc.com" target="_blank">santhoshini@multicorewareinc.com</a>> wrote:<br>


> # HG changeset patch<br>
> # User Santhoshini Sekar <<a href="mailto:santhoshini@multicorewareinc.com" target="_blank">santhoshini@multicorewareinc.com</a>><br>
> # Date 1397822534 -19800<br>
> #      Fri Apr 18 17:32:14 2014 +0530<br>
> # Node ID 03aa222ff8eb5ffbe65bd5bf522cad6561210024<br>
> # Parent  78c1f43f12f57ba60e63cb79ce567065c700483e<br>
> vbv:Avoid infinite loop when row re-encode is triggered in vbv- clip qp inside rowDiagonalVbvRateControl()<br>
<br>
</div>space after the colon<br>
no need to uppercase the summary sentence<br>
keep the summary line 80 chars or under<br>
<div><div><br>
><br>
> diff -r 78c1f43f12f5 -r 03aa222ff8eb source/encoder/frameencoder.cpp<br>
> --- a/source/encoder/frameencoder.cpp   Thu Apr 17 16:32:16 2014 -0500<br>
> +++ b/source/encoder/frameencoder.cpp   Fri Apr 18 17:32:14 2014 +0530<br>
> @@ -1141,7 +1141,6 @@<br>
>              {<br>
>                  double qpBase = cu->m_baseQp;<br>
>                  int reEncode = m_top->m_rateControl->rowDiagonalVbvRateControl(m_pic, row, &m_rce, qpBase);<br></div></div></blockquote><div> </div><div>we tried adding x265_emms() before this clip but, it doesn't work out in release mode. In debug mode we didn't face this issue of getting  qpbase value clipped to 0 even before adding x265_emms()<br>
</div><div>Also tried with Min's suggestion of using <span style="font-size:13.333333969116211px;font-family:arial,sans-serif">__asm emms. But x64 does not support this.</span> With assembly code disabled , Clip3() doesn't return 0 and it works fine in release mode as well.</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div>
> -                qpBase = Clip3((double)MIN_QP, (double)MAX_MAX_QP, qpBase);<br>
>                  m_pic->m_rowDiagQp[row] = qpBase;<br>
>                  m_pic->m_rowDiagQScale[row] =  x265_qp2qScale(qpBase);<br>
><br>
> diff -r 78c1f43f12f5 -r 03aa222ff8eb source/encoder/ratecontrol.cpp<br>
> --- a/source/encoder/ratecontrol.cpp    Thu Apr 17 16:32:16 2014 -0500<br>
> +++ b/source/encoder/ratecontrol.cpp    Fri Apr 18 17:32:14 2014 +0530<br>
> @@ -861,6 +861,7 @@<br>
>      double bufferLeftPlanned = rce->bufferFill - rce->frameSizePlanned;<br>
><br>
>      double maxFrameError = X265_MAX(0.05, 1.0 / pic->getFrameHeightInCU());<br>
> +    int retReencodeFlag = 0;<br>
><br>
>      if (row < pic->getPicSym()->getFrameHeightInCU() - 1)<br>
>      {<br>
> @@ -922,7 +923,7 @@<br>
>          {<br>
>              /* Bump QP to halfway in between... close enough. */<br>
>              qpVbv = Clip3(prevRowQp + 1.0f, qpMax, (prevRowQp + qpVbv) * 0.5);<br>
> -            return -1;<br>
> +            retReencodeFlag = -1;<br>
>          }<br>
>      }<br>
>      else<br>
> @@ -936,10 +937,11 @@<br>
>               qpVbv < qpMax && canReencodeRow))<br>
>          {<br>
>              qpVbv = qpMax;<br>
> -            return -1;<br>
> +            retReencodeFlag = -1;<br>
>          }<br>
>      }<br>
> -    return 0;<br></div></div></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div>
> +    qpVbv = Clip3((double)MIN_QP, (double)MAX_MAX_QP, qpVbv);<br>
> +    return retReencodeFlag;<br>
<br>
</div></div>this all looks a tad magical. How is it actually fixing this problem?<br></blockquote><div><br></div><div>On debugging we found that the register  xxm6 is getting corrupted. We checked this with Min.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

>  }<br>
<span><font color="#888888"><br>
<br>
--<br>
Steve Borho<br>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org" target="_blank">x265-devel@videolan.org</a><br>
<a href="https://mailman.videolan.org/listinfo/x265-devel" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</font></span></blockquote></div><br></div></div>