<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Dec 16, 2013 at 3:36 PM, Deepthi Nandakumar <span dir="ltr"><<a href="mailto:deepthi@multicorewareinc.com" target="_blank">deepthi@multicorewareinc.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Build fails. Restore qtlayer.<br><div><div></div></div></div><div class="gmail_extra"><br></div></blockquote>
<div><br></div><div>It builds fine here. What is the error?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><br><div class="gmail_quote">
<div><div class="h5">On Mon, Dec 16, 2013 at 3:07 PM,  <span dir="ltr"><<a href="mailto:deepthidevaki@multicorewareinc.com" target="_blank">deepthidevaki@multicorewareinc.com</a>></span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"># HG changeset patch<br>
# User Deepthi Devaki <<a href="mailto:deepthidevaki@multicorewareinc.com" target="_blank">deepthidevaki@multicorewareinc.com</a>><br>
# Date 1387185624 -19800<br>
# Node ID f20e5ab835cd7071d9ebeabff50f6b9fef4d3e39<br>
# Parent  9bb16a023918c342b907d106b4a3d59ec2473bc1<br>
rd level: use cu coeff array while computing coefficients instead of temp buffer<br>
<br>
diff -r 9bb16a023918 -r f20e5ab835cd source/Lib/TLibEncoder/TEncSearch.cpp<br>
--- a/source/Lib/TLibEncoder/TEncSearch.cpp     Mon Dec 16 14:33:57 2013 +0530<br>
+++ b/source/Lib/TLibEncoder/TEncSearch.cpp     Mon Dec 16 14:50:24 2013 +0530<br>
@@ -3266,9 +3266,7 @@<br>
     if (cu->getPredictionMode(0) == MODE_INTER)<br>
     {<br>
         residualTransformQuantInter(cu, 0, 0, resiYuv, cu->getDepth(0), true);<br>
-        xSetResidualQTData(cu, 0, 0, NULL, cu->getDepth(0), false);<br>
         uint32_t width  = cu->getWidth(0);<br>
-        xSetResidualQTData(cu, 0, 0, resiYuv, cu->getDepth(0), true);<br>
         reconYuv->addClip(predYuv, resiYuv, 0, width);<br>
<br>
         if (cu->getMergeFlag(0) && cu->getPartitionSize(0) == SIZE_2Nx2N && cu->getQtRootCbf(0) == 0)<br>
@@ -3322,10 +3320,10 @@<br>
     if (bCheckFull)<br>
     {<br>
         const uint32_t numCoeffPerAbsPartIdxIncrement = cu->getSlice()->getSPS()->getMaxCUWidth() * cu->getSlice()->getSPS()->getMaxCUHeight() >> (cu->getSlice()->getSPS()->getMaxCUDepth() << 1);<br>


-        const uint32_t qtlayer = cu->getSlice()->getSPS()->getQuadtreeTULog2MaxSize() - trSizeLog2;<br>
-        TCoeff *coeffCurY = m_qtTempCoeffY[qtlayer] + (numCoeffPerAbsPartIdxIncrement * absPartIdx);<br>
-        TCoeff *coeffCurU = m_qtTempCoeffCb[qtlayer] + (numCoeffPerAbsPartIdxIncrement * absPartIdx >> 2);<br>
-        TCoeff *coeffCurV = m_qtTempCoeffCr[qtlayer] + (numCoeffPerAbsPartIdxIncrement * absPartIdx >> 2);<br>
+<br>
+        TCoeff *coeffCurY = cu->getCoeffY() + (numCoeffPerAbsPartIdxIncrement * absPartIdx);<br>
+        TCoeff *coeffCurU = cu->getCoeffCb() + (numCoeffPerAbsPartIdxIncrement * absPartIdx >> 2);<br>
+        TCoeff *coeffCurV = cu->getCoeffCr() + (numCoeffPerAbsPartIdxIncrement * absPartIdx >> 2);<br>
<br>
         int trWidth = 0, trHeight = 0, trWidthC = 0, trHeightC = 0;<br>
         uint32_t absTUPartIdxC = absPartIdx;<br>
@@ -3370,64 +3368,55 @@<br>
<br>
         if (absSumY)<br>
         {<br>
-            int16_t *curResiY = m_qtTempTComYuv[qtlayer].getLumaAddr(absTUPartIdx);<br>
+            int16_t *curResiY = resiYuv->getLumaAddr(absTUPartIdx);<br>
<br>
             m_trQuant->setQPforQuant(cu->getQP(0), TEXT_LUMA, cu->getSlice()->getSPS()->getQpBDOffsetY(), 0);<br>
<br>
             int scalingListType = 3 + g_eTTable[(int)TEXT_LUMA];<br>
             assert(scalingListType < 6);<br>
-            assert(m_qtTempTComYuv[qtlayer].m_width == MAX_CU_SIZE);<br>
-            m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiY, MAX_CU_SIZE,  coeffCurY, trWidth, trHeight, scalingListType, false, lastPosY); //this is for inter mode only<br>
+            m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiY, resiYuv->m_width,  coeffCurY, trWidth, trHeight, scalingListType, false, lastPosY); //this is for inter mode only<br>


         }<br>
         else<br>
         {<br>
-            int16_t *ptr =  m_qtTempTComYuv[qtlayer].getLumaAddr(absTUPartIdx);<br>
-            assert(m_qtTempTComYuv[qtlayer].m_width == MAX_CU_SIZE);<br>
-<br>
+            int16_t *ptr =  resiYuv->getLumaAddr(absTUPartIdx);<br>
             assert(trWidth == trHeight);<br>
-            primitives.blockfill_s[(int)g_convertToBit[trWidth]](ptr, MAX_CU_SIZE, 0);<br>
+            primitives.blockfill_s[(int)g_convertToBit[trWidth]](ptr, resiYuv->m_width, 0);<br>
         }<br>
