Index: trunk/source/Lib/TLibEncoder/TEncCfg.h
===================================================================
--- trunk/source/Lib/TLibEncoder/TEncCfg.h	(revision 105)
+++ trunk/source/Lib/TLibEncoder/TEncCfg.h	(revision 115)
@@ -204,4 +204,10 @@
   Double    m_dLambdaScaleVSO;
   UInt      m_uiVSOMode;
+#if LGE_WVSO_A0119
+  Bool      m_bWVSO;
+  Int				m_iVSOWeight;
+  Int       m_iVSDWeight;
+  Int				m_iDWeight;
+#endif
 #endif
 #if SAIT_VSO_EST_A0033
@@ -310,4 +316,8 @@
 #if HHI_DMM_WEDGE_INTRA || HHI_DMM_PRED_TEX
   Bool      m_bUseDMM;
+#endif
+
+#if OL_DEPTHLIMIT
+  Bool      m_bDepthPartitionLimiting;
 #endif
 
@@ -466,4 +476,10 @@
   Void      setAllowNegDist                 ( Bool b  )     { m_bAllowNegDist     = b; };
 #endif
+#if LGE_WVSO_A0119
+  Void      setWVSO													( Bool  b )     { m_bWVSO				= b; }
+  Void      setVSOWeight										( Int   i )     { m_iVSOWeight  = i; }
+  Void      setVSDWeight										( Int   i )     { m_iVSDWeight  = i; }
+  Void      setDWeight											( Int   i )     { m_iDWeight  = i; }
+#endif
 #endif
 
@@ -545,4 +561,10 @@
 #if HHI_VSO_DIST_INT
   Bool      getAllowNegDist                 ()      { return m_bAllowNegDist;     }
+#endif
+#if LGE_WVSO_A0119
+  Bool      getWVSO                         ()      { return m_bWVSO;     }
+  Int       getVSOWeight                    ()      { return m_iVSOWeight;    }
+  Int       getVSDWeight                    ()      { return m_iVSDWeight;    }
+  Int       getDWeight									    ()      { return m_iDWeight;    }
 #endif
 #endif
@@ -799,4 +821,9 @@
 #endif
 
+#if OL_DEPTHLIMIT
+  Void setUseDPL(Bool b) {m_bDepthPartitionLimiting = b; }
+  Bool getUseDPL()       {return m_bDepthPartitionLimiting;}
+#endif
+
   Void      setViewOrderIdx       ( Int   i )      { m_iViewOrderIdx          = i; }
   Void      setCamParPrecision              ( UInt  u )      { m_uiCamParPrecision      = u; }
Index: trunk/source/Lib/TLibEncoder/TEncCu.cpp
===================================================================
--- trunk/source/Lib/TLibEncoder/TEncCu.cpp	(revision 105)
+++ trunk/source/Lib/TLibEncoder/TEncCu.cpp	(revision 115)
@@ -451,4 +451,36 @@
   TComPic* pcPic = rpcBestCU->getPic();
 
+#if OL_DEPTHLIMIT
+  TComSPS *sps = pcPic->getSlice(0)->getSPS();
+  TComPic *pcTexture;
+  TComDataCU *pcTextureCU;
+  static UInt* texPartInfo;
+  static UInt uiTexPartIndex;
+  static Bool depthMapDetect =  false;
+  UInt uiPrevTexPartIndex = 0;
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+  static Bool bIntraSliceDetect = false;
+#endif
+  Bool bTry2NxN = false;
+  Bool bTryNx2N = false;
+  if(uiDepth == 0)
+  {
+	pcTexture = rpcBestCU->getSlice()->getTexturePic();
+	if(pcTexture != NULL) //depth map being encoded
+	{
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+		bIntraSliceDetect = (rpcBestCU->getSlice()->getSliceType()==I_SLICE);
+#endif
+		pcTextureCU = pcTexture->getCU( rpcBestCU->getAddr() );
+		texPartInfo = pcTextureCU -> readPartInfo();
+		uiTexPartIndex = 0;
+		depthMapDetect = true;
+	}
+	else
+	{
+		depthMapDetect = false;
+	}
+  }
+#endif
   // get Original YUV data from picture
   m_ppcOrigYuv[uiDepth]->copyFromPicYuv( pcPic->getPicYuvOrg(), rpcBestCU->getAddr(), rpcBestCU->getZorderIdxInCU() );
@@ -592,4 +624,78 @@
 
       rpcTempCU->initEstData( uiDepth, iQP );
