Index: branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/RendererMain.cpp
===================================================================
--- branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/RendererMain.cpp	(revision 438)
+++ branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/RendererMain.cpp	(revision 446)
@@ -33,8 +33,8 @@
 
 
-
 #include <time.h>
+#include "../../Lib/TLibCommon/TypeDef.h"
+#if H_3D
 #include "TAppRendererTop.h"
-
 // ====================================================================================================================
 // Main function
@@ -43,5 +43,5 @@
 int main(int argc, char* argv[])
   {
-#if !QC_MVHEVC_B0046
+
   TAppRendererTop  cTAppRendererTop;
 
@@ -79,6 +79,14 @@
 
   return 0;
-#endif
+}
+#else
+
+#include <iostream>
+int main(int argc, char* argv[])
+{
+  std::cout << "Set H_3D equal to 1 in TypeDef.h to build renderer. " << std::endl; 
+  return 1; 
 }
 
+#endif // H_3D
 
Index: branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererCfg.cpp
===================================================================
--- branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererCfg.cpp	(revision 438)
+++ branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererCfg.cpp	(revision 446)
@@ -34,4 +34,5 @@
 
 
+
 #include <stdlib.h>
 #include <math.h>
@@ -40,9 +41,8 @@
 #include <string>
 
-
-
 #include "TAppRendererCfg.h"
 #include "../../Lib/TAppCommon/program_options_lite.h"
 
+#if H_3D
 
 using namespace std;
@@ -59,8 +59,9 @@
 // Constructor / destructor / initialization / destroy
 // ====================================================================================================================
-#if !QC_MVHEVC_B0046
+
+
 TAppRendererCfg::TAppRendererCfg()
 {
-
+  
 }
 
@@ -129,4 +130,12 @@
     ("DepthInputFile_%d,d_%d",  m_pchDepthInputFileList ,    (Char *) 0, MAX_INPUT_VIEW_NUM , "Original Yuv depth input file name %d")
     ("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)")
 
     /* Source Specification */
@@ -176,4 +185,11 @@
   */
 
+  /* 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();
 
@@ -258,4 +274,8 @@
   xConfirmPara( m_iFramesToBeRendered <  0,                   "Total Number Of Frames rendered must be more than 1" );
 
+  // 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" );
 
   // camera specification
@@ -500,5 +520,5 @@
     iCurPrec = 0;
     for ( Int iCur = 1;  aiIn[uiK] % iCur == 0; iCur *= 10, iCurPrec++);
-    iCurPrec = LOG10_VIEW_NUM_PREC - Min(LOG10_VIEW_NUM_PREC, iCurPrec-1 );
+    iCurPrec = LOG10_VIEW_NUM_PREC - std::min((Int) LOG10_VIEW_NUM_PREC, iCurPrec-1 );
     iPrecAfter = max(iPrecAfter, iCurPrec );
   }
@@ -507,12 +527,8 @@
 Void TAppRendererCfg::xSetGlobal()
 {
-  // set max CU width & height
-  Int iInternalBitDepth = 8;
+  // set max CU width & height  
   g_uiMaxCUWidth   = 0;
-  g_uiMaxCUHeight  = 0;
-  g_uiBitDepth     = 8;
-  g_uiBitIncrement = iInternalBitDepth - g_uiBitDepth;
-  g_uiBASE_MAX     = ((1<<(g_uiBitDepth))-1);
-  g_uiIBDI_MAX     = ((1<<(g_uiBitDepth+g_uiBitIncrement))-1);
-}
+  g_uiMaxCUHeight  = 0;  
+}
+
 #endif
Index: branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererCfg.h
===================================================================
--- branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererCfg.h	(revision 438)
+++ branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererCfg.h	(revision 446)
@@ -32,5 +32,6 @@
  */
 
-
+#ifndef __TAppRENDERERCFG__
+#define __TAppRENDERERCFG__
 
 #include <list>
@@ -38,9 +39,4 @@
 #include <fcntl.h>
 #include <assert.h>
-
-
-
-#ifndef __TAppRENDERERCFG__
-#define __TAppRENDERERCFG__
 
 #include "../../Lib/TAppCommon/TAppComCamPara.h"
@@ -50,5 +46,7 @@
 #include <string>
 #include <vector>
-#if !QC_MVHEVC_B0046
+
+#if H_3D
+
 // ====================================================================================================================
 // Class definition
@@ -66,4 +64,14 @@
   Bool               m_bContOutputFileNumbering;       ///< use continous numbering instead of view numbering
   Bool               m_bSweep;                         ///< 1: Store view range in file
+
+
+  // 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)
+
 
   // derived
@@ -133,6 +141,4 @@
 };// END CLASS DEFINITION TAppRendererCfg
 
-
-#endif
 #endif // __TAppRENDERERCFG__
-
+#endif // H_3D
Index: branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererTop.cpp
===================================================================
--- branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererTop.cpp	(revision 438)
+++ branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererTop.cpp	(revision 446)
@@ -33,5 +33,4 @@
 
 
-
 #include <list>
 #include <stdio.h>
