Index: branches/HTM-14.1-update-dev0/source/App/TAppRenderer/RendererMain.cpp
===================================================================
--- branches/HTM-14.1-update-dev0/source/App/TAppRenderer/RendererMain.cpp	(revision 1199)
+++ branches/HTM-14.1-update-dev0/source/App/TAppRenderer/RendererMain.cpp	(revision 1200)
@@ -34,6 +34,6 @@
 
 #include <time.h>
-#include "../../Lib/TLibCommon/TypeDef.h"
-#if H_3D
+#include "../../Lib/TLibCommon/CommonDef.h"
+#if NH_3D
 #include "TAppRendererTop.h"
 // ====================================================================================================================
@@ -89,4 +89,4 @@
 }
 
-#endif // H_3D
+#endif // NH_3D
 
Index: branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererCfg.cpp
===================================================================
--- branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererCfg.cpp	(revision 1199)
+++ branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererCfg.cpp	(revision 1200)
@@ -44,5 +44,5 @@
 #include "../../Lib/TAppCommon/program_options_lite.h"
 
-#if H_3D
+#if NH_3D
 
 using namespace std;
@@ -131,11 +131,11 @@
     ("SynthOutputFile_%d,s_%d", m_pchSynthOutputFileList,    (Char *) 0, MAX_OUTPUT_VIEW_NUM, "Synthesized Yuv output file name %d")
 
-    ("InputBitDepth",           m_inputBitDepthY,                     8, "Bit-depth of input file")
-    ("OutputBitDepth",          m_outputBitDepthY,                    0, "Bit-depth of output file (default:InternalBitDepth)")
-    ("InternalBitDepth",        m_internalBitDepthY,                  0, "Bit-depth the renderer operates at. (default:InputBitDepth)"                                                                          "If different to InputBitDepth, source data will be converted")
-
-    ("InputBitDepthC",        m_inputBitDepthC,    0, "As per InputBitDepth but for chroma component. (default:InputBitDepth)")
-    ("OutputBitDepthC",       m_outputBitDepthC,   0, "As per OutputBitDepth but for chroma component. (default:InternalBitDepthC)")
-    ("InternalBitDepthC",     m_internalBitDepthC, 0, "As per InternalBitDepth but for chroma component. (default:IntrenalBitDepth)")
+    ("InputBitDepth",           m_inputBitDepth[0],                     8, "Bit-depth of input file")
+    ("OutputBitDepth",          m_outputBitDepth[0],                    0, "Bit-depth of output file (default:InternalBitDepth)")
+    ("InternalBitDepth",        m_internalBitDepth[0],                  0, "Bit-depth the renderer operates at. (default:InputBitDepth)"                                                                          "If different to InputBitDepth, source data will be converted")
+
+    ("InputBitDepthC",        m_inputBitDepth[1],    0, "As per InputBitDepth but for chroma component. (default:InputBitDepth)")
+    ("OutputBitDepthC",       m_outputBitDepth[1],   0, "As per OutputBitDepth but for chroma component. (default:InternalBitDepthC)")
+    ("InternalBitDepthC",     m_internalBitDepth[1], 0, "As per InternalBitDepth but for chroma component. (default:IntrenalBitDepth)")
 
     /* Source Specification */
@@ -186,11 +186,9 @@
 
   /* rules for input, output and internal bitdepths as per help text */
-  if (!m_internalBitDepthY) { m_internalBitDepthY = m_inputBitDepthY; }
-  if (!m_internalBitDepthC) { m_internalBitDepthC = m_internalBitDepthY; }
-  if (!m_inputBitDepthC)    { m_inputBitDepthC    = m_inputBitDepthY; }
-  if (!m_outputBitDepthY)   { m_outputBitDepthY   = m_internalBitDepthY; }
-  if (!m_outputBitDepthC)   { m_outputBitDepthC   = m_internalBitDepthC; }
-
-  xSetGlobal();
+  if (!m_internalBitDepth[0]) { m_internalBitDepth[0] = m_inputBitDepth[0]; }
+  if (!m_internalBitDepth[1]) { m_internalBitDepth[1] = m_internalBitDepth[0]; }
+  if (!m_inputBitDepth[1])    { m_inputBitDepth[1]    = m_inputBitDepth[0]; }
+  if (!m_outputBitDepth[0])   { m_outputBitDepth[0]   = m_internalBitDepth[0]; }
+  if (!m_outputBitDepth[1])   { m_outputBitDepth[1]   = m_internalBitDepth[1]; }
 
   UInt  uiInputBitDepth   = 8;