+
+#if OL_DEPTHLIMIT
+  //logic for setting bTrySplit using the partition information that is stored of the texture colocated CU
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+  if(depthMapDetect && !bIntraSliceDetect && sps->getUseDPL())
+#else
+  if(depthMapDetect && sps->getUseDPL()) //depth map being encoded
+#endif
+  {
+	assert(uiDepth == (UInt)texPartInfo[uiTexPartIndex+1]);
+	if((UInt)texPartInfo[uiTexPartIndex+0] == 1) //NxN modes
+	{
+		bTrySplit = true;
+		bTryNx2N = true;
+		bTry2NxN = true;
+		uiPrevTexPartIndex = uiTexPartIndex; 
+		uiTexPartIndex += 2;
+	}
+	else if((UInt)texPartInfo[uiTexPartIndex+0] == 0) //2Nx2N modes
+	{
+		UInt uiTexdepth;
+		UInt temp_uiTexPartIndex;
+		bTrySplit = false;
+		//scan ahead till next depth
+		uiTexdepth = (UInt)texPartInfo[uiTexPartIndex+1];
+		uiPrevTexPartIndex = uiTexPartIndex;
+		uiTexPartIndex+=2;
+		temp_uiTexPartIndex = uiTexPartIndex; //store in case to rewind
+		//temp_uiTexPartIndex+=2;
+					while(uiTexdepth != (UInt)texPartInfo[uiTexPartIndex+1] && uiTexdepth != 0)
+					{
+						if((UInt)texPartInfo[uiTexPartIndex+1] < uiTexdepth)
+						{
+							break;
+						}
+						uiTexPartIndex+=2;
+						
+						if((UInt)texPartInfo[uiTexPartIndex+1] == OL_END_CU)
+						{
+							uiTexPartIndex = temp_uiTexPartIndex;
+							uiTexdepth++;
+							if(uiTexdepth >= g_uiMaxCUDepth)
+							{
+								//uiTexPartIndex-=2;
+								break;
+							}
+						}
+					}
+	}
+	else if((UInt)texPartInfo[uiTexPartIndex+0] == OL_END_CU)
+	{
+		bTrySplit = false;
+		bTryNx2N = false;
+		bTry2NxN = false;
+	}
+	else if((UInt)texPartInfo[uiTexPartIndex+0] == 2) //2NxN case
+	{
+		bTrySplit = false;
+		bTryNx2N = false;
+		bTry2NxN = true;
+		uiPrevTexPartIndex = uiTexPartIndex; 
+		uiTexPartIndex += 2;
+	}
+	else if((UInt)texPartInfo[uiTexPartIndex+0] == 3) //Nx2N case
+	{
+		bTrySplit = false;
+		bTryNx2N = true;
+		bTry2NxN = false;
+		uiPrevTexPartIndex = uiTexPartIndex; 
+		uiTexPartIndex += 2;
+	}
+  }
+#endif
+
 
       // do inter modes, SKIP and 2Nx2N
@@ -660,4 +766,28 @@
       } // != I_SLICE
 
+#if OL_DEPTHLIMIT
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+	  if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
+#else
+	  if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
+#endif
+	  {
+		  bTrySplitDQP = bTrySplit;
+	  }
+	  else
+	  {
+		if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() )
+		{
+			if(iQP == iBaseQP)
+			{
+				bTrySplitDQP = bTrySplit;
+			}
+		}
+		else
+		{
+			bTrySplitDQP = bTrySplit;
+		}
+	  }
+#else
 
       if( (g_uiMaxCUWidth>>uiDepth) >= rpcTempCU->getSlice()->getPPS()->getMinCuDQPSize() )
@@ -672,4 +802,5 @@
         bTrySplitDQP = bTrySplit;
       }
+#endif
 #if LOSSLESS_CODING
       if (isAddLowestQP && (iQP == lowestQP))
@@ -721,4 +852,15 @@
           if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth && doNotBlockPu)
           {
+#if OL_DEPTHLIMIT //add code here to select 2NxN or Nx2N or none
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+  if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
+#else
+  if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
+#endif
+			{
+				assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
+				if (bTrySplit)
+				{	
+#endif
 #if HHI_INTER_VIEW_RESIDUAL_PRED
             rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
@@ -730,9 +872,36 @@
 #endif
             rpcTempCU->initEstData( uiDepth, iQP );
-          }
+#if OL_DEPTHLIMIT
+				}//bTrySplit
+			}//depthMapDetect
+			else//do things normally
+			{
+#if HHI_INTER_VIEW_RESIDUAL_PRED
+            rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
+#endif
+#if HHI_INTERVIEW_SKIP
+            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN, bFullyRenderedSec   );
+#else
+            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_NxN   );
+#endif
+            rpcTempCU->initEstData( uiDepth, iQP );
+          }
+#endif
+          } 
         }
         }
 
         { // 2NxN, Nx2N
+#if OL_DEPTHLIMIT //add code here to select 2NxN or Nx2N or none
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+  if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
+#else
+  if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
+#endif
+			{
+				assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
+				if (bTryNx2N)
+				{	
+#endif
           if(doNotBlockPu)
           {
@@ -751,4 +920,39 @@
             }
           }
+#if OL_DEPTHLIMIT
+				}//bTryNx2N
+			}//depthMapDetect
+			else//do things normally
+			{
+          if(doNotBlockPu)
+          {
+#if HHI_INTER_VIEW_RESIDUAL_PRED
+            rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
+#endif
+#if HHI_INTERVIEW_SKIP
+            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N, bFullyRenderedSec   );
+#else
+            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_Nx2N  );
+#endif
+            rpcTempCU->initEstData( uiDepth, iQP );
+            if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_Nx2N )
+            {
+              doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
+            }
+          }
+			}
+#endif
+
+#if OL_DEPTHLIMIT //add code here to select 2NxN or Nx2N or none
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+  if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
+#else
+  if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
+#endif
+			{
+				assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
+				if (bTry2NxN)
+				{	
+#endif
           if(doNotBlockPu)
           {
@@ -767,4 +971,27 @@
             }
           }
+#if OL_DEPTHLIMIT
+				}//bTryNx2N
+			}//depthMapDetect
+			else//do things normally
+			{
+				 if(doNotBlockPu)
+          {
+#if HHI_INTER_VIEW_RESIDUAL_PRED
+            rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
+#endif
+#if HHI_INTERVIEW_SKIP
+            xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxN, bFullyRenderedSec   );
+#else
+            xCheckRDCostInter      ( rpcBestCU, rpcTempCU, SIZE_2NxN  );
+#endif
+            rpcTempCU->initEstData( uiDepth, iQP );
+            if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxN)
+            {
+              doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
+            }
+          }
+  }
+#endif
         }
 
