Index: branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCAVLC.cpp
===================================================================
--- branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 664)
+++ branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 669)
@@ -1265,5 +1265,10 @@
       else
       {
-
+#if QC_DEPTH_IV_MRG_F0125 && H_3D_IV_MERGE
+        if(i!=1)
+        {
+          READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
+        }
+#endif
         READ_FLAG( uiCode, "vps_depth_modes_flag[i]" );             pcVPS->setVpsDepthModesFlag( i, uiCode == 1 ? true : false );
         //          READ_FLAG( uiCode, "lim_qt_pred_flag[i]");                  pcVPS->setLimQtPreFlag     ( i, uiCode == 1 ? true : false ); 
Index: branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCu.cpp
===================================================================
--- branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCu.cpp	(revision 664)
+++ branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecCu.cpp	(revision 669)
@@ -135,5 +135,7 @@
 Void TDecCu::decompressCU( TComDataCU* pcCU )
 {
+#if !QC_DEPTH_IV_MRG_F0125
   xDecompressCU( pcCU, 0,  0 );
+#endif
 }
 
@@ -313,4 +315,12 @@
       m_ppcCU[uiDepth]->setHeight ( 0, pcCU->getSlice()->getSPS()->getMaxCUHeight()/(1<<uiDepth)  );
       m_ppcCU[uiDepth]->setPartSizeSubParts( SIZE_2Nx2N, 0, uiDepth );     
+#if QC_DEPTH_IV_MRG_F0125
+      if( pcCU->getSlice()->getIsDepth())
+      {
+        DvInfo.bDV = m_ppcCU[uiDepth]->getDispNeighBlocks(0, 0, &DvInfo);
+      }
+      else
+      {
+#endif
 #if H_3D_NBDV_REF
       if(pcCU->getSlice()->getVPS()->getDepthRefinementFlag( pcCU->getSlice()->getLayerIdInVps() ))  //Notes from QC: please check the condition for DoNBDV. Remove this comment once it is done.
@@ -323,5 +333,7 @@
         DvInfo.bDV = m_ppcCU[uiDepth]->getDisMvpCandNBDV(&DvInfo);
       }
-
+#if QC_DEPTH_IV_MRG_F0125
+      }
+#endif
 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC   
       if ( g_decTraceDispDer )
@@ -430,4 +442,7 @@
 #endif
     xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast );
+#if QC_DEPTH_IV_MRG_F0125
+    xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
+#endif
     return;
   }
@@ -443,4 +458,7 @@
     {
       xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast );
+#if QC_DEPTH_IV_MRG_F0125
+      xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
+#endif
       return;
     }
@@ -466,4 +484,7 @@
   setdQPFlag( bCodeDQP );
   xFinishDecodeCU( pcCU, uiAbsPartIdx, uiDepth, ruiIsLast );
+#if QC_DEPTH_IV_MRG_F0125
+  xDecompressCU(pcCU, uiAbsPartIdx, uiDepth );
+#endif
 }
 
@@ -481,5 +502,5 @@
 {
   TComPic* pcPic = pcCU->getPic();
-  
+#if !QC_DEPTH_IV_MRG_F0125  
   Bool bBoundary = false;
   UInt uiLPelX   = pcCU->getCUPelX() + g_auiRasterToPelX[ g_auiZscanToRaster[uiAbsPartIdx] ];
@@ -516,5 +537,5 @@
     return;
   }
-  
+#endif  
   // Residual reconstruction
   m_ppcYuvResi[uiDepth]->clear();
Index: branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecTop.cpp
===================================================================
--- branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecTop.cpp	(revision 664)
+++ branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecTop.cpp	(revision 669)
@@ -282,4 +282,19 @@
 }
 
+#if QC_DEPTH_IV_MRG_F0125
+Void
+CamParsCollector::copyCamParamForSlice( TComSlice* pcSlice )
+{
+  UInt uiViewIndex = pcSlice->getViewIndex();
+
+  pcSlice->getSPS()->initCamParaSPS( uiViewIndex, m_uiCamParsCodedPrecision, m_bCamParsVaryOverTime, m_aaiCodedScale, m_aaiCodedOffset );
+
+  if( m_bCamParsVaryOverTime )
+  {
+    pcSlice->setCamparaSlice( m_aaiCodedScale, m_aaiCodedOffset );
+  }
+}
+#endif
+
 Bool
 CamParsCollector::xIsComplete()
@@ -1053,4 +1068,11 @@
   }
 
+#if QC_DEPTH_IV_MRG_F0125
+  if( pcSlice->getIsDepth() && m_pcCamParsCollector )
+  {
+    m_pcCamParsCollector->copyCamParamForSlice( pcSlice );
+  }
+#endif
+
   //  Decode a picture
   m_cGopDecoder.decompressSlice(nalu.m_Bitstream, pcPic);
@@ -1060,4 +1082,10 @@
     m_pcCamParsCollector->setSlice( pcSlice );
   }
+#if QC_DEPTH_IV_MRG_F0125
+  if( pcSlice->getIsDepth() )
+  {
+    pcSlice->getSPS()->setHasCamParInSliceHeader( false );
+  }
+#endif
 #endif
   m_bFirstSliceInPicture = false;
Index: branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecTop.h
===================================================================
--- branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecTop.h	(revision 664)
+++ branches/HTM-8.2-dev2-Qualcomm/source/Lib/TLibDecoder/TDecTop.h	(revision 669)
@@ -77,4 +77,8 @@
   Bool  isInitialized() const     { return m_bInitialized; }
   Int**** getBaseViewShiftLUTI()  { return m_aiBaseViewShiftLUT;   }
+
+#if QC_DEPTH_IV_MRG_F0125
+  Void  copyCamParamForSlice( TComSlice* pcSlice );
+#endif
 
 private:
