<div dir="ltr">Sure. I will remove stats and send the patch.<div><br></div><div>Thanks,</div><div>Divya M.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Dec 11, 2016 at 2:22 AM, Tom Vaughan <span dir="ltr"><<a href="mailto:tom.vaughan@multicorewareinc.com" target="_blank">tom.vaughan@multicorewareinc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Divya,<br>
Writing the "--stats" log file name and path into the --info SEI NAL unit by<br>
default creates a potential privacy problem, as the path and filename might<br>
reveal information that the person or company encoding the video would not<br>
want others to see.  We should remove this from the default --info SEI.<br>
<br>
Thanks,<br>
Tom<br>
<div><div class="h5"><br>
-----Original Message-----<br>
From: x265-devel [mailto:<a href="mailto:x265-devel-bounces@videolan.org">x265-devel-bounces@<wbr>videolan.org</a>] On Behalf Of Divya<br>
Manivannan<br>
Sent: Wednesday, November 16, 2016 4:52 AM<br>
To: <a href="mailto:x265-devel@videolan.org">x265-devel@videolan.org</a><br>
Subject: [x265] [PATCH] Add all the param options to bitstream when info is<br>
enabled<br>
<br>
# HG changeset patch<br>
# User Divya Manivannan <<a href="mailto:divya@multicorewareinc.com">divya@multicorewareinc.com</a>> # Date<br>
1479298754 -19800<br>
#      Wed Nov 16 17:49:14 2016 +0530<br>
# Node ID 9814b4491361c1b046b68f85a0a239<wbr>cda89fbcf0<br>
# Parent  4c1652f3884fba9fab4c589dd057b1<wbr>2e6bf33d5b<br>
Add all the param options to bitstream when info is enabled<br>
<br>
diff -r 4c1652f3884f -r 9814b4491361 source/common/param.cpp<br>
--- a/source/common/param.cpp   Tue Nov 15 11:16:04 2016 +0530<br>
+++ b/source/common/param.cpp   Wed Nov 16 17:49:14 2016 +0530<br>
@@ -1439,75 +1439,96 @@<br>
 #define BOOL(param, cliopt) \<br>
     s += sprintf(s, " %s", (param) ? cliopt : "no-" cliopt);<br>
<br>
-    s += sprintf(s, "%dx%d", p->sourceWidth,p-><wbr>sourceHeight);<br>
+    s += sprintf(s, "cpuid=%d", p->cpuid);<br>
+    s += sprintf(s, " frame-threads=%d", p->frameNumThreads);<br>
+    if (p->numaPools)<br>
+        s += sprintf(s, " numa-pools=%s", p->numaPools);<br>
+    BOOL(p->bEnableWavefront, "wpp");<br>
+    BOOL(p-><wbr>bDistributeModeAnalysis, "pmode");<br>
+    BOOL(p-><wbr>bDistributeMotionEstimation, "pme");<br>
+    BOOL(p->bEnablePsnr, "psnr");<br>
+    BOOL(p->bEnableSsim, "ssim");<br>
+    s += sprintf(s, " log-level=%d", p->logLevel);<br>
+    s += sprintf(s, " bitdepth=%d", p->internalBitDepth);<br>
+    s += sprintf(s, " input-csp=%d", p->internalCsp);<br>
     s += sprintf(s, " fps=%u/%u", p->fpsNum, p->fpsDenom);<br>
-    s += sprintf(s, " bitdepth=%d", p->internalBitDepth);<br>
-    s += sprintf(s, " frame-threads=%d", p->frameNumThreads);<br>
+    s += sprintf(s, " input-res=%dx%d", p->sourceWidth, p->sourceHeight);<br>
+    s += sprintf(s, " interlace=%d", p->interlaceMode);<br>
+    s += sprintf(s, " total-frames=%d", p->totalFrames);<br>
     s += sprintf(s, " level-idc=%d", p->levelIdc);<br>