@@ -787,4 +1014,15 @@
           if ( bTestAMP_Hor )
           {
+#if OL_DEPTHLIMIT //add code here to select 2NxN or Nx2N or none
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+  if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
+#else
+  if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
+#endif
+			{
+				assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
+				if (bTry2NxN)
+				{	
+#endif
             if(doNotBlockPu)
             {
@@ -819,8 +1057,9 @@
               }
             }
-          }
-#if AMP_MRG
-          else if ( bTestMergeAMP_Hor ) 
-          {
+#if OL_DEPTHLIMIT
+				}//bTry2NxN
+			}//depthMapDetect
+			else//do things normally
+			{
             if(doNotBlockPu)
             {
@@ -829,7 +1068,7 @@
 #endif
 #if HHI_INTERVIEW_SKIP
-              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec, true );
-#else
-              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, true );
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU );
 #endif
               rpcTempCU->initEstData( uiDepth, iQP );
@@ -845,7 +1084,7 @@
 #endif
 #if HHI_INTERVIEW_SKIP
-              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec, true );
-#else
-              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, true );
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD );
 #endif
               rpcTempCU->initEstData( uiDepth, iQP );
@@ -857,8 +1096,108 @@
           }
 #endif
+          }
+#if AMP_MRG
+          else if ( bTestMergeAMP_Hor ) 
+          {
+#if OL_DEPTHLIMIT //add code here to select 2NxN or Nx2N or none
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+  if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
+#else
+  if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
+#endif
+			{
+				assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
+				if (bTry2NxN)
+				{	
+#endif
+            if(doNotBlockPu)
+            {
+#if HHI_INTER_VIEW_RESIDUAL_PRED
+              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
+#endif
+#if HHI_INTERVIEW_SKIP
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec, true );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, true );
+#endif
+              rpcTempCU->initEstData( uiDepth, iQP );
+              if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU )
+              {
+                doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
+              }
+            }
+            if(doNotBlockPu)
+            {
+#if HHI_INTER_VIEW_RESIDUAL_PRED
+              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
+#endif
+#if HHI_INTERVIEW_SKIP
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec, true );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, true );
+#endif
+              rpcTempCU->initEstData( uiDepth, iQP );
+              if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD )
+              {
+                doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
+              }
+            }
+#if OL_DEPTHLIMIT
+				}//bTry2NxN
+			}//depthMapDetect
+			else//do things normally
+			{
+            if(doNotBlockPu)
+            {
+#if HHI_INTER_VIEW_RESIDUAL_PRED
+              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
+#endif
+#if HHI_INTERVIEW_SKIP
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, bFullyRenderedSec, true );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnU, true );
+#endif
+              rpcTempCU->initEstData( uiDepth, iQP );
+              if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnU )
+              {
+                doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
+              }
+            }
+            if(doNotBlockPu)
+            {
+#if HHI_INTER_VIEW_RESIDUAL_PRED
+              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
+#endif
+#if HHI_INTERVIEW_SKIP
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, bFullyRenderedSec, true );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_2NxnD, true );
+#endif
+              rpcTempCU->initEstData( uiDepth, iQP );
+              if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_2NxnD )
+              {
+                doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
+              }
+            }
+
+			}
+#endif
+          }
+#endif
 
           //! Do horizontal AMP
           if ( bTestAMP_Ver )
           {
+#if OL_DEPTHLIMIT //add code here to select 2NxN or Nx2N or none
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+  if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
+#else
+  if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
+#endif
+			{
+				assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
+				if (bTryNx2N)
+				{	
+#endif
             if(doNotBlockPu)
             {
@@ -889,8 +1228,9 @@
               rpcTempCU->initEstData( uiDepth, iQP );
             }
-          }
-#if AMP_MRG
-          else if ( bTestMergeAMP_Ver )
-          {
+#if OL_DEPTHLIMIT
+				}//bTryNx2N
+			}//depthMapDetect
+			else//do things normally
+			{
             if(doNotBlockPu)
             {
@@ -899,7 +1239,7 @@
 #endif
 #if HHI_INTERVIEW_SKIP
-              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec, true );
-#else
-              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, true );
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N );
 #endif
               rpcTempCU->initEstData( uiDepth, iQP );