@@ -275,7 +273,7 @@
 
   // bit depth 
-  xConfirmPara( m_internalBitDepthC != m_internalBitDepthY,  "InternalBitDepth for luma and chroma must be equal. "); 
-  xConfirmPara( m_inputBitDepthY < 8,                        "InputBitDepth must be at least 8" );
-  xConfirmPara( m_inputBitDepthC < 8,                        "InputBitDepthC must be at least 8" );
+  xConfirmPara( m_internalBitDepth[0] != m_internalBitDepth[1],  "InternalBitDepth for luma and chroma must be equal. "); 
+  xConfirmPara( m_inputBitDepth[0] < 8,                        "InputBitDepth must be at least 8" );
+  xConfirmPara( m_inputBitDepth[1] < 8,                        "InputBitDepthC must be at least 8" );
 
   // camera specification
@@ -504,5 +502,5 @@
 }
 
-Void TAppRendererCfg::xGetMaxPrecision( std::vector< Int > aiIn, Int& iPrecBefore, Int& iPrecAfter )
+Void TAppRendererCfg::xGetMaxPrecision( IntAry1d aiIn, Int& iPrecBefore, Int& iPrecAfter )
 {
   iPrecBefore = 0;
@@ -525,10 +523,3 @@
 }
 
-Void TAppRendererCfg::xSetGlobal()
-{
-  // set max CU width & height  
-  g_uiMaxCUWidth   = 0;
-  g_uiMaxCUHeight  = 0;  
-}
-
 #endif
Index: branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererCfg.h
===================================================================
--- branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererCfg.h	(revision 1199)
+++ branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererCfg.h	(revision 1200)
@@ -47,5 +47,5 @@
 #include <vector>
 
-#if H_3D
+#if NH_3D
 
 // ====================================================================================================================
@@ -66,11 +66,8 @@
 
 
-  // bit-depth      ( Currently interal luma and chroma bit-depth are required to be equal. )
-  Int                m_inputBitDepthY;                 ///< bit-depth of input file (luma component)
-  Int                m_inputBitDepthC;                 ///< bit-depth of input file (chroma component)
-  Int                m_outputBitDepthY;                ///< bit-depth of output file (luma component)
-  Int                m_outputBitDepthC;                ///< bit-depth of output file (chroma component)
-  Int                m_internalBitDepthY;              ///< bit-depth renderer operates at in luma (input/output files will be converted)
-  Int                m_internalBitDepthC;              ///< bit-depth renderer operates at in chroma (input/output files will be converted)
+  // bit-depth      ( Currently internal, output and input luma and chroma bit-depth are required to be equal to 8 )
+  Int                m_inputBitDepth[2];               ///< bit-depth of input file (luma/chroma component)  
+  Int                m_outputBitDepth[2];              ///< bit-depth of output file (luma/chroma component)    
+  Int                m_internalBitDepth[2];            ///< bit-depth renderer operates at in luma/chroma (input/output files will be converted)
 
 
@@ -123,8 +120,7 @@
   Void xPrintParameter ();                              ///< print configuration values
   Void xPrintUsage     ();                              ///< print usage
-  Void xSetGlobal();
 
   Void xCreateFileNames();