-    s += sprintf(s, " numa-pools=%s", p->numaPools);<br>
-    BOOL(p->bEnableWavefront, "wpp");<br>
+    s += sprintf(s, " high-tier=%d", p->bHighTier);<br>
+    s += sprintf(s, " uhd-bd=%d", p->uhdBluray);<br>
+    s += sprintf(s, " ref=%d", p->maxNumReferences);<br>
+    BOOL(p->bAllowNonConformance, "allow-non-conformance");<br>
+    BOOL(p->bRepeatHeaders, "repeat-headers");<br>
+    BOOL(p->bAnnexB, "annexb");<br>
+    BOOL(p-><wbr>bEnableAccessUnitDelimiters, "aud");<br>
+    BOOL(p->bEmitHRDSEI, "hrd");<br>
+    BOOL(p->bEmitInfoSEI, "info");<br>
+    s += sprintf(s, " hash=%d", p->decodedPictureHashSEI);<br>
+    BOOL(p-><wbr>bEnableTemporalSubLayers, "temporal-layers");<br>
+    BOOL(p->bOpenGOP, "open-gop");<br>
+    s += sprintf(s, " min-keyint=%d", p->keyframeMin);<br>
+    s += sprintf(s, " keyint=%d", p->keyframeMax);<br>
+    s += sprintf(s, " bframes=%d", p->bframes);<br>
+    s += sprintf(s, " b-adapt=%d", p->bFrameAdaptive);<br>
+    BOOL(p->bBPyramid, "b-pyramid");<br>
+    s += sprintf(s, " bframe-bias=%d", p->bFrameBias);<br>
+    s += sprintf(s, " rc-lookahead=%d", p->lookaheadDepth);<br>
+    s += sprintf(s, " lookahead-slices=%d", p->lookaheadSlices);<br>
+    s += sprintf(s, " scenecut=%d", p->scenecutThreshold);<br>
+    BOOL(p->bIntraRefresh, "intra-refresh");<br>
     s += sprintf(s, " ctu=%d", p->maxCUSize);<br>
     s += sprintf(s, " min-cu-size=%d", p->minCUSize);<br>
+    BOOL(p->bEnableRectInter, "rect");<br>
+    BOOL(p->bEnableAMP, "amp");<br>
     s += sprintf(s, " max-tu-size=%d", p->maxTUSize);<br>
+    s += sprintf(s, " tu-inter-depth=%d", p->tuQTMaxInterDepth);<br>
     s += sprintf(s, " tu-intra-depth=%d", p->tuQTMaxIntraDepth);<br>
-    s += sprintf(s, " tu-inter-depth=%d", p->tuQTMaxInterDepth);<br>
+    s += sprintf(s, " limit-tu=%d", p->limitTU);<br>
+    s += sprintf(s, " rdoq-level=%d", p->rdoqLevel);<br>
+    BOOL(p->bEnableSignHiding, "signhide");<br>
+    BOOL(p->bEnableTransformSkip, "tskip");<br>
+    s += sprintf(s, " nr-intra=%d", p->noiseReductionIntra);<br>
+    s += sprintf(s, " nr-inter=%d", p->noiseReductionInter);<br>
+    if (p->scalingLists)<br>
+        s += sprintf(s, " scaling-list=%s", p->scalingLists);<br>
+    BOOL(p-><wbr>bEnableConstrainedIntra, "constrained-intra");<br>
+    BOOL(p-><wbr>bEnableStrongIntraSmoothing, "strong-intra-smoothing");<br>
+    s += sprintf(s, " max-merge=%d", p->maxNumMergeCand);<br>
+    s += sprintf(s, " limit-refs=%d", p->limitReferences);<br>
+    BOOL(p->limitModes, "limit-modes");<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>
-    BOOL(p->bEnableRectInter, "rect");<br>
-    BOOL(p->bEnableAMP, "amp");<br>
-    s += sprintf(s, " max-merge=%d", p->maxNumMergeCand);<br>
     BOOL(p->bEnableTemporalMvp, "temporal-mvp");<br>
