Index: trunk/source/App/TAppDecoder/TAppDecCfg.cpp
===================================================================
--- trunk/source/App/TAppDecoder/TAppDecCfg.cpp	(revision 1133)
+++ trunk/source/App/TAppDecoder/TAppDecCfg.cpp	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
-* Copyright (c) 2010-2014, ITU/ISO/IEC
+* Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppDecoder/TAppDecCfg.h
===================================================================
--- trunk/source/App/TAppDecoder/TAppDecCfg.h	(revision 1133)
+++ trunk/source/App/TAppDecoder/TAppDecCfg.h	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
-* Copyright (c) 2010-2014, ITU/ISO/IEC
+* Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppDecoder/TAppDecTop.cpp
===================================================================
--- trunk/source/App/TAppDecoder/TAppDecTop.cpp	(revision 1133)
+++ trunk/source/App/TAppDecoder/TAppDecTop.cpp	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
-* Copyright (c) 2010-2014, ITU/ISO/IEC
+* Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
@@ -248,4 +248,7 @@
             {
               m_tDecTop[decIdx]->setTargetOptLayerSetIdx( m_targetOptLayerSetIdx ); 
+#if H_3D_ANNEX_SELECTION_FIX
+              m_tDecTop[decIdx]->setProfileIdc( ); 
+#endif
             }
 
@@ -1050,4 +1053,7 @@
     m_tDecTop[ decIdx ]->setLayerInitilizedFlags( m_layerInitilizedFlags );
     m_tDecTop[ decIdx ]->setTargetOptLayerSetIdx( m_targetOptLayerSetIdx );    
+#if H_3D_ANNEX_SELECTION_FIX
+    m_tDecTop[ decIdx ]->setProfileIdc           ( );    
+#endif
 
 #if H_3D
Index: trunk/source/App/TAppDecoder/TAppDecTop.h
===================================================================
--- trunk/source/App/TAppDecoder/TAppDecTop.h	(revision 1133)
+++ trunk/source/App/TAppDecoder/TAppDecTop.h	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
-* Copyright (c) 2010-2014, ITU/ISO/IEC
+* Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppDecoder/decmain.cpp
===================================================================
--- trunk/source/App/TAppDecoder/decmain.cpp	(revision 1133)
+++ trunk/source/App/TAppDecoder/decmain.cpp	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
-* Copyright (c) 2010-2014, ITU/ISO/IEC
+* Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppEncoder/TAppEncCfg.cpp
===================================================================
--- trunk/source/App/TAppEncoder/TAppEncCfg.cpp	(revision 1133)
+++ trunk/source/App/TAppEncoder/TAppEncCfg.cpp	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
-* Copyright (c) 2010-2014, ITU/ISO/IEC
+* Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
@@ -225,4 +225,9 @@
   }
 #endif
+#if HHI_INTER_COMP_PRED_K0052
+#if H_3D
+  in>>entry.m_interCompPredFlag;
+#endif
+#endif
   return in;
 }
@@ -477,4 +482,8 @@
   ("FastSearch",              m_iFastSearch,                1, "0:Full search  1:Diamond  2:PMVFAST")
   ("SearchRange,-sr",         m_iSearchRange,              96, "Motion search range")
+#if SONY_MV_V_CONST_C0078
+  ("DispSearchRangeRestriction",  m_bUseDisparitySearchRangeRestriction, false, "restrict disparity search range")
+  ("VerticalDispSearchRange",     m_iVerticalDisparitySearchRange, 56, "vertical disparity search range")
+#endif
   ("BipredSearchRange",       m_bipredSearchRange,          4, "Motion search range for bipred refinement")
   ("HadamardME",              m_bUseHADME,               true, "Hadamard ME for fractional-pel")
@@ -785,5 +794,9 @@
   ("QtPredFlag"            , m_qtPredFlag            , true                                           , "Quad tree prediction from texture to depth")
   ("InterSdcFlag"          , m_interSdcFlag          , true                                           , "Inter depth DCs"                           )
+#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
+  ("DepthIntraSkip"        , m_depthIntraSkipFlag    , true                                           , "Depth intra skip mode"                     )
+#else
   ("IntraSingleFlag"       , m_intraSingleFlag       , true                                           , "Intra single mode"                         )
+#endif
 #endif //H_3D
   ;