-  Void xGetMaxPrecision( std::vector< Int > adIn, Int& iPrecBefore, Int& iPrecAfter );
+  Void xGetMaxPrecision( IntAry1d adIn, Int& iPrecBefore, Int& iPrecAfter );
   Void xAddNumberToFileName( Char* pchSourceFileName, Char*& rpchTargetFileName, Int iNumberToAdd, UInt uiPrecBefore, UInt uiPrecAfter );
 public:
@@ -142,3 +138,3 @@
 
 #endif // __TAppRENDERERCFG__
-#endif // H_3D
+#endif // NH_3D
Index: branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererTop.cpp
===================================================================
--- branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererTop.cpp	(revision 1199)
+++ branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererTop.cpp	(revision 1200)
@@ -41,5 +41,5 @@
 #include "TAppRendererTop.h"
 
-#if H_3D
+#if NH_3D
 
 // ====================================================================================================================
@@ -67,8 +67,10 @@
     TVideoIOYuv* pcDepthInput = new TVideoIOYuv;
 
-    pcVideoInput->open( m_pchVideoInputFileList[iViewIdx], false, m_inputBitDepthY, m_inputBitDepthC, m_internalBitDepthY, m_internalBitDepthC);  // read mode
-    pcDepthInput->open( m_pchDepthInputFileList[iViewIdx], false, m_inputBitDepthY, m_inputBitDepthC, m_internalBitDepthY, m_internalBitDepthC  );  // read mode
-    pcVideoInput->skipFrames(m_iFrameSkip, m_iSourceWidth, m_iSourceHeight  );
-    pcDepthInput->skipFrames(m_iFrameSkip, m_iSourceWidth, m_iSourceHeight  );
+//    ( Char* pchFile, Bool bWriteMode, const Int fileBitDepth[MAX_NUM_CHANNEL_TYPE], const Int MSBExtendedBitDepth[MAX_NUM_CHANNEL_TYPE], const Int internalBitDepth[MAX_NUM_CHANNEL_TYPE] )
+
+    pcVideoInput->open( m_pchVideoInputFileList[iViewIdx], false, m_inputBitDepth, m_internalBitDepth, m_internalBitDepth );  // read mode
+    pcDepthInput->open( m_pchDepthInputFileList[iViewIdx], false, m_inputBitDepth, m_internalBitDepth, m_internalBitDepth );  // read mode
+    pcVideoInput->skipFrames(m_iFrameSkip, m_iSourceWidth, m_iSourceHeight, CHROMA_420 );
+    pcDepthInput->skipFrames(m_iFrameSkip, m_iSourceWidth, m_iSourceHeight, CHROMA_420 );
 
     m_apcTVideoIOYuvVideoInput.push_back( pcVideoInput );
@@ -79,5 +81,5 @@
   {
     TVideoIOYuv* pcSynthOutput = new TVideoIOYuv;
-    pcSynthOutput->open( m_pchSynthOutputFileList[iViewIdx], true, m_outputBitDepthY, m_outputBitDepthC, m_internalBitDepthY, m_internalBitDepthC );  // write mode
+    pcSynthOutput->open( m_pchSynthOutputFileList[iViewIdx], true, m_outputBitDepth, m_internalBitDepth, m_internalBitDepth );  // write mode
     m_apcTVideoIOYuvSynthOutput.push_back( pcSynthOutput );
   }
@@ -148,4 +150,7 @@
   Int aiPad[2] = { 0, 0 };
 
+  TComPicYuv* pcNewOrg = new TComPicYuv;
+  pcNewOrg->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
+
   for ( UInt uiBaseView = 0; uiBaseView < m_iNumberOfInputViews; uiBaseView++ )
   {
@@ -153,8 +158,8 @@
     TComPicYuv* pcNewDepthPic = new TComPicYuv;
 
-    pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+    pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
     apcPicYuvBaseVideo.push_back(pcNewVideoPic);
 
-    pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+    pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true);
     apcPicYuvBaseDepth.push_back(pcNewDepthPic);
 
@@ -165,8 +170,8 @@
       pcNewDepthPic = new TComPicYuv;
 