-    BOOL(p->bEnableEarlySkip, "early-skip");<br>
-    BOOL(p->bEnableRecursionSkip, "rskip");<br>
-    s += sprintf(s, " rdpenalty=%d", p->rdPenalty);<br>
-    BOOL(p->bEnableTransformSkip, "tskip");<br>
-    BOOL(p->bEnableTSkipFast, "tskip-fast");<br>
-    BOOL(p-><wbr>bEnableStrongIntraSmoothing, "strong-intra-smoothing");<br>
-    BOOL(p->bLossless, "lossless");<br>
-    BOOL(p->bCULossless, "cu-lossless");<br>
-    BOOL(p-><wbr>bEnableConstrainedIntra, "constrained-intra");<br>
-    BOOL(p->bEnableFastIntra, "fast-intra");<br>
-    BOOL(p->bOpenGOP, "open-gop");<br>
-    BOOL(p-><wbr>bEnableTemporalSubLayers, "temporal-layers");<br>
-    s += sprintf(s, " interlace=%d", p->interlaceMode);<br>
-    s += sprintf(s, " keyint=%d", p->keyframeMax);<br>
-    s += sprintf(s, " min-keyint=%d", p->keyframeMin);<br>
-    s += sprintf(s, " scenecut=%d", p->scenecutThreshold);<br>
-    s += sprintf(s, " scenecut-bias=%.2f", p->scenecutBias);<br>
-    s += sprintf(s, " rc-lookahead=%d", p->lookaheadDepth);<br>
-    s += sprintf(s, " lookahead-slices=%d", p->lookaheadSlices);<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, " limit-refs=%d", p->limitReferences);<br>
-    BOOL(p->limitModes, "limit-modes");<br>
     BOOL(p->bEnableWeightedPred, "weightp");<br>
     BOOL(p->bEnableWeightedBiPred, "weightb");<br>
-    s += sprintf(s, " aq-mode=%d", p->rc.aqMode);<br>
-    s += sprintf(s, " qg-size=%d", p->rc.qgSize);<br>
-    s += sprintf(s, " aq-strength=%.2f", p->rc.aqStrength);<br>
-    s += sprintf(s, " cbqpoffs=%d", p->cbQpOffset);<br>
-    s += sprintf(s, " crqpoffs=%d", p->crQpOffset);<br>
-    s += sprintf(s, " rd=%d", p->rdLevel);<br>
-    s += sprintf(s, " psy-rd=%.2f", p->psyRd);<br>
-    s += sprintf(s, " rdoq-level=%d", p->rdoqLevel);<br>
-    s += sprintf(s, " psy-rdoq=%.2f", p->psyRdoq);<br>
-    s += sprintf(s, " log2-max-poc-lsb=%d", p->log2MaxPocLsb);<br>
-    s += sprintf(s, " limit-tu=%d", p->limitTU);<br>
-    BOOL(p->bEnableRdRefine, "rd-refine");<br>
-    BOOL(p->bEnableSignHiding, "signhide");<br>
+    BOOL(p-><wbr>bSourceReferenceEstimation, "analyze-src-pics");<br>
     BOOL(p->bEnableLoopFilter, "deblock");<br>
     if (p->bEnableLoopFilter)<br>
         s += sprintf(s, "=%d:%d", p->deblockingFilterTCOffset,<br>
p->deblockingFilterBetaOffset)<wbr>;<br>
     BOOL(p->bEnableSAO, "sao");<br>
     BOOL(p->bSaoNonDeblocked, "sao-non-deblock");<br>