@@ -1546,5 +1559,9 @@
     {
       xConfirmPara( m_directRefLayers[i][j] < 0 || m_directRefLayers[i][j] >= i , "Reference layer id shall be greater than or equal to 0 and less than dependent layer id"); 
-      xConfirmPara( m_dependencyTypes[i][j] < 0 || m_dependencyTypes[i][j] >  2 , "Dependency type shall be greater than or equal to 0 and less than 3"); 
+#if H_3D_DIRECT_DEP_TYPE
+      xConfirmPara( m_dependencyTypes[i][j] < 0 || m_dependencyTypes[i][j] >  6 , "Dependency type shall be greater than or equal to 0 and less than 7");
+#else
+      xConfirmPara( m_dependencyTypes[i][j] < 0 || m_dependencyTypes[i][j] >  2 , "Dependency type shall be greater than or equal to 0 and less than 3");
+#endif 
     }        
   }  
@@ -1582,4 +1599,7 @@
   xConfirmPara( m_iSearchRange < 0 ,                                                        "Search Range must be more than 0" );
   xConfirmPara( m_bipredSearchRange < 0 ,                                                   "Search Range must be more than 0" );
+#if SONY_MV_V_CONST_C0078
+  xConfirmPara( m_iVerticalDisparitySearchRange <= 0 ,                                      "Vertical Disparity Search Range must be more than 0" );
+#endif
   xConfirmPara( m_iMaxDeltaQP > 7,                                                          "Absolute Delta QP exceeds supported range (0 to 7)" );
   xConfirmPara( m_iMaxCuDQPDepth > m_uiMaxCUDepth - 1,                                          "Absolute depth for a minimum CuDQP exceeds maximum coding unit depth" );
@@ -1697,5 +1717,9 @@
   xConfirmPara( m_pchBaseViewCameraNumbers  == 0                ,   "BaseViewCameraNumbers must be given" );
 #if BUG_FIX_TK65
+#if HHI_CAM_PARA_K0052
+  xConfirmPara( m_iNumberOfViews != m_cCameraData.getBaseViewNumbers().size() ,   "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" );
+#else
   xConfirmPara( ( ((UInt) m_numberOfLayers >> 1 ) != m_cCameraData.getBaseViewNumbers().size() ) && ( m_numberOfLayers != m_cCameraData.getBaseViewNumbers().size() ),   "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" );
+#endif
 #else
   xConfirmPara( ((UInt) m_numberOfLayers >> 1 ) != m_cCameraData.getBaseViewNumbers().size(),   "Number of Views in BaseViewCameraNumbers must be equal to NumberOfViews" );
@@ -2453,4 +2477,8 @@
   printf("Min PCM size                 : %d\n", 1 << m_uiPCMLog2MinSize);
   printf("Motion search range          : %d\n", m_iSearchRange );
+#if SONY_MV_V_CONST_C0078
+  printf("Disp search range restriction: %d\n", m_bUseDisparitySearchRangeRestriction );
+  printf("Vertical disp search range   : %d\n", m_iVerticalDisparitySearchRange );
+#endif
 #if H_MV
   xPrintParaVector( "Intra period", m_iIntraPeriod );
@@ -2604,5 +2632,9 @@
   printf( "QtPred:%d "                 , m_qtPredFlag             ? 1 : 0 );
   printf( "InterSdc:%d "               , m_interSdcFlag           ? 1 : 0 );
+#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
+  printf( "DepthIntraSkip:%d "         , m_depthIntraSkipFlag     ? 1 : 0 );
+#else
   printf( "IntraSingle:%d "            , m_intraSingleFlag        ? 1 : 0 );
+#endif
 #endif
 
Index: trunk/source/App/TAppEncoder/TAppEncCfg.h
===================================================================
--- trunk/source/App/TAppEncoder/TAppEncCfg.h	(revision 1133)
+++ trunk/source/App/TAppEncoder/TAppEncCfg.h	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
-* Copyright (c) 2010-2014, ITU/ISO/IEC
+* Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
@@ -289,4 +289,8 @@
   Int       m_iSearchRange;                                   ///< ME search range
   Int       m_bipredSearchRange;                              ///< ME search range for bipred refinement