-      pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+      pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
       apcPicYuvLastBaseVideo.push_back(pcNewVideoPic);
 
-      pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+      pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
       apcPicYuvLastBaseDepth.push_back(pcNewDepthPic);
     }
@@ -175,5 +180,5 @@
   // Create Buffer for synthesized View
   TComPicYuv* pcPicYuvSynthOut = new TComPicYuv;
-  pcPicYuvSynthOut->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+  pcPicYuvSynthOut->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
 
   Bool bAnyEOS = false;
@@ -189,5 +194,5 @@
       for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
       {
-        m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
+        m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx],pcNewOrg, IPCOLOURSPACE_UNCHANGED, aiPad, CHROMA_420  ) ;
 
         apcPicYuvBaseVideo[iBaseViewIdx]->extendPicBorder();
@@ -195,5 +200,5 @@
         bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
 
-        m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
+        m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx],pcNewOrg, IPCOLOURSPACE_UNCHANGED, aiPad, CHROMA_420  ) ;
         apcPicYuvBaseDepth[iBaseViewIdx]->extendPicBorder();
         bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
@@ -428,5 +433,5 @@
       // Write Output
 
-      m_apcTVideoIOYuvSynthOutput[m_bSweep ? 0 : iSynthViewIdx]->write( pcPicYuvSynthOut, 0, 0, 0, 0 );
+      m_apcTVideoIOYuvSynthOutput[m_bSweep ? 0 : iSynthViewIdx]->write( pcPicYuvSynthOut, IPCOLOURSPACE_UNCHANGED, 0, 0, 0, 0, CHROMA_420 );
     }
     iFrame++;
@@ -435,4 +440,7 @@
 
   // Delete Buffers
+  pcNewOrg->destroy(); 
+  delete pcNewOrg; 
+
   for ( UInt uiBaseView = 0; uiBaseView < m_iNumberOfInputViews; uiBaseView++ )
   {
@@ -468,5 +476,5 @@
     render();
     break;
-#if H_3D_VSO
+#if NH_3D_VSO
   case 1:
     renderModel();
@@ -490,5 +498,5 @@
 }
 
-#if H_3D_VSO
+#if NH_3D_VSO
 Void TAppRendererTop::renderModel()
 {
@@ -520,12 +528,14 @@
       TComPicYuv* pcNewDepthPic = new TComPicYuv;
 
-      pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+      pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
       apcPicYuvBaseVideo.push_back(pcNewVideoPic);
 
-      pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+      pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
       apcPicYuvBaseDepth.push_back(pcNewDepthPic);
     }
 
     Int aiPad[2] = { 0, 0 };
+    TComPicYuv* pcNewOrg = new TComPicYuv;
+    pcNewOrg->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
 
     // Init Model
@@ -550,5 +560,4 @@
         m_cRenModStrParser.getSingleModelData  ( iViewIdx, 1, iCurModel, iModelNum, iBlendMode, iLeftViewNum, iRightViewNum, iOrgRefNum, iDump ) ;
         cCurModel         .createSingleModel   ( iViewIdx, 1, iModelNum, iLeftViewNum, iRightViewNum, false, iBlendMode );
-
       }
     }
@@ -556,5 +565,5 @@
     // Create Buffer for synthesized View
     TComPicYuv* pcPicYuvSynthOut = new TComPicYuv;
-    pcPicYuvSynthOut->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+    pcPicYuvSynthOut->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
 
     Bool bAnyEOS = false;
@@ -571,8 +580,8 @@
         for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
         {
-          m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
+          m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], pcNewOrg, IPCOLOURSPACE_UNCHANGED, aiPad, CHROMA_420  ) ;
           bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
 
-          m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
+          m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], pcNewOrg, IPCOLOURSPACE_UNCHANGED, aiPad, CHROMA_420  ) ;
           bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
         }
@@ -672,5 +681,5 @@
 
           // Write Output
