<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;">Hello,
<div><br /></div>
<div>Thank you for your answer!</div>
<div>You mention that “the strict-cbr option today works only for CBR encodes that use the --bitrate option”.</div>
<div>However, when I use "--bitrate <somevalue> --strict-cbr”, I get the error "Strict-cbr cannot be applied without specifying target bitrate or vbv bufsize”.</div>
<div><br /></div>
<div>From your comment, I understand that this is not the intended behaviour? Or should “bitrate” <i>and</i> “vbv-bufsize” be specified for “strict-cbr” to work?</div>
<div><br /></div>
<div>Many thanks,</div>
<div>Jean.</div>
<div><br /></div>
<div><b>Steps to reproduce:</b></div>
<div>
<ul>
<li><i>git clone https://github.com/videolan/x265.git</i></li>
<li>build the CLI target for your platform</li>
<li><i>ffmpeg -i <input.avi> -f yuv4mpegpipe -pix_fmt yuv420p - | x265 --y4m --bitrate 1000 --strict-cbr -o encoded.265 -</i><br /></li>
</ul>
</div>
</div>
<div name="messageReplySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;"><br />
On 1 Feb 2017, 12:16 +0100, Pradeep Ramachandran <pradeep@multicorewareinc.com>, wrote:<br />
<blockquote type="cite" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #1abc9c;">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Tue, Jan 31, 2017 at 5:10 PM, Jean CRUYPENYNCK <span dir="ltr"><<a href="mailto:filaton@me.com" target="_blank">filaton@me.com</a>></span> wrote:<br />
<blockquote class="gmail_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #e67e22;"># HG changeset patch<br />
# User Jean Cruypenynck <<a href="mailto:filaton@me.com">filaton@me.com</a>><br />
# Date 1485860877 -3600<br />
#      Tue Jan 31 12:07:57 2017 +0100<br />
# Node ID 93d09ad23a514172f0d143b0a194c6<wbr />07963db57b<br />
# Parent  fa52b516f5ff122c4486ed840c5bf1<wbr />de3c06e974<br />
[CLI] Fix wrong condition for "--strict-cbr" option<br />
<br />
Checking for "--strict-cbr" should succeed if either "--bitrate" or "--vbv-bufsize" is specified.<br />
<br />
It means that an error should be thrown if:<br />
    param-rc->bStrictCbr && NOT (param->rc.bitrate > 0 || param->rc.vbvBufferSize > 0)<br />
evaluates to true.<br />
<br />
According to De Morgan's laws, it is equivalent to:<br />
    param-rc->bStrictCbr && (NOT param->rc.bitrate > 0 && NOT param->rc.vbvBufferSize > 0)<br />
which is in turn equivalent to:<br />
    param-rc->bStrictCbr && (param->rc.bitrate <= 0 && param->rc.vbvBufferSize <= 0)<br />
<br />
Currently, one must set both "--bitrate" AND "--vbv-bufsize" to use "--strict-cbr".<br /></blockquote>
<div><br /></div>
<div>The strict-cbr option today works only for CBR encodes that use the --bitrate option. If you want to enable CBR via CRF + VBV, this option doesn't work.</div>
<div>Maybe the check error message is confusing in its construction and therefore leads to misunderstandings.</div>
<div><br /></div>
<blockquote class="gmail_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #e67e22;"><br />
diff -r fa52b516f5ff -r 93d09ad23a51 source/common/param.cpp<br />
--- a/source/common/param.cpp   Mon Jan 30 10:35:00 2017 +0530<br />
+++ b/source/common/param.cpp   Tue Jan 31 12:07:57 2017 +0100<br />
@@ -1269,7 +1269,7 @@<br />
         CHECK(0 > param->noiseReductionInter || param->noiseReductionInter > 2000, "Valid noise reduction range 0 - 2000");<br />
     CHECK(param->rc.<wbr />rateControlMode == X265_RC_CQP && param->rc.bStatRead,<br />
           "Constant QP is incompatible with 2pass");<br />
-    CHECK(param->rc.bStrictCbr && (param->rc.bitrate <= 0 || param->rc.vbvBufferSize <=0),<br />
+    CHECK(param->rc.bStrictCbr && (param->rc.bitrate <= 0 && param->rc.vbvBufferSize <=0),<br />
           "Strict-cbr cannot be applied without specifying target bitrate or vbv bufsize");<br />
     CHECK(param->analysisMode && (param->analysisMode < X265_ANALYSIS_OFF || param->analysisMode > X265_ANALYSIS_LOAD),<br />
         "Invalid analysis mode. Analysis mode 0: OFF 1: SAVE : 2 LOAD");<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 /></blockquote>
</div>
<br /></div>
</div>
_______________________________________________<br />
x265-devel mailing list<br />
x265-devel@videolan.org<br />
https://mailman.videolan.org/listinfo/x265-devel<br /></blockquote>
</div>
</body>
</html>