<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Oct 17, 2013 at 2:05 AM, Gopu Govindaswamy <span dir="ltr"><<a href="mailto:gopu@multicorewareinc.com" target="_blank">gopu@multicorewareinc.com</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"># HG changeset patch<br>
# User Gopu Govindaswamy <<a href="mailto:gopu@multicorewareinc.com">gopu@multicorewareinc.com</a>><br>
# Date 1381993509 -19800<br>
# Node ID 4cba7c453533731ef6bca965b6cebe7e6caff8bf<br>
# Parent 1d6b3626f1b3d4b8f8f181e66eaaa649f90bac02<br>
common : Added new function x265_param2string<br>
<br>
diff -r 1d6b3626f1b3 -r 4cba7c453533 source/common/common.cpp<br>
--- a/source/common/common.cpp Wed Oct 16 20:38:44 2013 -0500<br>
+++ b/source/common/common.cpp Thu Oct 17 12:35:09 2013 +0530<br>
@@ -543,3 +543,52 @@<br>
berror |= valuewasnull;<br>
return berror ? X265_PARAM_BAD_VALUE : 0;<br>
}<br>
+<br>
+char *x265_param2string( x265_param_t *p)<br>
+{<br>
+ char *buf, *s;<br>
+ buf = s = (char *)X265_MALLOC(char, 2000);<br>
+ if (!buf)<br>
+ return NULL;<br>
+<br>
+ s += sprintf(s, " %s", p->bEnableWavefront ? "wpp" : "no-wpp");<br></blockquote><div><br></div><div>it would be nice to have a macro that handled these bool parameters, something that relied on C string constant concatenation like:</div>
<div><br></div><div>#define BOOL(param, cliopt) \</div><div> s += sprintf(s, " %s", (param) ? cliopt : "no-"cliopt);</div><div><br></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">
+ s += sprintf(s, " fps=%d", p->frameRate);<br>
+ s += sprintf(s, " threads=%d", p->poolNumThreads);<br>
+ s += sprintf(s, " frame-threads=%d", p->frameNumThreads);<br>
+ s += sprintf(s, " ctu=%d", p->maxCUSize);<br>
+ s += sprintf(s, " tu-intra-depth=%d", p->tuQTMaxIntraDepth);<br>
+ s += sprintf(s, " tu-inter-depth=%d",p->tuQTMaxInterDepth);<br>
+ s += sprintf(s, " me=%d", p->searchMethod);<br>
+ s += sprintf(s, " subme=%d", p->subpelRefine);<br>
+ s += sprintf(s, " merange=%d", p->searchRange);<br>
+ s += sprintf(s, " %s", p->bEnableRectInter ? "rect" : "no-rect");<br>
+ s += sprintf(s, " %s", p->bEnableAMP ? "amp" : "no-amp");<br>
+ s += sprintf(s, " max-merge=%d", p->maxNumMergeCand);<br>
+ s += sprintf(s, " %s", p->bEnableEarlySkip ? "early-skip" : "no-early-skip");<br>
+ s += sprintf(s, " %s", p->bEnableCbfFastMode ? "fast-cbf" : "no-fast-cbf");<br>
+ s += sprintf(s, " rdpenalty=%d", p->rdPenalty);<br>
+ s += sprintf(s, " %s", p->bEnableTransformSkip ? "tskip" : "no-tskip");<br>
+ s += sprintf(s, " %s", p->bEnableTSkipFast ? "tskip-fast" : "no-tskip-fast");<br>
+ s += sprintf(s, " bEnableStrongIntraSmoothing = %s", p->bEnableStrongIntraSmoothing ? "strong-intra-smoothing" : "no-strong-intra-smoothing");<br></blockquote><div><br></div><div>this one is wrong</div>
<div> </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">
+ s += sprintf(s, " %s", p->bEnableConstrainedIntra ? "constrained-intra" : "no-constrained-intra");<br>
+ s += sprintf(s, " refresh=%d", p->decodingRefreshType);<br>
+ s += sprintf(s, " keyint=%d", p->keyframeMax);<br>
+ s += sprintf(s, " rc-lookahead=%d", p->lookaheadDepth);<br>
+ s += sprintf(s, " bframes=%d", p->bframes);<br>
+ s += sprintf(s, " bframe-bias=%d", p->bFrameBias);<br>
+ s += sprintf(s, " b-adapt=%d", p->bFrameAdaptive);<br>
+ s += sprintf(s, " ref=%d", p->maxNumReferences);<br>
+ s += sprintf(s, " %s", p->bEnableWeightedPred ? "weightp" : "no-weightp");<br>
+ s += sprintf(s, " bitrate=%d", p->rc.bitrate);<br>
+ s += sprintf(s, " qp=%d", p->rc.qp);<br>
+ s += sprintf(s, " cbqpoffs=%d", p->cbQpOffset);<br>
+ s += sprintf(s, " crqpoffs=%d", p->crQpOffset);<br>
+ s += sprintf(s, " rd=%d", p->bRDLevel);<br></blockquote><div><br></div><div>bRdLevel? ouch. that parameter shouldn't have a b prefix. Can you fix that in a separate patch?</div><div> </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">
+ s += sprintf(s, " %s", p->bEnableSignHiding ? "signhide" : "no-signhide");<br>
+ s += sprintf(s, " %s", p->bEnableLoopFilter ? "lft" : "no-lft");<br>
+ s += sprintf(s, " %s", p->bEnableSAO ? "sao" : "no-sao");<br>
+ s += sprintf(s, " sao-lcu-bounds=%d", p->saoLcuBoundary);<br>
+ s += sprintf(s, " sao-lcu-opt=%d", p->saoLcuBasedOptimization);<br>
+<br>
+ return buf;<br>
+}<br>
diff -r 1d6b3626f1b3 -r 4cba7c453533 source/common/common.h<br>
--- a/source/common/common.h Wed Oct 16 20:38:44 2013 -0500<br>
+++ b/source/common/common.h Thu Oct 17 12:35:09 2013 +0530<br>
@@ -114,5 +114,6 @@<br>
int x265_check_params(x265_param_t *param);<br>
void x265_print_params(x265_param_t *param);<br>
int x265_set_globals(x265_param_t *param);<br>
+char *x265_param2string( x265_param_t *p);<br>
<br>
#endif // ifndef X265_COMMON_H<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>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>Steve Borho
</div></div>