-          m_apcTVideoIOYuvSynthOutput[m_bSweep ? 0 : iModelNum]->write( pcPicYuvSynthOut, 0 ,0 ,0, 0 );
+          m_apcTVideoIOYuvSynthOutput[m_bSweep ? 0 : iModelNum]->write( pcPicYuvSynthOut, IPCOLOURSPACE_UNCHANGED,  0 ,0 ,0, 0, CHROMA_420 );
         }
       }
@@ -706,4 +715,7 @@
 
   Int aiPad[2] = { 0, 0 };
+  TComPicYuv* pcNewOrg = new TComPicYuv;
+  pcNewOrg->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
+
 
   // Init Model
@@ -711,5 +723,5 @@
 
   AOT( m_iLog2SamplingFactor != 0 );
-  cCurModel.setupPart( 0, m_iSourceHeight  ); 
+
 #if H_3D_VSO_EARLY_SKIP
   cCurModel.create( m_iNumberOfInputViews, m_iNumberOfOutputViews, m_iSourceWidth, m_iSourceHeight, m_iShiftPrecision, m_iBlendHoleMargin, false );
@@ -717,4 +729,5 @@
   cCurModel.create( m_iNumberOfInputViews, m_iNumberOfOutputViews, m_iSourceWidth, m_iSourceHeight, m_iShiftPrecision, m_iBlendHoleMargin );
 #endif
+  cCurModel.setupPart( 0, m_iSourceHeight  ); 
 
   for ( UInt uiBaseView = 0; uiBaseView < m_iNumberOfInputViews; uiBaseView++ )
@@ -723,8 +736,8 @@
     TComPicYuv* pcNewDepthPic = new TComPicYuv;
 
-    pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+    pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
     apcPicYuvBaseVideo.push_back(pcNewVideoPic);
 
-    pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+    pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
     apcPicYuvBaseDepth.push_back(pcNewDepthPic);
   }
@@ -768,5 +781,5 @@
   // Create Buffer for synthesized View
   TComPicYuv* pcPicYuvSynthOut = new TComPicYuv;
-  pcPicYuvSynthOut->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+  pcPicYuvSynthOut->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
 
   Bool bAnyEOS = false;
@@ -783,8 +796,8 @@
       for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
       {
-        m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
+        m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], pcNewOrg, IPCOLOURSPACE_UNCHANGED, aiPad, CHROMA_420  ) ;
         bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
 
-        m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
+        m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], pcNewOrg, IPCOLOURSPACE_UNCHANGED, aiPad, CHROMA_420  ) ;
         bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
 
@@ -871,5 +884,5 @@
 
       // Write Output
-      m_apcTVideoIOYuvSynthOutput[m_bSweep ? 0 : iSynthViewIdx]->write( pcPicYuvSynthOut, 0, 0, 0, 0 );
+      m_apcTVideoIOYuvSynthOutput[m_bSweep ? 0 : iSynthViewIdx]->write( pcPicYuvSynthOut, IPCOLOURSPACE_UNCHANGED,  0 ,0 ,0, 0, CHROMA_420 );
     }
     iFrame++;
@@ -909,4 +922,7 @@
   Int aiPad[2] = { 0, 0 };
 
+  TComPicYuv* pcNewOrg = new TComPicYuv;
+  pcNewOrg->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
+
   for ( UInt uiBaseView = 0; uiBaseView < m_iNumberOfInputViews; uiBaseView++ )
   {
@@ -914,9 +930,10 @@
     TComPicYuv* pcNewDepthPic = new TComPicYuv;
 
-    pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+    pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight,CHROMA_420, 1, 1, 1, true );
     apcPicYuvBaseVideo.push_back(pcNewVideoPic);
 
-    pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+    pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1, true );
     apcPicYuvBaseDepth.push_back(pcNewDepthPic);
+
 
     //Temporal improvement Filter
@@ -926,8 +943,8 @@
       pcNewDepthPic = new TComPicYuv;
 
-      pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+      pcNewVideoPic->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1, 1 , true);
       apcPicYuvLastBaseVideo.push_back(pcNewVideoPic);
 