@@ -42,8 +41,10 @@
 #include "TAppRendererTop.h"
 
+#if H_3D
+
 // ====================================================================================================================
 // Constructor / destructor / initialization / destroy
 // ====================================================================================================================
-#if !QC_MVHEVC_B0046
+
 TAppRendererTop::TAppRendererTop()
 {
@@ -59,6 +60,4 @@
 Void TAppRendererTop::xCreateLib()
 {
-  Int iInteralBitDepth = g_uiBitDepth + g_uiBitIncrement;
-  Int iFileBitDepth    = 8;
   m_pcRenTop = new TRenTop();
 
@@ -68,6 +67,6 @@
     TVideoIOYuv* pcDepthInput = new TVideoIOYuv;
 
-    pcVideoInput->open( m_pchVideoInputFileList[iViewIdx], false, iFileBitDepth, iInteralBitDepth );  // read mode
-    pcDepthInput->open( m_pchDepthInputFileList[iViewIdx], false, iFileBitDepth, iInteralBitDepth );  // read mode
+    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  );
@@ -80,5 +79,5 @@
   {
     TVideoIOYuv* pcSynthOutput = new TVideoIOYuv;
-    pcSynthOutput->open( m_pchSynthOutputFileList[iViewIdx], true, iFileBitDepth, iInteralBitDepth );  // write mode
+    pcSynthOutput->open( m_pchSynthOutputFileList[iViewIdx], true, m_outputBitDepthY, m_outputBitDepthC, m_internalBitDepthY, m_internalBitDepthC );  // write mode
     m_apcTVideoIOYuvSynthOutput.push_back( pcSynthOutput );
   }
@@ -469,7 +468,9 @@
     render();
     break;
+#if H_3D_VSO
   case 1:
     renderModel();
     break;
+#endif
   case 10:
     renderUsedPelsMap( );
@@ -481,4 +482,5 @@
 }
 
+#if H_3D_VSO
 Void TAppRendererTop::renderModel()
 {
@@ -493,7 +495,8 @@
 }
 
+
+
 Void TAppRendererTop::xRenderModelFromString()
 {
-
     xCreateLib();
     xInitLib();
@@ -522,5 +525,5 @@
 
     AOT( m_iLog2SamplingFactor != 0 );
-#if LGE_VSO_EARLY_SKIP_A0093
+#if H_3D_VSO_EARLY_SKIP
     cCurModel.create( m_cRenModStrParser.getNumOfBaseViews(), m_cRenModStrParser.getNumOfModels(), m_iSourceWidth, m_iSourceHeight, m_iShiftPrecision, m_iBlendHoleMargin, false );
 #else
@@ -683,4 +686,5 @@
 }
 
+
 Void TAppRendererTop::xRenderModelFromNums()
 {
@@ -700,5 +704,5 @@
   AOT( m_iLog2SamplingFactor != 0 );
   cCurModel.setupPart( 0, m_iSourceHeight  ); 
-#if LGE_VSO_EARLY_SKIP_A0093
+#if H_3D_VSO_EARLY_SKIP
   cCurModel.create( m_iNumberOfInputViews, m_iNumberOfOutputViews, m_iSourceWidth, m_iSourceHeight, m_iShiftPrecision, m_iBlendHoleMargin, false );
 #else
@@ -880,4 +884,5 @@
 
 }
+#endif
 
 Void TAppRendererTop::renderUsedPelsMap( )
Index: branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererTop.h
===================================================================
--- branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererTop.h	(revision 438)
+++ branches/HTM-DEV-0.2-dev/source/App/TAppRenderer/TAppRendererTop.h	(revision 446)
@@ -32,6 +32,4 @@
  */
 
-
-
 #include <list>
 #include <stdio.h>
@@ -39,9 +37,8 @@
 #include <assert.h>
 
-
 #ifndef __TAppRendererTOP__
 #define __TAppRendererTOP__
-
-
+#include "../../Lib/TLibCommon/TypeDef.h"
+#if H_3D
 #include "../../Lib/TLibRenderer/TRenTop.h"
 #include "../../Lib/TLibVideoIO/TVideoIOYuv.h"
@@ -50,5 +47,4 @@
 #include "../../Lib/TLibRenderer/TRenModel.h"
 
-#if !QC_MVHEVC_B0046
 // ====================================================================================================================
 // Class definition
@@ -72,7 +68,8 @@
   Void  xInitLib          ();                               ///< initialize renderer class
   Void  xDestroyLib       ();                               ///< destroy renderer class and video io
+#if H_3D_VSO
   Void  xRenderModelFromString();                           ///< render using model using setup string
   Void  xRenderModelFromNums();                             ///< render using model using synth view numbers
-
+#endif
 
 public:
@@ -81,5 +78,7 @@
 
   Void  render      ();                               ///< main encoding function
+#if H_3D_VSO
   Void  renderModel ();
+#endif
   Void  go          ();
   Void  renderUsedPelsMap();
@@ -87,5 +86,5 @@
 };// END CLASS DEFINITION TAppRendererTop
 
-#endif
 
-#endif
+#endif // H_3D
+#endif // __TAppRendererTOP__
