<div dir="ltr"><div># HG changeset patch</div><div># User Aarthi Thirumalai</div><div># Date 1419332550 -19800</div><div># Tue Dec 23 16:32:30 2014 +0530</div><div># Node ID d55fed4ebcd22823f8ffb878fa898b5d288cbb6a</div><div># Parent 1924c460d1304d9ce775f35864712dd98f758f9f</div><div>cli: remove tune cbr and introduce strict-cbr as a param option instead</div><div><br></div><div>strict-cbr can be enabled in CBR mode, enforces stricter checks for bitrate adhearance and</div><div>lesser tolerance for bitrate deviance from the target.</div><div><br></div><div>diff -r 1924c460d130 -r d55fed4ebcd2 doc/reST/cli.rst</div><div>--- a/doc/reST/cli.rst<span class="" style="white-space:pre"> </span>Fri Jan 09 11:35:26 2015 +0530</div><div>+++ b/doc/reST/cli.rst<span class="" style="white-space:pre"> </span>Tue Dec 23 16:32:30 2014 +0530</div><div>@@ -209,7 +209,7 @@</div><div> <span class="" style="white-space:pre"> </span>be applied after :option:`--preset` but before all other parameters. Default none.</div><div> <span class="" style="white-space:pre"> </span>See :ref:`tunings <tunings>` for more detail.</div><div> </div><div>-<span class="" style="white-space:pre"> </span>**Values:** psnr, ssim, grain, zero-latency, fast-decode, cbr.</div><div>+<span class="" style="white-space:pre"> </span>**Values:** psnr, ssim, grain, zero-latency, fast-decode.</div><div> </div><div> Input/Output File Options</div><div> =========================</div><div>@@ -992,6 +992,12 @@</div><div> <span class="" style="white-space:pre"> </span>* :option:`--subme` = MIN(2, :option:`--subme`)</div><div> <span class="" style="white-space:pre"> </span>* :option:`--rd` = MIN(2, :option:`--rd`)</div><div> </div><div>+.. option:: --strict-cbr, --no-strict-cbr</div><div>+<span class="" style="white-space:pre"> </span></div><div>+<span class="" style="white-space:pre"> </span>Enables stricter conditions to control bitrate</div><div>+<span class="" style="white-space:pre"> </span>deviance from the target in CBR mode. Bitrate adhearance is prioritised</div><div>+<span class="" style="white-space:pre"> </span>over quality. Rate tolerance is set to 50%. Default disabled</div><div>+<span class="" style="white-space:pre"> </span></div><div> .. option:: --cbqpoffs <integer></div><div> </div><div> <span class="" style="white-space:pre"> </span>Offset of Cb chroma QP from the luma QP selected by rate control.</div><div>diff -r 1924c460d130 -r d55fed4ebcd2 doc/reST/presets.rst</div><div>--- a/doc/reST/presets.rst<span class="" style="white-space:pre"> </span>Fri Jan 09 11:35:26 2015 +0530</div><div>+++ b/doc/reST/presets.rst<span class="" style="white-space:pre"> </span>Tue Dec 23 16:32:30 2014 +0530</div><div>@@ -105,8 +105,7 @@</div><div> +--------------+-----------------------------------------------------+</div><div> | zerolatency | no lookahead, no B frames, no cutree |</div><div> +--------------+-----------------------------------------------------+</div><div>-| cbr | --pbratio 1.0 --ratetol 0.5 |</div><div>-+--------------+-----------------------------------------------------+</div><div>+</div><div> </div><div> </div><div> Film Grain Retention</div><div>diff -r 1924c460d130 -r d55fed4ebcd2 source/CMakeLists.txt</div><div>--- a/source/CMakeLists.txt<span class="" style="white-space:pre"> </span>Fri Jan 09 11:35:26 2015 +0530</div><div>+++ b/source/CMakeLists.txt<span class="" style="white-space:pre"> </span>Tue Dec 23 16:32:30 2014 +0530</div><div>@@ -21,7 +21,7 @@</div><div> include(CheckCXXCompilerFlag)</div><div> </div><div> # X265_BUILD must be incremented each time the public API is changed</div><div>-set(X265_BUILD 40)</div><div>+set(X265_BUILD 41)</div><div> configure_file("${PROJECT_SOURCE_DIR}/<a href="http://x265.def.in">x265.def.in</a>"</div><div> "${PROJECT_BINARY_DIR}/x265.def")</div><div> configure_file("${PROJECT_SOURCE_DIR}/<a href="http://x265_config.h.in">x265_config.h.in</a>"</div><div>diff -r 1924c460d130 -r d55fed4ebcd2 source/common/param.cpp</div><div>--- a/source/common/param.cpp<span class="" style="white-space:pre"> </span>Fri Jan 09 11:35:26 2015 +0530</div><div>+++ b/source/common/param.cpp<span class="" style="white-space:pre"> </span>Tue Dec 23 16:32:30 2014 +0530</div><div>@@ -206,6 +206,7 @@</div><div> param->rc.complexityBlur = 20;</div><div> param->rc.qblur = 0.5;</div><div> param->rc.bEnableSlowFirstPass = 0;</div><div>+ param->rc.bStrictCbr = 0;</div><div> </div><div> /* Video Usability Information (VUI) */</div><div> param->vui.aspectRatioIdc = 0;</div><div>@@ -421,11 +422,6 @@</div><div> param->rc.aqStrength = 0.3;</div><div> param->rc.qCompress = 0.8;</div><div> }</div><div>- else if (!strcmp(tune, "cbr"))</div><div>- {</div><div>- param->rc.pbFactor = 1.0;</div><div>- param->rc.rateTolerance = 0.5;</div><div>- }</div><div> else</div><div> return -1;</div><div> }</div><div>@@ -699,6 +695,12 @@</div><div> OPT("me") p->searchMethod = parseName(value, x265_motion_est_names, bError);</div><div> OPT("cutree") p->rc.cuTree = atobool(value);</div><div> OPT("slow-firstpass") p->rc.bEnableSlowFirstPass = atobool(value);</div><div>+ OPT("strict-cbr")</div><div>+ {</div><div>+ p->rc.bStrictCbr = atobool(value);</div><div>+ p->rc.pbFactor = 1.0;</div><div>+ p->rc.rateTolerance = 0.5;</div><div>+ }</div><div> OPT("analysis-mode") p->analysisMode = parseName(value, x265_analysis_names, bError);</div><div> OPT("sar")</div><div> {</div><div>@@ -1087,6 +1089,8 @@</div><div> "Constant rate-factor is incompatible with 2pass");</div><div> CHECK(param->rc.rateControlMode == X265_RC_CQP && param->rc.bStatRead,</div><div> "Constant QP is incompatible with 2pass");</div><div>+ CHECK(param->rc.bStrictCbr && (param->rc.bitrate <= 0 || param->rc.vbvBufferSize <=0),</div><div>+ "Strict-cbr cannot be applied without specifying target bitrate or vbv bufsize");</div><div> return check_failed;</div><div> }</div><div> </div><div>diff -r 1924c460d130 -r d55fed4ebcd2 source/encoder/ratecontrol.cpp</div><div>--- a/source/encoder/ratecontrol.cpp<span class="" style="white-space:pre"> </span>Fri Jan 09 11:35:26 2015 +0530</div><div>+++ b/source/encoder/ratecontrol.cpp<span class="" style="white-space:pre"> </span>Tue Dec 23 16:32:30 2014 +0530</div><div>@@ -324,10 +324,6 @@</div><div> m_numEntries = 0;</div><div> m_amortizeFraction = 0.85;</div><div> m_amortizeFrames = 75;</div><div>- if (m_param->totalFrames <= 2 * m_fps)</div><div>- {</div><div>- m_amortizeFraction = m_amortizeFrames = 0;</div><div>- }</div><div> if (m_param->rc.rateControlMode == X265_RC_CRF)</div><div> {</div><div> m_param->rc.qp = (int)m_param->rc.rfConstant;</div><div>@@ -396,6 +392,11 @@</div><div> x265_log(m_param, X265_LOG_WARNING, "max bitrate less than average bitrate, assuming CBR\n");</div><div> m_param->rc.bitrate = m_param->rc.vbvMaxBitrate;</div><div> }</div><div>+ if (m_param->rc.bStrictCbr && m_param->rc.vbvMaxBitrate != m_param->rc.bitrate)</div><div>+ {</div><div>+ x265_log(m_param, X265_LOG_WARNING, "strict CBR set without CBR mode, ignored\n");</div><div>+ m_param->rc.bStrictCbr = 0;</div><div>+ }</div><div> }</div><div> else if (m_param->rc.vbvMaxBitrate)</div><div> {</div><div>@@ -408,7 +409,11 @@</div><div> x265_log(m_param, X265_LOG_WARNING, "NAL HRD parameters require VBV parameters, ignored\n");</div><div> m_param->bEmitHRDSEI = 0;</div><div> }</div><div>-</div><div>+ if (m_param->totalFrames <= 2 * m_fps && m_param->rc.bStrictCbr)</div><div>+ {</div><div>+ m_amortizeFraction = 0;</div><div>+ m_amortizeFrames = 0;</div><div>+ }</div><div> m_isCbr = m_param->rc.rateControlMode == X265_RC_ABR && m_isVbv && !m_2pass && m_param->rc.vbvMaxBitrate <= m_param->rc.bitrate;</div><div> m_leadingBframes = m_param->bframes;</div><div> m_bframeBits = 0;</div><div>diff -r 1924c460d130 -r d55fed4ebcd2 source/x265.cpp</div><div>--- a/source/x265.cpp<span class="" style="white-space:pre"> </span>Fri Jan 09 11:35:26 2015 +0530</div><div>+++ b/source/x265.cpp<span class="" style="white-space:pre"> </span>Tue Dec 23 16:32:30 2014 +0530</div><div>@@ -217,6 +217,7 @@</div><div> { "no-slow-firstpass", no_argument, NULL, 0 },</div><div> { "analysis-mode", required_argument, NULL, 0 },</div><div> { "analysis-file", required_argument, NULL, 0 },</div><div>+ { "strict-cbr", no_argument, NULL, 0 },</div><div> { 0, 0, 0, 0 }</div><div> };</div><div> </div><div>@@ -389,7 +390,7 @@</div><div> H0("-p/--preset <string> Trade off performance for compression efficiency. Default medium\n");</div><div> H0(" ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, or placebo\n");</div><div> H0("-t/--tune <string> Tune the settings for a particular type of source or situation:\n");</div><div>- H0(" psnr, ssim, grain, zerolatency, fastdecode or cbr\n");</div><div>+ H0(" psnr, ssim, grain, zerolatency, fastdecode\n");</div><div> H0("\nQuad-Tree size and depth:\n");</div><div> H0("-s/--ctu <64|32|16> Maximum CU size (WxH). Default %d\n", param->maxCUSize);</div><div> H0(" --tu-intra-depth <integer> Max TU recursive depth for intra CUs. Default %d\n", param->tuQTMaxIntraDepth);</div><div>@@ -457,6 +458,7 @@</div><div> " - 3 : Nth pass, overwrites stats file\n");</div><div> H0(" --stats Filename for stats file in multipass pass rate control. Default x265_2pass.log\n");</div><div> H0(" --[no-]slow-firstpass Enable a slow first pass in a multipass rate control mode. Default %s\n", OPT(param->rc.bEnableSlowFirstPass));</div><div>+ H0(" --[no-]strict-cbr Enable stricter conditions and tolerance for bitrate deviations in CBR mode. Default %s\n", OPT(param->rc.bStrictCbr));</div><div> H0(" --analysis-mode <string|int> save - Dump analysis info into file, load - Load analysis buffers from the file. Default %d\n", param->analysisMode);</div><div> H0(" --analysis-file <filename> Specify file name used for either dumping or reading analysis data.\n");</div><div> H0(" --aq-mode <integer> Mode for Adaptive Quantization - 0:none 1:uniform AQ 2:auto variance. Default %d\n", param->rc.aqMode);</div><div>diff -r 1924c460d130 -r d55fed4ebcd2 source/x265.h</div><div>--- a/source/x265.h<span class="" style="white-space:pre"> </span>Fri Jan 09 11:35:26 2015 +0530</div><div>+++ b/source/x265.h<span class="" style="white-space:pre"> </span>Tue Dec 23 16:32:30 2014 +0530</div><div>@@ -875,6 +875,10 @@</div><div> * ignored. The lambda tables are process-global, so these new lambda</div><div> * values will affect all encoders in the same process */</div><div> const char* lambdaFileName;</div><div>+</div><div>+ /* Enable stricter conditions to check bitrate deviations in CBR mode. May compromise </div><div>+ quality to maintain bitrate adhearance */</div><div>+ int bStrictCbr;</div><div> } rc;</div><div> </div><div> /*== Video Usability Information ==*/</div><div>@@ -1032,7 +1036,7 @@</div><div> * 100 times faster than placebo!</div><div> *</div><div> * Currently available tunings are: */</div><div>-static const char * const x265_tune_names[] = { "psnr", "ssim", "grain", "zerolatency", "fastdecode", "cbr", 0 };</div><div>+static const char * const x265_tune_names[] = { "psnr", "ssim", "grain", "zerolatency", "fastdecode", 0 };</div><div> </div><div> /* returns 0 on success, negative on failure (e.g. invalid preset/tune name). */</div><div> int x265_param_default_preset(x265_param *, const char *preset, const char *tune);</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jan 8, 2015 at 8:00 PM, 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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 01/07, <a href="mailto:aarthi@multicorewareinc.com">aarthi@multicorewareinc.com</a> wrote:<br>
> # HG changeset patch<br>
> # User Aarthi Thirumalai<br>
> # Date 1419332550 -19800<br>
> # Tue Dec 23 16:32:30 2014 +0530<br>
> # Node ID 9b30c4b16dfc4c673b57ee4c567fa8956a41e2fc<br>
> # Parent 32ed3f21039a5b93a54da8961442825e4db69d88<br>
> cli: remove tune cbr and introduce strict-cbr as a param option instead<br>
><br>
> strict-cbr can be enabled in CBR mode, enforces stricter checks for bitrate adhearance and<br>
> lesser tolerance for bitrate deviance from the target.<br>
><br>
> diff -r 32ed3f21039a -r 9b30c4b16dfc doc/reST/cli.rst<br>
> --- a/doc/reST/cli.rst Mon Dec 29 13:49:02 2014 +0530<br>
> +++ b/doc/reST/cli.rst Tue Dec 23 16:32:30 2014 +0530<br>
> @@ -209,7 +209,7 @@<br>
> be applied after :option:`--preset` but before all other parameters. Default none.<br>
> See :ref:`tunings <tunings>` for more detail.<br>
><br>
> - **Values:** psnr, ssim, grain, zero-latency, fast-decode, cbr.<br>
> + **Values:** psnr, ssim, grain, zero-latency, fast-decode.<br>
<br>
</span>preset.rst also needs updating, as well as cli help for --tune. this can<br>
be a follow-up patch<br>
<div><div class="h5"><br>
> Input/Output File Options<br>
> =========================<br>
> @@ -992,6 +992,12 @@<br>
> * :option:`--subme` = MIN(2, :option:`--subme`)<br>
> * :option:`--rd` = MIN(2, :option:`--rd`)<br>
><br>
> +.. option:: --strict-cbr, --no-strict-cbr<br>
> +<br>
> + Enables stricter conditions to control bitrate<br>
> + deviance from the target in CBR mode. Bitrate adhearance is prioritised<br>
> + over quality. Rate tolerance is set to 50%. Default disabled<br>
> +<br>
> .. option:: --cbqpoffs <integer><br>
><br>
> Offset of Cb chroma QP from the luma QP selected by rate control.<br>
> diff -r 32ed3f21039a -r 9b30c4b16dfc source/CMakeLists.txt<br>
> --- a/source/CMakeLists.txt Mon Dec 29 13:49:02 2014 +0530<br>
> +++ b/source/CMakeLists.txt Tue Dec 23 16:32:30 2014 +0530<br>
> @@ -21,7 +21,7 @@<br>
> include(CheckCXXCompilerFlag)<br>
><br>
> # X265_BUILD must be incremented each time the public API is changed<br>
> -set(X265_BUILD 40)<br>
> +set(X265_BUILD 41)<br>
> configure_file("${PROJECT_SOURCE_DIR}/<a href="http://x265.def.in" target="_blank">x265.def.in</a>"<br>
> "${PROJECT_BINARY_DIR}/x265.def")<br>
> configure_file("${PROJECT_SOURCE_DIR}/<a href="http://x265_config.h.in" target="_blank">x265_config.h.in</a>"<br>
> diff -r 32ed3f21039a -r 9b30c4b16dfc source/common/param.cpp<br>
> --- a/source/common/param.cpp Mon Dec 29 13:49:02 2014 +0530<br>
> +++ b/source/common/param.cpp Tue Dec 23 16:32:30 2014 +0530<br>
> @@ -206,6 +206,7 @@<br>
> param->rc.complexityBlur = 20;<br>
> param->rc.qblur = 0.5;<br>
> param->rc.bEnableSlowFirstPass = 0;<br>
> + param->rc.bStrictCbr = 0;<br>
><br>
> /* Video Usability Information (VUI) */<br>
> param->vui.aspectRatioIdc = 0;<br>
> @@ -421,11 +422,6 @@<br>
> param->rc.aqStrength = 0.3;<br>
> param->rc.qCompress = 0.8;<br>
> }<br>
> - else if (!strcmp(tune, "cbr"))<br>
> - {<br>
> - param->rc.pbFactor = 1.0;<br>
> - param->rc.rateTolerance = 0.5;<br>
> - }<br>
> else<br>
> return -1;<br>
> }<br>
> @@ -699,6 +695,12 @@<br>
> OPT("me") p->searchMethod = parseName(value, x265_motion_est_names, bError);<br>
> OPT("cutree") p->rc.cuTree = atobool(value);<br>
> OPT("slow-firstpass") p->rc.bEnableSlowFirstPass = atobool(value);<br>
> + OPT("strict-cbr")<br>
> + {<br>
> + p->rc.bStrictCbr = atobool(value);<br>
> + p->rc.pbFactor = 1.0;<br>
> + p->rc.rateTolerance = 0.5;<br>
> + }<br>
> OPT("analysis-mode") p->analysisMode = parseName(value, x265_analysis_names, bError);<br>
> OPT("sar")<br>
> {<br>
> @@ -1087,6 +1089,8 @@<br>
> "Constant rate-factor is incompatible with 2pass");<br>
> CHECK(param->rc.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>
> + "Strict-cbr cannot be applied without specifying target bitrate or vbv bufsize");<br>
> return check_failed;<br>
> }<br>
><br>
> diff -r 32ed3f21039a -r 9b30c4b16dfc source/encoder/ratecontrol.cpp<br>
> --- a/source/encoder/ratecontrol.cpp Mon Dec 29 13:49:02 2014 +0530<br>
> +++ b/source/encoder/ratecontrol.cpp Tue Dec 23 16:32:30 2014 +0530<br>
> @@ -324,10 +324,6 @@<br>
> m_numEntries = 0;<br>
> m_amortizeFraction = 0.85;<br>
> m_amortizeFrames = 75;<br>
> - if (m_param->totalFrames <= 2 * m_fps)<br>
> - {<br>
> - m_amortizeFraction = m_amortizeFrames = 0;<br>
> - }<br>
> if (m_param->rc.rateControlMode == X265_RC_CRF)<br>
> {<br>
> m_param->rc.qp = (int)m_param->rc.rfConstant;<br>
> @@ -396,6 +392,11 @@<br>
> x265_log(m_param, X265_LOG_WARNING, "max bitrate less than average bitrate, assuming CBR\n");<br>
> m_param->rc.bitrate = m_param->rc.vbvMaxBitrate;<br>
> }<br>
> + if (m_param->rc.bStrictCbr && m_param->rc.vbvMaxBitrate != m_param->rc.bitrate)<br>
> + {<br>
> + x265_log(m_param, X265_LOG_WARNING, "strict CBR set without CBR mode, ignored\n");<br>
> + m_param->rc.bStrictCbr = 0;<br>
> + }<br>
> }<br>
> else if (m_param->rc.vbvMaxBitrate)<br>
> {<br>
> @@ -408,7 +409,11 @@<br>
> x265_log(m_param, X265_LOG_WARNING, "NAL HRD parameters require VBV parameters, ignored\n");<br>
> m_param->bEmitHRDSEI = 0;<br>
> }<br>
> -<br>
> + if (m_param->totalFrames <= 2 * m_fps && m_param->rc.bStrictCbr)<br>
> + {<br>
> + m_amortizeFraction = 0;<br>
> + m_amortizeFrames = 0;<br>
> + }<br>
> m_isCbr = m_param->rc.rateControlMode == X265_RC_ABR && m_isVbv && !m_2pass && m_param->rc.vbvMaxBitrate <= m_param->rc.bitrate;<br>
> m_leadingBframes = m_param->bframes;<br>
> m_bframeBits = 0;<br>
> diff -r 32ed3f21039a -r 9b30c4b16dfc source/x265.cpp<br>
> --- a/source/x265.cpp Mon Dec 29 13:49:02 2014 +0530<br>
> +++ b/source/x265.cpp Tue Dec 23 16:32:30 2014 +0530<br>
> @@ -217,6 +217,7 @@<br>
> { "no-slow-firstpass", no_argument, NULL, 0 },<br>
> { "analysis-mode", required_argument, NULL, 0 },<br>
> { "analysis-file", required_argument, NULL, 0 },<br>
> + { "strict-cbr", no_argument, NULL, 0 },<br>
> { 0, 0, 0, 0 }<br>
> };<br>
><br>
> @@ -457,6 +458,7 @@<br>
> " - 3 : Nth pass, overwrites stats file\n");<br>
> H0(" --stats Filename for stats file in multipass pass rate control. Default x265_2pass.log\n");<br>
> H0(" --[no-]slow-firstpass Enable a slow first pass in a multipass rate control mode. Default %s\n", OPT(param->rc.bEnableSlowFirstPass));<br>
> + H0(" --[no-]strict-cbr Enable stricter conditions and tolerance for bitrate deviations in CBR mode. Default %s\n", OPT(param->rc.bStrictCbr));<br>
> H0(" --analysis-mode <string|int> save - Dump analysis info into file, load - Load analysis buffers from the file. Default %d\n", param->analysisMode);<br>
> H0(" --analysis-file <filename> Specify file name used for either dumping or reading analysis data.\n");<br>
> H0(" --aq-mode <integer> Mode for Adaptive Quantization - 0:none 1:uniform AQ 2:auto variance. Default %d\n", param->rc.aqMode);<br>
> diff -r 32ed3f21039a -r 9b30c4b16dfc source/x265.h<br>
> --- a/source/x265.h Mon Dec 29 13:49:02 2014 +0530<br>
> +++ b/source/x265.h Tue Dec 23 16:32:30 2014 +0530<br>
> @@ -875,6 +875,10 @@<br>
> * ignored. The lambda tables are process-global, so these new lambda<br>
> * values will affect all encoders in the same process */<br>
> const char* lambdaFileName;<br>
> +<br>
> + /* Enable stricter conditions to check bitrate deviations in CBR mode. May compromise<br>
> + quality to maintain bitrate adhearance */<br>
> + int bStrictCbr;<br>
> } rc;<br>
><br>
> /*== Video Usability Information ==*/<br>
> @@ -1032,7 +1036,7 @@<br>
> * 100 times faster than placebo!<br>
> *<br>
> * Currently available tunings are: */<br>
> -static const char * const x265_tune_names[] = { "psnr", "ssim", "grain", "zerolatency", "fastdecode", "cbr", 0 };<br>
> +static const char * const x265_tune_names[] = { "psnr", "ssim", "grain", "zerolatency", "fastdecode", 0 };<br>
><br>
> /* returns 0 on success, negative on failure (e.g. invalid preset/tune name). */<br>
> int x265_param_default_preset(x265_param *, const char *preset, const char *tune);<br>
</div></div>> _______________________________________________<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" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Steve Borho<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" target="_blank">https://mailman.videolan.org/listinfo/x265-devel</a><br>
</font></span></blockquote></div><br></div>