-      pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+      pcNewDepthPic->create( m_iSourceWidth, m_iSourceHeight,CHROMA_420, 1, 1, 1 , true);
       apcPicYuvLastBaseDepth.push_back(pcNewDepthPic);
     }
@@ -936,5 +953,5 @@
   // Create Buffer for synthesized View
   TComPicYuv* pcPicYuvSynthOut = new TComPicYuv;
-  pcPicYuvSynthOut->create( m_iSourceWidth, m_iSourceHeight, 1, 1, 1 );
+  pcPicYuvSynthOut->create( m_iSourceWidth, m_iSourceHeight, CHROMA_420, 1, 1 ,1, true);
 
   Bool bAnyEOS = false;
@@ -950,9 +967,9 @@
       for(Int iBaseViewIdx=0; iBaseViewIdx < m_iNumberOfInputViews; iBaseViewIdx++ )
       {
-        m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], aiPad  ) ;
+        m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->read( apcPicYuvBaseVideo[iBaseViewIdx], pcNewOrg, IPCOLOURSPACE_UNCHANGED,  aiPad, CHROMA_420  ) ;
         apcPicYuvBaseVideo[iBaseViewIdx]->extendPicBorder();
         bAnyEOS |= m_apcTVideoIOYuvVideoInput[iBaseViewIdx]->isEof();
 
-        m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], aiPad  ) ;
+        m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->read( apcPicYuvBaseDepth[iBaseViewIdx], pcNewOrg, IPCOLOURSPACE_UNCHANGED,  aiPad, CHROMA_420  ) ;
         apcPicYuvBaseDepth[iBaseViewIdx]->extendPicBorder();
         bAnyEOS |= m_apcTVideoIOYuvDepthInput[iBaseViewIdx]->isEof();
@@ -997,5 +1014,5 @@
 
       // Write Output
-      m_apcTVideoIOYuvSynthOutput[iViewIdx-1]->write( pcPicYuvSynthOut, 0, 0, 0 );
+      m_apcTVideoIOYuvSynthOutput[iViewIdx-1]->write( pcPicYuvSynthOut,  IPCOLOURSPACE_UNCHANGED, 0, 0, 0, 0, CHROMA_420 );
 
     }
@@ -1005,4 +1022,8 @@
 
   // Delete Buffers
+
+  pcNewOrg->destroy(); 
+  delete pcNewOrg; 
+
   for ( UInt uiBaseView = 0; uiBaseView < m_iNumberOfInputViews; uiBaseView++ )
   {
Index: branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererTop.h
===================================================================
--- branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererTop.h	(revision 1199)
+++ branches/HTM-14.1-update-dev0/source/App/TAppRenderer/TAppRendererTop.h	(revision 1200)
@@ -39,6 +39,6 @@
 #ifndef __TAppRendererTOP__
 #define __TAppRendererTOP__
-#include "../../Lib/TLibCommon/TypeDef.h"
-#if H_3D
+#include "../../Lib/TLibCommon/CommonDef.h"
+#if NH_3D
 #include "../../Lib/TLibRenderer/TRenTop.h"
 #include "../../Lib/TLibVideoIO/TVideoIOYuv.h"
@@ -68,5 +68,5 @@
   Void  xInitLib          ();                               ///< initialize renderer class
   Void  xDestroyLib       ();                               ///< destroy renderer class and video io
-#if H_3D_VSO
+#if NH_3D_VSO
   Void  xRenderModelFromString();                           ///< render using model using setup string
   Void  xRenderModelFromNums();                             ///< render using model using synth view numbers
@@ -78,5 +78,5 @@
 
   Void  render      ();                               ///< main encoding function
-#if H_3D_VSO
+#if NH_3D_VSO
   Void  renderModel ();
 #endif
@@ -87,4 +87,4 @@
 
 
-#endif // H_3D
+#endif // NH_3D
 #endif // __TAppRendererTOP__