+#if SONY_MV_V_CONST_C0078
+  Bool      m_bUseDisparitySearchRangeRestriction;            ///< restrict vertical search range for inter-view prediction
+  Int       m_iVerticalDisparitySearchRange;                  ///< ME vertical search range for inter-view prediction
+#endif
   Bool      m_bUseFastEnc;                                    ///< flag for using fast encoder setting
   Bool      m_bUseEarlyCU;                                    ///< flag for using Early CU setting
@@ -484,6 +488,9 @@
   Bool                   m_qtPredFlag;
   Bool                   m_interSdcFlag;
+#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
+  Bool                   m_depthIntraSkipFlag; 
+#else
   Bool                   m_intraSingleFlag;
-
+#endif
 #endif
   // internal member functions
Index: trunk/source/App/TAppEncoder/TAppEncTop.cpp
===================================================================
--- trunk/source/App/TAppEncoder/TAppEncTop.cpp	(revision 1133)
+++ trunk/source/App/TAppEncoder/TAppEncTop.cpp	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
-* Copyright (c) 2010-2014, ITU/ISO/IEC
+* Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
@@ -140,4 +140,9 @@
   xSetVPSVUI               ( vps ); 
 #if H_3D
+#if HHI_CAM_PARA_K0052
+  xSetCamPara              ( vps ); 
+#endif
+#endif
+#if H_3D
   m_ivPicLists.setVPS      ( &vps );
   xDeriveDltArray          ( vps, dlt );
@@ -196,9 +201,12 @@
       m_sps3dExtension.setQtPredFlag            ( d, m_qtPredFlag            );
       m_sps3dExtension.setInterSdcFlag          ( d, m_interSdcFlag          );
+#if SEC_DEPTH_INTRA_SKIP_MODE_K0033
+      m_sps3dExtension.setDepthIntraSkipFlag    ( d, m_depthIntraSkipFlag    );  
+#else
       m_sps3dExtension.setIntraSingleFlag       ( d, m_intraSingleFlag       );  
-    }
-  }
-#endif
-
+#endif
+    }
+  }
+#endif
   for(Int layerIdInVps = 0; layerIdInVps < m_numberOfLayers; layerIdInVps++)
   {
@@ -221,8 +229,11 @@
     //====== Camera Parameters =========
     m_cTEncTop.setCameraParameters             ( &m_cCameraData );     
+#if !HHI_CAM_PARA_K0052
     m_cTEncTop.setCamParPrecision              ( m_cCameraData.getCamParsCodedPrecision  () );
     m_cTEncTop.setCamParInSliceHeader          ( m_cCameraData.getVaryingCameraParameters() );
+
     m_cTEncTop.setCodedScale                   ( m_cCameraData.getCodedScale             () );
     m_cTEncTop.setCodedOffset                  ( m_cCameraData.getCodedOffset            () );
+#endif
 #if H_3D_VSO
     //====== VSO =========
@@ -348,4 +359,8 @@
   m_cTEncTop.setBipredSearchRange            ( m_bipredSearchRange );
 
+#if SONY_MV_V_CONST_C0078
+  m_cTEncTop.setUseDisparitySearchRangeRestriction ( m_bUseDisparitySearchRangeRestriction );
+  m_cTEncTop.setVerticalDisparitySearchRange ( m_iVerticalDisparitySearchRange );
+#endif
   //====== Quality control ========
   m_cTEncTop.setMaxDeltaQP                   ( m_iMaxDeltaQP  );
@@ -636,4 +651,46 @@
   }
 #endif
+#if H_3D_ANNEX_SELECTION_FIX
+#if H_3D
+ /// SET Profiles
+  for(Int layerIdInVps = 0; layerIdInVps < m_numberOfLayers; layerIdInVps++)
+  {
+    Int profileIdc = -1; 
+    for (Int olsIdx = 0; olsIdx < vps.getNumOutputLayerSets(); olsIdx++ )
+    {   
+      Int lsIdx = vps.olsIdxToLsIdx( olsIdx );
+      for(Int i = 0; i < vps.getNumLayersInIdList( lsIdx ); i++ )
+      {
+        if( vps.getLayerIdInNuh( layerIdInVps) == vps.getLayerSetLayerIdList(lsIdx, i) )
+        {
+          Int ptlIdx = vps.getProfileTierLevelIdx( olsIdx, i );
+          if ( ptlIdx != -1 )
+          {
+            Int curProfileIdc = vps.getPTL(ptlIdx)->getGeneralPTL()->getProfileIdc(); 
+            if (profileIdc == -1)   
+            {
+              profileIdc = curProfileIdc; 
+            }
+            else
+            {   
+              if ( profileIdc != curProfileIdc )
+              {              
+                fprintf(stderr, "Error: ProfileIdc for layer with index %d in VPS not equal in all OLSs. \n", layerIdInVps );
+                exit(EXIT_FAILURE);
+              }
+            }
+          }
+        }
+      }
+    }
+    if (profileIdc == -1 )
+    {
+      fprintf(stderr, "Error: No profile given for layer with index %d in VPS not equal in all OLS. \n", layerIdInVps );
+      exit(EXIT_FAILURE);
+    }
+    m_acTEncTopList[ layerIdInVps ]->setProfileIdc( profileIdc ); 
+  }
+#endif
+#endif
 #if H_3D_VSO
   if ( m_bUseVSO )
