<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Oct 28, 2013 at 5:07 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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"># HG changeset patch<br>
# User Gopu Govindaswamy <<a href="mailto:gopu@multicorewareinc.com">gopu@multicorewareinc.com</a>><br>
# Date 1382954866 -19800<br>
# Node ID ebca77b70ffdbd76b1c853a29e2b6536d1160ce6<br>
# Parent 68042ac00ad6af0d9d7d85654e8c9968809ce8ce<br>
tenccfg : move Tool list config params from tenccfg to x265_param structure<br></blockquote><div><br></div><div>all the same comments apply to this patch as the last one.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
diff -r 68042ac00ad6 -r ebca77b70ffd source/Lib/TLibEncoder/TEncCfg.h<br>
--- a/source/Lib/TLibEncoder/TEncCfg.h Mon Oct 28 15:08:49 2013 +0530<br>
+++ b/source/Lib/TLibEncoder/TEncCfg.h Mon Oct 28 15:37:46 2013 +0530<br>
@@ -89,25 +89,6 @@<br>
//====== Quality control ========<br>
int m_maxCuDQPDepth; // Max. depth for a minimum CuDQP (0:default)<br>
<br>
- //====== Tool list ========<br>
- bool m_bUseASR;<br>
- bool m_usePCM;<br>
- UInt m_pcmLog2MaxSize;<br>
- UInt m_pcmLog2MinSize;<br>
-<br>
- bool m_bPCMInputBitDepthFlag;<br>
- UInt m_pcmBitDepthLuma;<br>
- UInt m_pcmBitDepthChroma;<br>
- bool m_bPCMFilterDisableFlag;<br>
- bool m_loopFilterAcrossTilesEnabledFlag;<br>
-<br>
- int m_bufferingPeriodSEIEnabled;<br>
- int m_pictureTimingSEIEnabled;<br>
- int m_recoveryPointSEIEnabled;<br>
- int m_displayOrientationSEIAngle;<br>
- int m_gradualDecodingRefreshInfoEnabled;<br>
- int m_decodingUnitInfoSEIEnabled;<br>
-<br>
//====== Weighted Prediction ========<br>
<br>
UInt m_log2ParallelMergeLevelMinus2; ///< Parallel merge estimation region<br>
@@ -183,33 +164,6 @@<br>
//====== Lossless ========<br>
bool getUseLossless() { return m_useLossless; }<br>
<br>
- //==== Tool list ========<br>
- bool getUseASR() { return m_bUseASR; }<br>
-<br>
- bool getPCMInputBitDepthFlag() { return m_bPCMInputBitDepthFlag; }<br>
-<br>
- bool getPCMFilterDisableFlag() { return m_bPCMFilterDisableFlag; }<br>
-<br>
- bool getUsePCM() { return m_usePCM; }<br>
-<br>
- UInt getPCMLog2MaxSize() { return m_pcmLog2MaxSize; }<br>
-<br>
- UInt getPCMLog2MinSize() { return m_pcmLog2MinSize; }<br>
-<br>
- bool getLFCrossTileBoundaryFlag() { return m_loopFilterAcrossTilesEnabledFlag; }<br>
-<br>
- int getBufferingPeriodSEIEnabled() { return m_bufferingPeriodSEIEnabled; }<br>
-<br>
- int getPictureTimingSEIEnabled() { return m_pictureTimingSEIEnabled; }<br>
-<br>
- int getRecoveryPointSEIEnabled() { return m_recoveryPointSEIEnabled; }<br>
-<br>
- int getDisplayOrientationSEIAngle() { return m_displayOrientationSEIAngle; }<br>
-<br>
- int getGradualDecodingRefreshInfoEnabled() { return m_gradualDecodingRefreshInfoEnabled; }<br>
-<br>
- int getDecodingUnitInfoSEIEnabled() { return m_decodingUnitInfoSEIEnabled; }<br>
-<br>
UInt getLog2ParallelMergeLevelMinus2() { return m_log2ParallelMergeLevelMinus2; }<br>
<br>
int getUseScalingListId() { return m_useScalingListId; }<br>
diff -r 68042ac00ad6 -r ebca77b70ffd source/encoder/encoder.cpp<br>
--- a/source/encoder/encoder.cpp Mon Oct 28 15:08:49 2013 +0530<br>
+++ b/source/encoder/encoder.cpp Mon Oct 28 15:37:46 2013 +0530<br>
@@ -712,9 +712,9 @@<br>
sps->setLog2MinCodingBlockSize(log2MinCUSize);<br>
sps->setLog2DiffMaxMinCodingBlockSize(sps->getMaxCUDepth() - g_addCUDepth);<br>
<br>
- sps->setPCMLog2MinSize(m_pcmLog2MinSize);<br>
- sps->setUsePCM(m_usePCM);<br>
- sps->setPCMLog2MaxSize(m_pcmLog2MaxSize);<br>
+ sps->setPCMLog2MinSize(param.pcmLog2MinSize);<br>
+ sps->setUsePCM(param.busePCM);<br>
+ sps->setPCMLog2MaxSize(param.pcmLog2MaxSize);<br>
<br>
sps->setQuadtreeTULog2MaxSize(m_quadtreeTULog2MaxSize);<br>
sps->setQuadtreeTULog2MinSize(m_quadtreeTULog2MinSize);<br>
@@ -759,7 +759,7 @@<br>
sps->setPCMBitDepthLuma(X265_DEPTH);<br>
sps->setPCMBitDepthChroma(X265_DEPTH);<br>
<br>
- sps->setPCMFilterDisableFlag(m_bPCMFilterDisableFlag);<br>
+ sps->setPCMFilterDisableFlag(param.bPCMFilterDisableFlag);<br>
<br>
sps->setScalingListFlag((m_useScalingListId == 0) ? 0 : 1);<br>
<br>
@@ -857,7 +857,7 @@<br>
<br>
pps->setTransquantBypassEnableFlag(getTransquantBypassEnableFlag());<br>
pps->setUseTransformSkip(param.bEnableTransformSkip);<br>
- pps->setLoopFilterAcrossTilesEnabledFlag(m_loopFilterAcrossTilesEnabledFlag);<br>
+ pps->setLoopFilterAcrossTilesEnabledFlag(param.bloopFilterAcrossTilesEnabledFlag);<br>
}<br>
<br>
void Encoder::determineLevelAndProfile(x265_param *_param)<br>
@@ -1060,7 +1060,7 @@<br>
param.loopFilterOffsetInPPS = 0;<br>
param.loopFilterBetaOffsetDiv2 = 0;<br>
param.loopFilterTcOffsetDiv2 = 0;<br>
- m_loopFilterAcrossTilesEnabledFlag = 1;<br>
+ param.bloopFilterAcrossTilesEnabledFlag = 1;<br>
<br>
//====== HM Settings not exposed for configuration ======<br>
TComVPS vps;<br>
@@ -1122,13 +1122,13 @@<br>
m_interlacedSourceFlag = false;<br>
m_nonPackedConstraintFlag = false;<br>
m_frameOnlyConstraintFlag = false;<br>
- m_bUseASR = false; // adapt search range based on temporal distances<br>
- m_recoveryPointSEIEnabled = 0;<br>
- m_bufferingPeriodSEIEnabled = 0;<br>
- m_pictureTimingSEIEnabled = 0;<br>
- m_displayOrientationSEIAngle = 0;<br>
- m_gradualDecodingRefreshInfoEnabled = 0;<br>
- m_decodingUnitInfoSEIEnabled = 0;<br>
+ param.bUseASR = false; // adapt search range based on temporal distances<br>
+ param.recoveryPointSEIEnabled = 0;<br>
+ param.bufferingPeriodSEIEnabled = 0;<br>
+ param.pictureTimingSEIEnabled = 0;<br>
+ param.displayOrientationSEIAngle = 0;<br>
+ param.gradualDecodingRefreshInfoEnabled = 0;<br>
+ param.decodingUnitInfoSEIEnabled = 0;<br>
m_useScalingListId = 0;<br>
m_activeParameterSetsSEIEnabled = 0;<br>
m_vuiParametersPresentFlag = false;<br>
@@ -1158,11 +1158,11 @@<br>
m_maxBitsPerMinCuDenom = 1;<br>
m_log2MaxMvLengthHorizontal = 15;<br>
m_log2MaxMvLengthVertical = 15;<br>
- m_usePCM = 0;<br>
- m_pcmLog2MinSize = 3;<br>
- m_pcmLog2MaxSize = 5;<br>
- m_bPCMInputBitDepthFlag = true;<br>
- m_bPCMFilterDisableFlag = false;<br>
+ param.busePCM = 0;<br>
+ param.pcmLog2MinSize = 3;<br>
+ param.pcmLog2MaxSize = 5;<br>
+ param.bPCMInputBitDepthFlag = true;<br>
+ param.bPCMFilterDisableFlag = false;<br>
<br>
m_useLossless = false; // x264 configures this via --qp=0<br>
m_TransquantBypassEnableFlag = false;<br>
diff -r 68042ac00ad6 -r ebca77b70ffd source/encoder/frameencoder.cpp<br>
--- a/source/encoder/frameencoder.cpp Mon Oct 28 15:08:49 2013 +0530<br>
+++ b/source/encoder/frameencoder.cpp Mon Oct 28 15:37:46 2013 +0530<br>
@@ -136,11 +136,11 @@<br>
top->initPPS(&m_pps);<br>
<br>
m_sps.setNumLongTermRefPicSPS(0);<br>
- if (m_cfg->getPictureTimingSEIEnabled() || m_cfg->getDecodingUnitInfoSEIEnabled())<br>
+ if (m_cfg->param.pictureTimingSEIEnabled || m_cfg->param.decodingUnitInfoSEIEnabled)<br>
{<br>
m_sps.setHrdParameters(m_cfg->param.frameRate, 0, m_cfg->param.rc.bitrate, m_cfg->param.bframes > 0);<br>
}<br>
- if (m_cfg->getBufferingPeriodSEIEnabled() || m_cfg->getPictureTimingSEIEnabled() || m_cfg->getDecodingUnitInfoSEIEnabled())<br>
+ if (m_cfg->param.bufferingPeriodSEIEnabled || m_cfg->param.pictureTimingSEIEnabled || m_cfg->param.decodingUnitInfoSEIEnabled)<br>
{<br>
m_sps.getVuiParameters()->setHrdParametersPresentFlag(true);<br>
}<br>
@@ -228,13 +228,13 @@<br>
count++;<br>
}<br>
<br>
- if (m_cfg->getDisplayOrientationSEIAngle())<br>
+ if (m_cfg->param.displayOrientationSEIAngle)<br>
{<br>
SEIDisplayOrientation sei;<br>
sei.cancelFlag = false;<br>
sei.horFlip = false;<br>
sei.verFlip = false;<br>
- sei.anticlockwiseRotation = m_cfg->getDisplayOrientationSEIAngle();<br>
+ sei.anticlockwiseRotation = m_cfg->param.displayOrientationSEIAngle;<br>
<br>
nalu = NALUnit(NAL_UNIT_PREFIX_SEI);<br>
entropyCoder->setBitstream(&nalu.m_Bitstream);<br>
@@ -372,7 +372,7 @@<br>
TComOutputBitstream* bitstreamRedirect = new TComOutputBitstream;<br>
TComOutputBitstream* outStreams = new TComOutputBitstream[numSubstreams];<br>
<br>
- if (m_cfg->getUseASR() && !slice->isIntra())<br>
+ if (m_cfg->param.bUseASR && !slice->isIntra())<br>
{<br>
int pocCurr = slice->getPOC();<br>
int maxSR = m_cfg->param.searchRange;<br>
@@ -491,9 +491,9 @@<br>
}<br>
<br>
m_wp.xRestoreWPparam(slice);<br>
- if ((m_cfg->getRecoveryPointSEIEnabled()) && (slice->getSliceType() == I_SLICE))<br>
+ if ((m_cfg->param.recoveryPointSEIEnabled) && (slice->getSliceType() == I_SLICE))<br>
{<br>
- if (m_cfg->getGradualDecodingRefreshInfoEnabled() && !slice->getRapPicFlag())<br>
+ if (m_cfg->param.gradualDecodingRefreshInfoEnabled && !slice->getRapPicFlag())<br>
{<br>
// Gradual decoding refresh SEI<br>
OutputNALUnit nalu(NAL_UNIT_PREFIX_SEI);<br>
diff -r 68042ac00ad6 -r ebca77b70ffd source/x265.h<br>
--- a/source/x265.h Mon Oct 28 15:08:49 2013 +0530<br>
+++ b/source/x265.h Mon Oct 28 15:37:46 2013 +0530<br>
@@ -340,6 +340,25 @@<br>
int loopFilterTcOffsetDiv2;<br>
int maxNumOffsetsPerPic;<br>
<br>
+ //====== Tool list ==================<br>
+ bool bUseASR;<br>
+ bool busePCM;<br>
+ uint32_t pcmLog2MaxSize;<br>
+ uint32_t pcmLog2MinSize;<br>
+<br>
+ bool bPCMInputBitDepthFlag;<br>
+ uint32_t pcmBitDepthLuma;<br>
+ uint32_t pcmBitDepthChroma;<br>
+ bool bPCMFilterDisableFlag;<br>
+ bool bloopFilterAcrossTilesEnabledFlag;<br>
+<br>
+ int bufferingPeriodSEIEnabled;<br>
+ int pictureTimingSEIEnabled;<br>
+ int recoveryPointSEIEnabled;<br>
+ int displayOrientationSEIAngle;<br>
+ int gradualDecodingRefreshInfoEnabled;<br>
+ int decodingUnitInfoSEIEnabled;<br>
+<br>
} x265_param;<br>
<br>
/***<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>