@@ -915,10 +1255,90 @@
 #endif
 #if HHI_INTERVIEW_SKIP
-              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec, true );
-#else
-              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, true );
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N );
 #endif
               rpcTempCU->initEstData( uiDepth, iQP );
             }
+          }
+#endif
+          }
+#if AMP_MRG
+          else if ( bTestMergeAMP_Ver )
+          {
+#if OL_DEPTHLIMIT //add code here to select 2NxN or Nx2N or none
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+  if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
+#else
+  if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
+#endif
+			{
+				assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
+				if (bTryNx2N)
+				{	
+#endif
+            if(doNotBlockPu)
+            {
+#if HHI_INTER_VIEW_RESIDUAL_PRED
+              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
+#endif
+#if HHI_INTERVIEW_SKIP
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec, true );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, true );
+#endif
+              rpcTempCU->initEstData( uiDepth, iQP );
+              if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N )
+              {
+                doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
+              }
+            }
+            if(doNotBlockPu)
+            {
+#if HHI_INTER_VIEW_RESIDUAL_PRED
+              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
+#endif
+#if HHI_INTERVIEW_SKIP
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec, true );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, true );
+#endif
+              rpcTempCU->initEstData( uiDepth, iQP );
+            }
+#if OL_DEPTHLIMIT
+				}//bTryNx2N
+			}//depthMapDetect
+			else//do things normally
+			{
+            if(doNotBlockPu)
+            {
+#if HHI_INTER_VIEW_RESIDUAL_PRED
+              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
+#endif
+#if HHI_INTERVIEW_SKIP
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, bFullyRenderedSec, true );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nLx2N, true );
+#endif
+              rpcTempCU->initEstData( uiDepth, iQP );
+              if(m_pcEncCfg->getUseCbfFastMode() && rpcBestCU->getPartitionSize(0) == SIZE_nLx2N )
+              {
+                doNotBlockPu = rpcBestCU->getQtRootCbf( 0 ) != 0;
+              }
+            }
+            if(doNotBlockPu)
+            {
+#if HHI_INTER_VIEW_RESIDUAL_PRED
+              rpcTempCU->setResPredIndicator( bResPredAvailable, bResPredFlag );
+#endif
+#if HHI_INTERVIEW_SKIP
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, bFullyRenderedSec, true );
+#else
+              xCheckRDCostInter( rpcBestCU, rpcTempCU, SIZE_nRx2N, true );
+#endif
+              rpcTempCU->initEstData( uiDepth, iQP );
+            }
+          }
+#endif
           }
 #endif
@@ -994,4 +1414,16 @@
           if( uiDepth == g_uiMaxCUDepth - g_uiAddCUDepth )
           {
+#if OL_DEPTHLIMIT //add code here to select or deselect NxN mode for Intra
+#if OL_DO_NOT_LIMIT_INTRA_SLICES_PART
+  if(depthMapDetect && !bIntraSliceDetect  && sps->getUseDPL())
+#else
+  if(depthMapDetect  && sps->getUseDPL()) //depth map being encoded
+#endif
+			{
+				assert(uiDepth == (UInt)texPartInfo[uiPrevTexPartIndex+1]);
+				if (bTrySplit)
+				{
+			
+#endif
             if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) )
             {
@@ -999,4 +1431,16 @@
               rpcTempCU->initEstData( uiDepth, iQP );
             }
+#if OL_DEPTHLIMIT
+				}//bTrySplit
+			 }//depthMapDetect
+			else
+			{
+				if( rpcTempCU->getWidth(0) > ( 1 << rpcTempCU->getSlice()->getSPS()->getQuadtreeTULog2MinSize() ) )
+				{
+					xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN   );
+					rpcTempCU->initEstData( uiDepth, iQP );
+				}
+			}
+#endif
           }
         }
@@ -1561,6 +2005,12 @@
 #if HHI_MPI
     if( pcCU->getTextureModeDepth( uiAbsPartIdx ) == -1 || uiDepth < pcCU->getTextureModeDepth( uiAbsPartIdx ) )
-#endif
+    {
+#endif
+
     m_pcEntropyCoder->encodeSplitFlag( pcCU, uiAbsPartIdx, uiDepth );
+
+#if HHI_MPI
+    }
+#endif
   }
   else
@@ -1577,5 +2027,7 @@
 
     if( ( uiRPelX < pcSlice->getSPS()->getPicWidthInLumaSamples() ) && ( uiBPelY < pcSlice->getSPS()->getPicHeightInLumaSamples() ) )