@@ -742,4 +799,5 @@
 {
 #if H_3D
+#if !HHI_CAM_PARA_K0052
   for ( Int viewIndex = 0; viewIndex < m_vps->getNumViews(); viewIndex++ )
   {
@@ -747,4 +805,5 @@
       m_cCameraData.getVaryingCameraParameters(), m_cCameraData.getCodedScale(), m_cCameraData.getCodedOffset() );
   }
+#endif
 #endif
 
@@ -1329,4 +1388,11 @@
 
   assert( m_iNumberOfViews == vps.getNumViews() ); 
+
+
+#if HHI_INTER_COMP_PRED_K0052
+#if H_3D
+  vps.initViewCompLayer( ); 
+#endif
+#endif
 }
 
@@ -1346,4 +1412,7 @@
   Bool defaultDirectDependencyFlag = false; 
 
+#if H_3D_DIRECT_DEP_TYPE
+  Int directDepTypeLenMinus2 = 0;  
+#endif
   for( Int depLayer = 1; depLayer < m_numberOfLayers; depLayer++ )
   {
@@ -1355,5 +1424,7 @@
       vps.setDirectDependencyFlag( depLayer, refLayer, true); 
       Int curDirectDependencyType = m_dependencyTypes[depLayer][i]; 
-
+#if H_3D_DIRECT_DEP_TYPE        
+      directDepTypeLenMinus2 = std::max( directDepTypeLenMinus2, gCeilLog2( curDirectDependencyType + 1  ) - 2 );  
+#endif
       if ( defaultDirectDependencyType != -1 )    
       {
@@ -1372,4 +1443,10 @@
   vps.setDefaultDirectDependencyFlag( defaultDirectDependencyFlag );       
   vps.setDefaultDirectDependencyType( defaultDirectDependencyFlag ? defaultDirectDependencyType : -1 );       
+
+#if H_3D_DIRECT_DEP_TYPE        
+  assert( directDepTypeLenMinus2 <= 1 ); 
+  vps.setDirectDepTypeLenMinus2( directDepTypeLenMinus2 ); 
+#endif
+
 
   vps.setRefLayers(); 
@@ -1418,7 +1495,15 @@
 #endif
               {
+#if !HHI_INTER_COMP_PRED_K0052                
                 Bool refAlwaysIntra = ( i == getGOPSize() ) && ( m_iIntraPeriod[ curLayerIdInVps ] % m_iIntraPeriod[ refLayerIdInVps ] == 0 );
+#endif
                 Bool refLayerZero   = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 );
+#if HHI_INTER_COMP_PRED_K0052
+                // refAlwaysIntra actually not needed, since TemporalIds need to be aligned within an AU. 
+                // Thus, reference pictures of IRAP pictures have TemporalId equal to 0.
+                maxTid = std::max( maxTid, refLayerZero ? 0 : geRef.m_temporalId ); 
+#else
                 maxTid = std::max( maxTid, ( refAlwaysIntra || refLayerZero ) ? 0 : geRef.m_temporalId ); 
+#endif
               }
             }