-    BOOL(p->bBPyramid, "b-pyramid");<br>
-    BOOL(p->rc.cuTree, "cutree");<br>
-    BOOL(p->bIntraRefresh, "intra-refresh");<br>
+    s += sprintf(s, " rd=%d", p->rdLevel);<br>
+    BOOL(p->bEnableEarlySkip, "early-skip");<br>
+    BOOL(p->bEnableRecursionSkip, "rskip");<br>
+    BOOL(p->bEnableFastIntra, "fast-intra");<br>
+    BOOL(p->bEnableTSkipFast, "tskip-fast");<br>
+    BOOL(p->bCULossless, "cu-lossless");<br>
+    BOOL(p->bIntraInBFrames, "b-intra");<br>
+    s += sprintf(s, " rdpenalty=%d", p->rdPenalty);<br>
+    s += sprintf(s, " psy-rd=%.2f", p->psyRd);<br>
+    s += sprintf(s, " psy-rdoq=%.2f", p->psyRdoq);<br>
+    BOOL(p->bEnableRdRefine, "rd-refine");<br>
+    s += sprintf(s, " analysis-mode=%d", p->analysisMode);<br>
+    if (p->analysisMode)<br>
+        s += sprintf(s, " analysis-file=%s", p->analysisFileName);<br>
+    BOOL(p->bLossless, "lossless");<br>
+    s += sprintf(s, " cbqpoffs=%d", p->cbQpOffset);<br>
+    s += sprintf(s, " crqpoffs=%d", p->crQpOffset);<br>
     s += sprintf(s, " rc=%s", p->rc.rateControlMode == X265_RC_ABR ? (<br>
-         p->rc.bStatRead ? "2 pass" : p->rc.bitrate == p->rc.vbvMaxBitrate<br>
? "cbr" : "abr")<br>
+         p->rc.bitrate == p->rc.vbvMaxBitrate ? "cbr" : "abr")<br>
          : p->rc.rateControlMode == X265_RC_CRF ? "crf" : "cqp");<br>
     if (p->rc.rateControlMode == X265_RC_ABR || p->rc.rateControlMode ==<br>
X265_RC_CRF)<br>
     {<br>
@@ -1515,15 +1536,20 @@<br>
             s += sprintf(s, " crf=%.1f", p->rc.rfConstant);<br>
         else<br>
             s += sprintf(s, " bitrate=%d", p->rc.bitrate);<br>
-        s += sprintf(s, " qcomp=%.2f qpmin=%d qpmax=%d qpstep=%d",<br>
-                     p->rc.qCompress, p->rc.qpMin, p->rc.qpMax,<br>
p->rc.qpStep);<br>
+        s += sprintf(s, " qcomp=%.2f qpstep=%d", p->rc.qCompress,<br>
p->rc.qpStep);<br>
+        s += sprintf(s, " stats-write=%d", p->rc.bStatWrite);<br>
+        s += sprintf(s, " stats-read=%d", p->rc.bStatRead);<br>
+        if (p->rc.bStatRead || p->rc.bStatWrite)<br>
+            s += sprintf(s, " stats-file=%s", p->rc.statFileName);<br>
         if (p->rc.bStatRead)<br>
-            s += sprintf( s, " cplxblur=%.1f qblur=%.1f",<br>
-                          p->rc.complexityBlur, p->rc.qblur);<br>
+            s += sprintf(s, " cplxblur=%.1f qblur=%.1f",<br>
+            p->rc.complexityBlur, p->rc.qblur);<br>
+        if (p->rc.bStatWrite && !p->rc.bStatRead)<br>
+            BOOL(p->rc.<wbr>bEnableSlowFirstPass, "slow-firstpass");<br>
         if (p->rc.vbvBufferSize)<br>
         {<br>
             s += sprintf(s, " vbv-maxrate=%d vbv-bufsize=%d vbv-init=%.1f",<br>
-                          p->rc.vbvMaxBitrate, p->rc.vbvBufferSize,<br>
p->rc.vbvBufferInit);<br>
+                 p->rc.vbvMaxBitrate, p->rc.vbvBufferSize,<br>
</div></div>+ p->rc.vbvBufferInit);<br>
<div><div class="h5">             if (p->rc.rateControlMode == X265_RC_CRF)<br>
                 s += sprintf(s, " crf-max=%.1f crf-min=%.1f",<br>
p->rc.rfConstantMax, p->rc.rfConstantMin);<br>
         }<br>
@@ -1536,13 +1562,61 @@<br>
         if (p->bframes)<br>
             s += sprintf(s, " pbratio=%.2f", p->rc.pbFactor);<br>
     }<br>
-    if (p->bMultiPassOptRPS)<br>
+    s += sprintf(s, " aq-mode=%d", p->rc.aqMode);<br>
+    s += sprintf(s, " aq-strength=%.2f", p->rc.aqStrength);<br>
+    BOOL(p->rc.cuTree, "cutree");<br>
+    s += sprintf(s, " zone-count=%d", p->rc.zoneCount);<br>
+    if (p->rc.zoneCount)<br>
     {<br>
-        BOOL(p->bMultiPassOptRPS, "multi-pass-opt-rps");<br>
-        BOOL(p->bRepeatHeaders, "repeat-headers");<br>
+        for (int i = 0; i < p->rc.zoneCount; ++i)<br>
+        {<br>
+            s += sprintf(s, " zones: start-frame=%d end-frame=%d",<br>
+                 p->rc.zones[i].startFrame, p->rc.zones[i].endFrame);<br>
+            if (p->rc.zones[i].bForceQp)<br>
+                s += sprintf(s, " qp=%d", p->rc.zones[i].qp);<br>
+            else<br>
+                s += sprintf(s, " bitrate-factor=%f",<br>
p->rc.zones[i].bitrateFactor);<br>
+        }<br>
     }<br>