+	{
       m_pcEntropyCoder->encodeSplitFlag( pcCU, uiAbsPartIdx, uiDepth );
+	}
     if( !pcCU->getSlice()->isIntra() )
     {
@@ -1631,4 +2083,5 @@
 #if HHI_MPI
   if( pcCU->getTextureModeDepth( uiAbsPartIdx ) == -1 )
+{
 #endif
   if( !pcCU->getSlice()->isIntra() )
@@ -1636,7 +2089,17 @@
     m_pcEntropyCoder->encodeSkipFlag( pcCU, uiAbsPartIdx );
   }
+#if HHI_MPI
+}
+#endif
   
   if( pcCU->isSkipped( uiAbsPartIdx ) )
   {
+#if OL_DEPTHLIMIT
+	if(pcCU->getPartDumpFlag())
+	{
+		pcCU->updatePartInfo(0,uiDepth);
+		pcCU->incrementPartInfo();
+	}
+#endif
     m_pcEntropyCoder->encodeMergeIndex( pcCU, uiAbsPartIdx, 0 );
 #if HHI_INTER_VIEW_RESIDUAL_PRED
Index: trunk/source/Lib/TLibEncoder/TEncGOP.cpp
===================================================================
--- trunk/source/Lib/TLibEncoder/TEncGOP.cpp	(revision 105)
+++ trunk/source/Lib/TLibEncoder/TEncGOP.cpp	(revision 115)
@@ -464,5 +464,8 @@
     m_pcRdCost->setDepthPicYuv   ( m_pcEncTop->getEncTop()->getPicYuvFromView( pcSlice->getViewId(), pcSlice->getPOC(), true, false ) );
 #endif
-
+#if LGE_WVSO_A0119
+    Bool bWVSO  = m_pcEncTop->getWVSO();
+    m_pcRdCost->setWVSO( bWVSO );
+#endif
 
   }
@@ -1133,10 +1136,26 @@
         if (!bEntropySlice)
         {
+#if OL_DEPTHLIMIT //start dumping partition information
+		m_pcSliceEncoder->setPartDumpFlag(1);
+//		if(!(pcPic->getSlice(0)->getSPS()->getUseDPL()))
+//		{
+//			m_pcSliceEncoder->setPartDumpFlag(0);
+//		}
+#endif
           pcSlice->setTileLocationCount ( 0 );
           m_pcSliceEncoder->encodeSlice(pcPic, pcBitstreamRedirect, pcSubstreamsOut); // redirect is only used for CAVLC tile position info.
+#if OL_DEPTHLIMIT //stop dumping partition information
+		m_pcSliceEncoder->setPartDumpFlag(0);
+#endif
         }
         else
         {
+#if OL_DEPTHLIMIT //start dumping partition information
+		m_pcSliceEncoder->setPartDumpFlag(1);
+#endif
           m_pcSliceEncoder->encodeSlice(pcPic, &nalu.m_Bitstream, pcSubstreamsOut); // nalu.m_Bitstream is only used for CAVLC tile position info.
+#if OL_DEPTHLIMIT //stop dumping partition information
+		m_pcSliceEncoder->setPartDumpFlag(0);
+#endif
         }
 
Index: trunk/source/Lib/TLibEncoder/TEncSbac.cpp
===================================================================
--- trunk/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 105)
+++ trunk/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 115)
@@ -580,4 +580,7 @@
 {
   PartSize eSize         = pcCU->getPartitionSize( uiAbsPartIdx );
+#if OL_DEPTHLIMIT
+  UInt uiSymbol;
+#endif
   if ( pcCU->isIntra( uiAbsPartIdx ) )
   {
@@ -585,5 +588,20 @@
     {
       m_pcBinIf->encodeBin( eSize == SIZE_2Nx2N? 1 : 0, m_cCUPartSizeSCModel.get( 0, 0, 0 ) );
-    }
+#if OL_DEPTHLIMIT
+		if(pcCU->getPartDumpFlag())
+		{
+			uiSymbol = (UInt)(eSize == SIZE_2Nx2N? 1 : 0);
+			pcCU->updatePartInfo(uiSymbol?0:1,uiDepth); //0 for 2Nx2N and 1 for NxN
+			pcCU->incrementPartInfo();
+		}
+#endif
+    }
+#if OL_DEPTHLIMIT
+	if(pcCU->getPartDumpFlag() && uiDepth < g_uiMaxCUDepth - g_uiAddCUDepth && !pcCU->getSlice()->isIntra())
+	{
+		pcCU->updatePartInfo(0,uiDepth); //0 for 2Nx2N and 1 for NxN
+		pcCU->incrementPartInfo();
+	}
+#endif
     return;
   }
@@ -594,4 +612,14 @@
     {
       m_pcBinIf->encodeBin( 1, m_cCUPartSizeSCModel.get( 0, 0, 0) );
+#if OL_DEPTHLIMIT
+	  if(pcCU->getPartDumpFlag())
+	  {
+//		if (!pcCU->isIntra( uiAbsPartIdx ))
+		{
+			pcCU->updatePartInfo(0,uiDepth); //0 for 2Nx2N
+			pcCU->incrementPartInfo();
+		}
+	  }
+#endif
       break;
     }