@@ -1428,4 +1513,44 @@
         else
         {        
+#if HHI_INTER_COMP_PRED_K0052
+          if( m_depthFlag[ curLayerIdInVps ] && ( m_mpiFlag|| m_qtPredFlag || m_intraContourFlag ) ) 
+          {          
+            Int nuhLayerIdTex = vps.getLayerIdInNuh( vps.getViewIndex( curLayerIdInNuh ), false ); 
+            if ( nuhLayerIdTex == refLayerIdInNuh )
+            {
+              for( Int i = 0; i < ( getGOPSize() + 1); i++ ) 
+              {        
+                GOPEntry geCur =  m_GOPListMvc[curLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
+                GOPEntry geRef =  m_GOPListMvc[refLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
+                if ( geCur.m_interCompPredFlag )
+                {
+                  Bool refLayerZero   = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 );
+                  maxTid = std::max( maxTid, refLayerZero ? 0 : geRef.m_temporalId ); 
+                }
+              }
+            }
+          }
+          if( !m_depthFlag[ curLayerIdInVps ] && vps.getNumRefListLayers( curLayerIdInNuh) > 0  && ( m_depthRefinementFlag || m_viewSynthesisPredFlag || m_depthBasedBlkPartFlag ) ) 
+          {             
+            for( Int i = 0; i < ( getGOPSize() + 1); i++ ) 
+            {        
+              GOPEntry geCur =  m_GOPListMvc[curLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
+              GOPEntry geRef =  m_GOPListMvc[refLayerIdInVps][( i < getGOPSize()  ? i : MAX_GOP )];
+
+              if ( geCur.m_interCompPredFlag )
+              {
+                for (Int j = 0; j < geCur.m_numActiveRefLayerPics; j++ )
+                {
+                  Int nuhLayerIdDep = vps.getLayerIdInNuh( vps.getViewIndex( vps.getIdRefListLayer( curLayerIdInNuh, geCur.m_interLayerPredLayerIdc[j] ) ), true ); 
+                  if ( nuhLayerIdDep == refLayerIdInNuh )
+                  {
+                    Bool refLayerZero   = ( i == getGOPSize() ) && ( refLayerIdInVps == 0 );
+                    maxTid = std::max( maxTid, refLayerZero ? 0 : geRef.m_temporalId ); 
+                  }
+                }
+              }
+            }
+          }        
+#else
           if( m_depthFlag[ curLayerIdInVps ] && ( m_mpiFlag|| m_qtPredFlag || m_intraContourFlag ) ) 
           {          
@@ -1458,10 +1583,11 @@
             }
           }        
+#endif
         }
-      }
+      } // if ( vps.getDirectDependencyFlag( curLayerIdInVps, refLayerIdInVps ) ) 
       vps.setMaxTidIlRefPicsPlus1( refLayerIdInVps, curLayerIdInVps, maxTid + 1 );
 #endif
-    }    
-  }
+    }  // Loop curLayerIdInVps
+  } // Loop refLayerIdInVps
 
   // Max temporal id for inter layer reference pictures presence flag
@@ -1673,4 +1799,51 @@
 Void TAppEncTop::xSetRepFormat( TComVPS& vps )
 {
+
+#if H_3D_DISABLE_CHROMA
+  Bool anyDepth = false; 
+  for ( Int i = 0; i < m_numberOfLayers; i++ )
+  {
+    vps.setVpsRepFormatIdx( i, m_depthFlag[ i ] ? 1 : 0 );
+    anyDepth = anyDepth || m_depthFlag[ i ]; 
+  }  
+
+  vps.setRepFormatIdxPresentFlag( anyDepth ); 
+  vps.setVpsNumRepFormatsMinus1 ( anyDepth ? 1 : 0  ); 
+
+  for ( Int j = 0; j <= vps.getVpsNumRepFormatsMinus1(); j++ )
+  {
+    TComRepFormat* repFormat = new TComRepFormat; 
+
+    repFormat->setBitDepthVpsChromaMinus8   ( g_bitDepthC - 8 ); 
+    repFormat->setBitDepthVpsLumaMinus8     ( g_bitDepthY - 8 );
+    repFormat->setChromaFormatVpsIdc        ( j == 1 ? CHROMA_400 : CHROMA_420 );
+    repFormat->setPicHeightVpsInLumaSamples ( m_iSourceHeight );
+    repFormat->setPicWidthVpsInLumaSamples  ( m_iSourceWidth  );    
+    repFormat->setChromaAndBitDepthVpsPresentFlag( true );    
+    // ToDo not supported yet. 
+    //repFormat->setSeparateColourPlaneVpsFlag( );
+#if H_MV_FIX_CONF_WINDOW
+    Bool conformanceWindowVpsFlag = ( m_confWinBottom != 0 ) || ( m_confWinRight != 0 ) || ( m_confWinTop != 0 ) || ( m_confWinBottom != 0 ); 
+    repFormat->setConformanceWindowVpsFlag( conformanceWindowVpsFlag );
+    if ( conformanceWindowVpsFlag ) 
+    {   
+      repFormat->setConfWinVpsLeftOffset    ( m_confWinLeft   / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) );
+      repFormat->setConfWinVpsRightOffset   ( m_confWinRight  / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() )  );
+      repFormat->setConfWinVpsTopOffset     ( m_confWinTop    / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() )  );
+      repFormat->setConfWinVpsBottomOffset  ( m_confWinBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 
+    }
+#else
+    repFormat->setConformanceWindowVpsFlag( true );
+    repFormat->setConfWinVpsLeftOffset    ( m_confWinLeft   / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() ) );
+    repFormat->setConfWinVpsRightOffset   ( m_confWinRight  / TComSPS::getWinUnitX( repFormat->getChromaFormatVpsIdc() )  );
+    repFormat->setConfWinVpsTopOffset     ( m_confWinTop    / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() )  );
+    repFormat->setConfWinVpsBottomOffset  ( m_confWinBottom / TComSPS::getWinUnitY( repFormat->getChromaFormatVpsIdc() ) ); 
+#endif
+    assert( vps.getRepFormat( j ) == NULL ); 
+    vps.setRepFormat( j , repFormat );
+  }; 
+
+
+#else
   vps.setRepFormatIdxPresentFlag( false ); 
   vps.setVpsNumRepFormatsMinus1 ( 0    ); 