<br>
         if (bCodeChroma)<br>
         {<br>
             if (absSumU)<br>
             {<br>
-                int16_t *pcResiCurrU = m_qtTempTComYuv[qtlayer].getCbAddr(absTUPartIdxC);<br>
+                int16_t *pcResiCurrU = resiYuv->getCbAddr(absTUPartIdxC);<br>
<br>
                 int curChromaQpOffset = cu->getSlice()->getPPS()->getChromaCbQpOffset() + cu->getSlice()->getSliceQpDeltaCb();<br>
                 m_trQuant->setQPforQuant(cu->getQP(0), TEXT_CHROMA, cu->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset);<br>
<br>
                 int scalingListType = 3 + g_eTTable[(int)TEXT_CHROMA_U];<br>
                 assert(scalingListType < 6);<br>
-                assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2);<br>
-                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, pcResiCurrU, MAX_CU_SIZE / 2, coeffCurU, trWidthC, trHeightC, scalingListType, false, lastPosU);<br>
+                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, pcResiCurrU, resiYuv->m_cwidth, coeffCurU, trWidthC, trHeightC, scalingListType, false, lastPosU);<br>
             }<br>
             else<br>
             {<br>
-                int16_t *ptr = m_qtTempTComYuv[qtlayer].getCbAddr(absTUPartIdxC);<br>
-                assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2);<br>
-<br>
+                int16_t *ptr = resiYuv->getCbAddr(absTUPartIdxC);<br>
                 assert(trWidthC == trHeightC);<br>
-                primitives.blockfill_s[(int)g_convertToBit[trWidthC]](ptr, MAX_CU_SIZE / 2, 0);<br>
+                primitives.blockfill_s[(int)g_convertToBit[trWidthC]](ptr, resiYuv->m_cwidth, 0);<br>
             }<br>
             if (absSumV)<br>
             {<br>
-                int16_t *curResiV = m_qtTempTComYuv[qtlayer].getCrAddr(absTUPartIdxC);<br>
+                int16_t *curResiV = resiYuv->getCrAddr(absTUPartIdxC);<br>
                 int curChromaQpOffset = cu->getSlice()->getPPS()->getChromaCrQpOffset() + cu->getSlice()->getSliceQpDeltaCr();<br>
                 m_trQuant->setQPforQuant(cu->getQP(0), TEXT_CHROMA, cu->getSlice()->getSPS()->getQpBDOffsetC(), curChromaQpOffset);<br>
<br>
                 int scalingListType = 3 + g_eTTable[(int)TEXT_CHROMA_V];<br>
                 assert(scalingListType < 6);<br>
-                assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2);<br>
-                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiV, MAX_CU_SIZE / 2, coeffCurV, trWidthC, trHeightC, scalingListType, false, lastPosV);<br>
+                m_trQuant->invtransformNxN(cu->getCUTransquantBypass(absPartIdx), REG_DCT, curResiV, resiYuv->m_cwidth, coeffCurV, trWidthC, trHeightC, scalingListType, false, lastPosV);<br>
             }<br>
             else<br>
             {<br>
-                int16_t *ptr =  m_qtTempTComYuv[qtlayer].getCrAddr(absTUPartIdxC);<br>
-                assert(m_qtTempTComYuv[qtlayer].m_cwidth == MAX_CU_SIZE / 2);<br>
-<br>
+                int16_t *ptr =  resiYuv->getCrAddr(absTUPartIdxC);<br>
                 assert(trWidthC == trHeightC);<br>
-                primitives.blockfill_s[(int)g_convertToBit[trWidthC]](ptr, MAX_CU_SIZE / 2, 0);<br>
+                primitives.blockfill_s[(int)g_convertToBit[trWidthC]](ptr, resiYuv->m_cwidth, 0);<br>
             }<br>
         }<br>
         cu->setCbfSubParts(absSumY ? setCbf : 0, TEXT_LUMA, absPartIdx, depth);<br>
diff -r 9bb16a023918 -r f20e5ab835cd source/encoder/compress.cpp<br>
--- a/source/encoder/compress.cpp       Mon Dec 16 14:33:57 2013 +0530<br>
+++ b/source/encoder/compress.cpp       Mon Dec 16 14:50:24 2013 +0530<br>
@@ -927,7 +927,6 @@<br>
<br>
             //Residual encoding<br>
             m_search->residualTransformQuantInter(cu, 0, 0, m_tmpResiYuv[depth], cu->getDepth(0), true);<br>
-            m_search->xSetResidualQTData(cu, 0, 0, NULL, cu->getDepth(0), false);<br>
<br>
             if (lcu->getMergeFlag(absPartIdx) && cu->getPartitionSize(0) == SIZE_2Nx2N && !cu->getQtRootCbf(0))<br>
             {<br>
@@ -937,7 +936,6 @@<br>
             else<br>
             {<br>
                 cu->copyCodedToPic(depth);<br>
-                m_search->xSetResidualQTData(cu, 0, 0, m_tmpResiYuv[depth], cu->getDepth(0), true);<br>
<br>
                 //Generate Recon<br>
                 Pel* pred = m_bestPredYuv[0]->getLumaAddr(absPartIdx);<br></div></div>
_______________________________________________<br>
x265-devel mailing list<br>
<a href="mailto:x265-devel@videolan.org" target="_blank">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></div>
<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>
<br></blockquote></div><br></div></div>