@@ -623,4 +651,14 @@
         }
       }
+#if OL_DEPTHLIMIT
+	  if(pcCU->getPartDumpFlag())
+	  {
+//		if (!pcCU->isIntra( uiAbsPartIdx ))
+		{
+			pcCU->updatePartInfo(2,uiDepth); //2 for 2NxN
+			pcCU->incrementPartInfo();
+		}
+	  }
+#endif
       break;
     }
@@ -656,4 +694,14 @@
         }
       }
+#if OL_DEPTHLIMIT
+	  if(pcCU->getPartDumpFlag())
+	  {
+//		if (!pcCU->isIntra( uiAbsPartIdx ))
+		{
+			pcCU->updatePartInfo(3,uiDepth); //3 for Nx2N
+			pcCU->incrementPartInfo();
+		}
+	  }
+#endif
       break;
     }
@@ -665,4 +713,27 @@
         m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 1) );
         m_pcBinIf->encodeBin( 0, m_cCUPartSizeSCModel.get( 0, 0, 2) );
+#if OL_DEPTHLIMIT
+	  if(pcCU->getPartDumpFlag())
+	  {
+		//if (!pcCU->getSlice()->isIntra())
+		{
+			pcCU->updatePartInfo(1,uiDepth); //2Nx2N here since we disable NxN in Inter
+			pcCU->incrementPartInfo();
+		}
+	  }
+#endif
+      }
+	  else
+	  {
+#if OL_DEPTHLIMIT
+	  if(pcCU->getPartDumpFlag())
+	  {
+		//if (!pcCU->getSlice()->isIntra())
+		{
+			pcCU->updatePartInfo(0,uiDepth); //2Nx2N here since we disable NxN in Inter
+			pcCU->incrementPartInfo();
+		}
+	  }
+#endif
       }
       break;
@@ -828,4 +899,14 @@
   assert( uiCtx < 3 );
   m_pcBinIf->encodeBin( uiCurrSplitFlag, m_cCUSplitFlagSCModel.get( 0, 0, uiCtx ) );
+#if OL_DEPTHLIMIT
+  if(pcCU->getPartDumpFlag())
+  {
+	if(pcCU->getSlice()->isIntra() || (!pcCU->getSlice()->isIntra() && uiCurrSplitFlag!=0))
+	{
+	pcCU->updatePartInfo(uiCurrSplitFlag,uiDepth);
+	pcCU->incrementPartInfo();
+	}
+  }
+#endif
   DTRACE_CABAC_VL( g_nSymbolCounter++ )
   DTRACE_CABAC_T( "\tSplitFlag\n" )
Index: trunk/source/Lib/TLibEncoder/TEncSearch.cpp
===================================================================
--- trunk/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 105)
+++ trunk/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 115)
@@ -1129,5 +1129,14 @@
   if ( m_pcRdCost->getUseVSO() )
   {
+#if LGE_WVSO_A0119
+    Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight();
+    Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight();
+    Dist iD = (Dist) m_pcRdCost->getDistPart( piReco, uiStride, piOrg, uiStride, uiWidth, uiHeight );
+    Dist iVSO = m_pcRdCost->getDistVS  ( pcCU, uiAbsPartIdx, piReco, uiStride, piOrg, uiStride, uiWidth, uiHeight, false, 0 );
+    ruiDist += (iDWeight * iD + iVSOWeight * iVSO) / ( iDWeight + iVSOWeight);
+
+#else
     ruiDist += m_pcRdCost->getDistVS  ( pcCU, uiAbsPartIdx, piReco, uiStride, piOrg, uiStride, uiWidth, uiHeight, false, 0 );
+#endif
   }
   else
@@ -1902,4 +1911,10 @@
 
             uiSad = (Dist) ( m_pcRdCost->getDistPart( piPred, uiStride, piOrg, uiStride, pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiPartOffset), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiPartOffset), pcVirRec->getStride(), uiWidth, uiHeight ) );
+#if LGE_WVSO_A0119
+            Int iDWeight = m_pcRdCost->getDWeight();
+            Int iVSDWeight = m_pcRdCost->getVSDWeight();
+            Dist iD = (Dist) m_pcRdCost->calcHAD( piOrg, uiStride, piPred, uiStride, uiWidth, uiHeight );
+            uiSad = (Dist) (iDWeight * iD + iVSDWeight * uiSad) / (iDWeight + iVSDWeight);
+#endif
           }
           else
@@ -4391,4 +4406,10 @@
     {
       uiDistortion = m_pcRdCost->getDistVS( pcCU, 0, rpcYuvRec->getLumaAddr(), rpcYuvRec->getStride(),  pcYuvOrg->getLumaAddr(), pcYuvOrg->getStride(),  uiWidth,      uiHeight     , false, 0 );
+#if LGE_WVSO_A0119
+      Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight();
+      Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight();
+      Dist iD   = (Dist) m_pcRdCost->getDistPart( rpcYuvRec->getLumaAddr(), rpcYuvRec->getStride(),  pcYuvOrg->getLumaAddr(), pcYuvOrg->getStride(),  uiWidth,      uiHeight      );
+      uiDistortion = (iDWeight * iD + iVSOWeight * (Dist)uiDistortion) / ( iDWeight + iVSOWeight);
+#endif
     }
     else    