@@ -1701,4 +1874,5 @@
   assert( vps.getRepFormat( 0 ) == NULL ); 
   vps.setRepFormat( 0 , repFormat );
+#endif
 }
 
@@ -2075,4 +2249,43 @@
   }
 }
+
+#if HHI_CAM_PARA_K0052
+#if H_3D
+Void TAppEncTop::xSetCamPara                ( TComVPS& vps )
+{
+  vps.setCpPrecision( m_cCameraData.getCamParsCodedPrecision()); 
+
+  for ( Int n = 1; n < vps.getNumViews(); n++ )
+  {  
+    Int i      = vps.getViewOIdxList( n ); 
+    Int iInVps = vps.getVoiInVps    ( i ); 
+    vps.setNumCp( iInVps,  n);   
+
+    if ( vps.getNumCp( iInVps ) > 0 )
+    {
+      vps.setCpInSliceSegmentHeaderFlag( iInVps, m_cCameraData.getVaryingCameraParameters() );
+
+      for( Int m = 0; m < vps.getNumCp( iInVps ); m++ )
+      {
+        vps.setCpRefVoi( iInVps, m, vps.getViewOIdxList( m ) ); 
+        if( !vps.getCpInSliceSegmentHeaderFlag( iInVps ) ) 
+        {
+          Int j = vps.getCpRefVoi( iInVps, m );
+          Int jInVps = vps.getVoiInVps( j );         
+
+          vps.setVpsCpScale   ( iInVps, jInVps, m_cCameraData.getCodedScale() [ jInVps ][ iInVps ] ) ;
+          vps.setVpsCpInvScale( iInVps, jInVps, m_cCameraData.getCodedScale() [ iInVps ][ jInVps ] ) ;
+          vps.setVpsCpOff     ( iInVps, jInVps, m_cCameraData.getCodedOffset()[ jInVps ][ iInVps ] ) ;
+          vps.setVpsCpInvOff  ( iInVps, jInVps, m_cCameraData.getCodedOffset()[ iInVps ][ jInVps ] ) ;
+        }
+      }
+    }
+  }
+  vps.deriveCpPresentFlag(); 
+}
+#endif
+#endif
+
+
 Bool TAppEncTop::xLayerIdInTargetEncLayerIdList(Int nuhLayerId)
 {
Index: trunk/source/App/TAppEncoder/TAppEncTop.h
===================================================================
--- trunk/source/App/TAppEncoder/TAppEncTop.h	(revision 1133)
+++ trunk/source/App/TAppEncoder/TAppEncTop.h	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
-* Copyright (c) 2010-2014, ITU/ISO/IEC
+* Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
@@ -142,4 +142,9 @@
   Void xSetDpbSize                ( TComVPS& vps );
   Void xSetVPSVUI                 ( TComVPS& vps );
+#if HHI_CAM_PARA_K0052
+#if H_3D
+  Void xSetCamPara                ( TComVPS& vps );
+#endif
+#endif
   GOPEntry* xGetGopEntry( Int layerIdInVps, Int poc );
   Int  xGetMax( std::vector<Int>& vec);
Index: trunk/source/App/TAppEncoder/encmain.cpp
===================================================================
--- trunk/source/App/TAppEncoder/encmain.cpp	(revision 1133)
+++ trunk/source/App/TAppEncoder/encmain.cpp	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
-* Copyright (c) 2010-2014, ITU/ISO/IEC
+* Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppExtractor/TAppExtrCfg.cpp
===================================================================
--- trunk/source/App/TAppExtractor/TAppExtrCfg.cpp	(revision 1133)
+++ trunk/source/App/TAppExtractor/TAppExtrCfg.cpp	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
- * Copyright (c) 2010-2011, ISO/IEC
+ * Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppExtractor/TAppExtrCfg.h
===================================================================
--- trunk/source/App/TAppExtractor/TAppExtrCfg.h	(revision 1133)
+++ trunk/source/App/TAppExtractor/TAppExtrCfg.h	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
- * Copyright (c) 2010-2011, ISO/IEC
+ * Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppExtractor/TAppExtrTop.cpp
===================================================================
--- trunk/source/App/TAppExtractor/TAppExtrTop.cpp	(revision 1133)
+++ trunk/source/App/TAppExtractor/TAppExtrTop.cpp	(revision 1179)
@@ -4,5 +4,5 @@
 // * granted under this license.  
 // *
-// * Copyright (c) 2010-2011, ISO/IEC
+// * Copyright (c) 2010-2015, ITU/ISO/IEC
 // * All rights reserved.
 // *
Index: trunk/source/App/TAppExtractor/TAppExtrTop.h
===================================================================
--- trunk/source/App/TAppExtractor/TAppExtrTop.h	(revision 1133)
+++ trunk/source/App/TAppExtractor/TAppExtrTop.h	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
- * Copyright (c) 2010-2011, ISO/IEC
+ * Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppExtractor/extrmain.cpp
===================================================================
--- trunk/source/App/TAppExtractor/extrmain.cpp	(revision 1133)
+++ trunk/source/App/TAppExtractor/extrmain.cpp	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.  
  *
- * Copyright (c) 2010-2011, ISO/IEC
+ * Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppRenderer/RendererMain.cpp
===================================================================
--- trunk/source/App/TAppRenderer/RendererMain.cpp	(revision 1133)
+++ trunk/source/App/TAppRenderer/RendererMain.cpp	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.
  *
- * Copyright (c) 2010-2011, ISO/IEC
+ * Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppRenderer/TAppRendererCfg.cpp
===================================================================
--- trunk/source/App/TAppRenderer/TAppRendererCfg.cpp	(revision 1133)
+++ trunk/source/App/TAppRenderer/TAppRendererCfg.cpp	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.
  *
- * Copyright (c) 2010-2011, ISO/IEC
+ * Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppRenderer/TAppRendererCfg.h
===================================================================
--- trunk/source/App/TAppRenderer/TAppRendererCfg.h	(revision 1133)
+++ trunk/source/App/TAppRenderer/TAppRendererCfg.h	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.
  *
- * Copyright (c) 2010-2011, ISO/IEC
+ * Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppRenderer/TAppRendererTop.cpp
===================================================================
--- trunk/source/App/TAppRenderer/TAppRendererTop.cpp	(revision 1133)
+++ trunk/source/App/TAppRenderer/TAppRendererTop.cpp	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.
  *
- * Copyright (c) 2010-2011, ISO/IEC
+ * Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
Index: trunk/source/App/TAppRenderer/TAppRendererTop.h
===================================================================
--- trunk/source/App/TAppRenderer/TAppRendererTop.h	(revision 1133)
+++ trunk/source/App/TAppRenderer/TAppRendererTop.h	(revision 1179)
@@ -4,5 +4,5 @@
  * granted under this license.
  *
- * Copyright (c) 2010-2011, ISO/IEC
+ * Copyright (c) 2010-2015, ITU/ISO/IEC
  * All rights reserved.
  *