-    s += sprintf(s, " uhd-bd=%d", p->uhdBluray);<br>
+    if (p->rc.lambdaFileName)<br>
+        s += sprintf(s, " lambda-file=%s", p->rc.lambdaFileName);<br>
+    BOOL(p->rc.bStrictCbr, "strict-cbr");<br>
+    s += sprintf(s, " qg-size=%d", p->rc.qgSize);<br>
+    BOOL(p->rc.bEnableGrain, "rc-grain");<br>
+    s += sprintf(s, " qpmax=%d qpmin=%d", p->rc.qpMax, p->rc.qpMin);<br>
+    s += sprintf(s, " sar=%d", p->vui.aspectRatioIdc);<br>
+    if (p->vui.aspectRatioIdc == X265_EXTENDED_SAR)<br>
+        s += sprintf(s, " sar-width : sar-height=%d:%d", p->vui.sarWidth,<br>
p->vui.sarHeight);<br>
+    s += sprintf(s, " overscan=%d", p->vui.<wbr>bEnableOverscanInfoPresentFlag<wbr>);<br>
+    if (p->vui.<wbr>bEnableOverscanInfoPresentFlag<wbr>)<br>
+        s += sprintf(s, " overscan-crop=%d",<br>
p->vui.<wbr>bEnableOverscanAppropriateFlag<wbr>);<br>
+    s += sprintf(s, " videoformat=%d", p->vui.videoFormat);<br>
+    s += sprintf(s, " range=%d", p->vui.<wbr>bEnableVideoFullRangeFlag);<br>
+    s += sprintf(s, " colorprim=%d", p->vui.colorPrimaries);<br>
+    s += sprintf(s, " transfer=%d", p->vui.<wbr>transferCharacteristics);<br>
+    s += sprintf(s, " colormatrix=%d", p->vui.matrixCoeffs);<br>
+    s += sprintf(s, " chromaloc=%d",<br>
p->vui.<wbr>bEnableChromaLocInfoPresentFla<wbr>g);<br>
+    if (p->vui.<wbr>bEnableChromaLocInfoPresentFla<wbr>g)<br>
+        s += sprintf(s, " chromaloc-top=%d chromaloc-bottom=%d",<br>
+        p->vui.<wbr>chromaSampleLocTypeTopField,<br>
p->vui.<wbr>chromaSampleLocTypeBottomField<wbr>);<br>
+    s += sprintf(s, " display-window=%d",<br>
p->vui.<wbr>bEnableDefaultDisplayWindowFla<wbr>g);<br>
+    if (p->vui.<wbr>bEnableDefaultDisplayWindowFla<wbr>g)<br>
+        s += sprintf(s, " left=%d top=%d right=%d bottom=%d",<br>
+        p->vui.defDispWinLeftOffset, p->vui.defDispWinTopOffset,<br>
+        p->vui.defDispWinRightOffset, p->vui.defDispWinBottomOffset)<wbr>;<br>
+    if (p-><wbr>masteringDisplayColorVolume)<br>
+        s += sprintf(s, " master-display=%s",<br>
p-><wbr>masteringDisplayColorVolume);<br>
+    s += sprintf(s, " max-cll=%hu,%hu", p->maxCLL, p->maxFALL);<br>
+    s += sprintf(s, " min-luma=%hu", p->minLuma);<br>
+    s += sprintf(s, " max-luma=%hu", p->maxLuma);<br>
+    s += sprintf(s, " log2-max-poc-lsb=%d", p->log2MaxPocLsb);<br>
+    BOOL(p->bEmitVUITimingInfo, "vui-timing-info");<br>
+    BOOL(p->bEmitVUIHRDInfo, "vui-hrd-info");<br>
     s += sprintf(s, " slices=%d", p->maxSlices);<br>
+    BOOL(p->bOptQpPPS, "opt-qp-pps");<br>
+    BOOL(p->bOptRefListLengthPPS, "opt-ref-list-length-pps");<br>
+    BOOL(p->bMultiPassOptRPS, "multi-pass-opt-rps");<br>
+    s += sprintf(s, " scenecut-bias=%.2f", p->scenecutBias);<br>
 #undef BOOL<br>
     return buf;<br>
 }<br>
</div></div>______________________________<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>