@@ -4750,4 +4771,10 @@
   {
     uiDistortionBest = m_pcRdCost->getDistVS  ( pcCU, 0, rpcYuvRec->getLumaAddr(), rpcYuvRec->getStride(),  pcYuvOrg->getLumaAddr(), pcYuvOrg->getStride(),  uiWidth,      uiHeight, false, 0    );
+#if LGE_WVSO_A0119
+    Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight();
+    Int iVSOWeight = m_pcRdCost->getVSOWeight() * m_pcRdCost->getVSOWeight();
+    Dist iD        = (Dist) m_pcRdCost->getDistPart( rpcYuvRec->getLumaAddr(), rpcYuvRec->getStride(),  pcYuvOrg->getLumaAddr(), pcYuvOrg->getStride(),  uiWidth,      uiHeight      );
+    uiDistortionBest = (iDWeight * iD + iVSOWeight * (Dist) uiDistortionBest) / ( iDWeight + iVSOWeight);
+#endif
   }
   else
@@ -4985,4 +5012,10 @@
         TComPicYuv* pcVirOrg = m_pcRdCost->getDepthPicYuv();
         uiDistY = m_pcRdCost->getDistPart( m_pTempPel, 1<< uiLog2TrSize, pcResi->getLumaAddr( uiAbsPartIdx ), pcResi->getStride(), pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiAbsPartIdx), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiAbsPartIdx), pcVirRec->getStride(), 1<< uiLog2TrSize, 1<< uiLog2TrSize );
+#if LGE_WVSO_A0119
+        Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight();
+        Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight();
+        Dist iD   = (Dist) m_pcRdCost->getDistPart( m_pTempPel, trWidth, pcResi->getLumaAddr( absTUPartIdx ), pcResi->getStride(), trWidth, trHeight );
+        uiDistY = (iDWeight * iD + iVSDWeight * (Dist)uiDistY) / ( iDWeight + iVSDWeight);
+#endif
       }
       else
@@ -5035,4 +5068,10 @@
           TComPicYuv* pcVirOrg = m_pcRdCost->getDepthPicYuv();
           uiNonzeroDistY = m_pcRdCost->getDistPart( m_pcQTTempTComYuv[uiQTTempAccessLayer].getLumaAddr( uiAbsPartIdx ), m_pcQTTempTComYuv[uiQTTempAccessLayer].getStride(), pcResi->getLumaAddr( uiAbsPartIdx ), pcResi->getStride(), pcVirRec->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU()+uiAbsPartIdx ), pcVirOrg->getLumaAddr( pcCU->getAddr(), pcCU->getZorderIdxInCU()+uiAbsPartIdx ), pcVirRec->getStride(), 1<< uiLog2TrSize,    1<< uiLog2TrSize );
+#if LGE_WVSO_A0119
+          Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight();
+          Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight();
+          Dist iD = (Dist) m_pcRdCost->getDistPart( m_pcQTTempTComYuv[uiQTTempAccessLayer].getLumaAddr( absTUPartIdx ), m_pcQTTempTComYuv[uiQTTempAccessLayer].getStride(),pcResi->getLumaAddr( absTUPartIdx ), pcResi->getStride(), trWidth,trHeight );
+          uiNonzeroDistY = (iDWeight * iD + iVSDWeight * (Dist) uiNonzeroDistY) / ( iDWeight + iVSDWeight);
+#endif
         }
         else
@@ -6119,4 +6158,10 @@
           TComPicYuv* pcVirOrg = m_pcRdCost->getDepthPicYuv();
           uiActDist = m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirRec->getStride(), uiWidth, uiHeight );
+#if LGE_WVSO_A0119
+          Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight();
+          Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight();
+          Dist iD = (Dist) m_pcRdCost->getDistPart( piPredic, uiStride, piOrig, uiStride, uiWidth, uiHeight, false, DF_SAD );
+          uiActDist = (iDWeight * iD + iVSDWeight * (Dist) uiActDist) / ( iDWeight + iVSDWeight);
+#endif
         }
         else       
@@ -6232,4 +6277,10 @@
         TComPicYuv* pcVirOrg = m_pcRdCost->getDepthPicYuv();
         uiActDist = m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()), pcVirRec->getStride(), uiWidth, uiHeight );
+#if LGE_WVSO_A0119
+        Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight();
+        Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight();
+        Dist iD = (Dist) m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false, DF_SAD );
+        uiActDist = (iDWeight * iD + iVSDWeight * (Int) uiActDist) / ( iDWeight + iVSDWeight);
+#endif
       }
       else
@@ -6298,4 +6349,10 @@
         TComPicYuv* pcVirOrg = m_pcRdCost->getDepthPicYuv();
         uiActDist = m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, pcVirRec->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiAbsPtIdx), pcVirOrg->getLumaAddr(pcCU->getAddr(),pcCU->getZorderIdxInCU()+uiAbsPtIdx), pcVirRec->getStride(), uiWidth, uiHeight );
+#if LGE_WVSO_A0119
+        Int iDWeight = m_pcRdCost->getDWeight() * m_pcRdCost->getDWeight();
+        Int iVSDWeight = m_pcRdCost->getVSDWeight() * m_pcRdCost->getVSDWeight();
+        Dist iD = (Dist) m_pcRdCost->getDistPart( piPred, uiPredStride, piRef, uiRefStride, uiWidth, uiHeight, false, DF_SAD );
+        uiActDist = (iDWeight * iD + iVSDWeight * (Int) uiActDist) / ( iDWeight + iVSDWeight);
+#endif
       }
       else
Index: trunk/source/Lib/TLibEncoder/TEncSlice.cpp
===================================================================
--- trunk/source/Lib/TLibEncoder/TEncSlice.cpp	(revision 105)
+++ trunk/source/Lib/TLibEncoder/TEncSlice.cpp	(revision 115)
@@ -376,5 +376,23 @@
   m_pcRdCost->setDisparityCoeff( m_pcCfg->getDispCoeff() );
 #endif
-
+#if LGE_WVSO_A0119
+  if( m_pcCfg->getWVSO() && m_pcCfg->isDepthCoder() )
+  {
+
+    Int iDWeight, iVSOWeight, iVSDWeight;
+    iDWeight = m_pcCfg->getDWeight();
+    iVSOWeight = m_pcCfg->getVSOWeight();
+    iVSDWeight = m_pcCfg->getVSDWeight();
+    //    if( rpcSlice->getViewId() )  iDWeight = ( iDWeight >> 1 );
+    //    if( rpcSlice->getPOC() % 8 != 0 )  iDWeight = ( iDWeight >> 1 );
+    //    if( rpcSlice->getPOC() % 4 != 0 )  iDWeight = ( iDWeight >> 1 );
+    //    if( rpcSlice->getPOC() % 2 != 0 )  iDWeight = ( iDWeight >> 1 );
+
+    m_pcRdCost->setDWeight( iDWeight );
+    m_pcRdCost->setVSOWeight( iVSOWeight );
+    m_pcRdCost->setVSDWeight( iVSDWeight );
+
+  }
+#endif
 #if RDOQ_CHROMA_LAMBDA 
 // for RDOQ
@@ -831,4 +849,8 @@
 #endif
 
+#if OL_DEPTHLIMIT //stop dumping partition information
+	b_dumpPartInfo = 0;
+	pcCU->setPartDumpFlag(b_dumpPartInfo);
+#endif
 
     // inherit from TR if necessary, select substream to use.
@@ -1290,4 +1312,8 @@
 
     TComDataCU*& pcCU = rpcPic->getCU( uiCUAddr );    
+#if OL_DEPTHLIMIT
+	pcCU->setPartDumpFlag(b_dumpPartInfo);
+	pcCU->resetPartInfo();
+#endif
 #if !REMOVE_TILE_DEPENDENCE
     if( (rpcPic->getPicSym()->getTileBoundaryIndependenceIdr()==0) && (rpcPic->getPicSym()->getNumColumnsMinus1()!=0) )
Index: trunk/source/Lib/TLibEncoder/TEncSlice.h
===================================================================
--- trunk/source/Lib/TLibEncoder/TEncSlice.h	(revision 105)
+++ trunk/source/Lib/TLibEncoder/TEncSlice.h	(revision 115)
@@ -101,4 +101,7 @@
   
   UInt                    m_uiSliceIdx;
+#if OL_DEPTHLIMIT //flag to signal to start dumping
+  bool					  b_dumpPartInfo;
+#endif
 public:
   TEncSlice();
@@ -128,4 +131,7 @@
   UInt    getSliceIdx()         { return m_uiSliceIdx;                    }
   Void    setSliceIdx(UInt i)   { m_uiSliceIdx = i;                       }
+#if OL_DEPTHLIMIT //flag to signal to start dumping
+  Void	  setPartDumpFlag(bool flag)	{b_dumpPartInfo = flag;};
+#endif
 };
 
Index: trunk/source/Lib/TLibEncoder/TEncTop.cpp
===================================================================
--- trunk/source/Lib/TLibEncoder/TEncTop.cpp	(revision 105)
+++ trunk/source/Lib/TLibEncoder/TEncTop.cpp	(revision 115)
@@ -768,4 +768,7 @@
   m_cSPS.setUseDMM( m_bUseDMM );
 #endif
+#if OL_DEPTHLIMIT
+  m_cSPS.setUseDPL( m_bDepthPartitionLimiting );
+#endif
 #if HHI_MPI
   m_cSPS.setUseMVI( m_bUseMVI );
