Index: branches/HTM-12.0-dev1/source/App/TAppDecoder/TAppDecTop.cpp
===================================================================
--- branches/HTM-12.0-dev1/source/App/TAppDecoder/TAppDecTop.cpp	(revision 1058)
+++ branches/HTM-12.0-dev1/source/App/TAppDecoder/TAppDecTop.cpp	(revision 1060)
@@ -260,4 +260,7 @@
           if (m_outputVpsInfo )
           {
+#if H_MV_HLS10_AUX
+            m_vps->printScalabilityId();
+#endif
             m_vps->printLayerDependencies();
             m_vps->printLayerSets();
Index: branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncCfg.cpp
===================================================================
--- branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncCfg.cpp	(revision 1058)
+++ branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncCfg.cpp	(revision 1060)
@@ -380,5 +380,9 @@
   ("NumberOfLayers",        m_numberOfLayers     , 1,                     "Number of layers")
 #if !H_3D
+#if H_MV_HLS10_AUX
+  ("ScalabilityMask",       m_scalabilityMask    , 2                    , "Scalability Mask: 2: Multiview, 8: Auxiliary, 10: Multiview + Auxiliary")    
+#else
   ("ScalabilityMask",       m_scalabilityMask    , 2                    , "Scalability Mask")    
+#endif
 #else
   ("ScalabilityMask",       m_scalabilityMask    , 3                    , "Scalability Mask, 1: Texture 3: Texture + Depth ")    
@@ -387,4 +391,7 @@
   ("ViewOrderIndex",        m_viewOrderIndex     , std::vector<Int>(1,0), "View Order Index per layer")
   ("ViewId",                m_viewId             , std::vector<Int>(1,0), "View Id per View Order Index")
+#if H_MV_HLS10_AUX
+  ("AuxId",                 m_auxId              , std::vector<Int>(1,0), "AuxId per layer")
+#endif
 #if H_3D
   ("DepthFlag",             m_depthFlag          , std::vector<Int>(1,0), "Depth Flag")
@@ -1075,4 +1082,7 @@
   }
   m_iNumberOfViews = (Int) uniqueViewOrderIndices.size(); 
+#if H_MV_HLS10_AUX
+  xResizeVector( m_auxId );
+#endif
 
 #if H_3D
@@ -1421,5 +1431,9 @@
   xConfirmPara( m_scalabilityMask != 2 && m_scalabilityMask != 3, "Scalability Mask must be equal to 2 or 3. ");
 #else
+#if H_MV_HLS10_AUX
+  xConfirmPara( m_scalabilityMask != 2 && m_scalabilityMask != 8 && m_scalabilityMask != 10, "Scalability Mask must be equal to 2, 8 or 10");
+#else
   xConfirmPara( m_scalabilityMask != 2 , "Scalability Mask must be equal to 2. ");
+#endif
 #endif
 
@@ -1432,5 +1446,16 @@
 
   m_dimIds.push_back( m_viewOrderIndex );   
-  xConfirmPara(  m_dimensionIdLen.size() < m_dimIds.size(), "DimensionIdLen must be given for all dimensions. "   );   Int dimBitOffset[MAX_NUM_SCALABILITY_TYPES+1]; 
+#if H_MV_HLS10_AUX
+  for (Int i = 0; i < m_auxId.size(); i++)
+  {
+    xConfirmPara( !( ( m_auxId[i] >= 0 && m_auxId[i] <= 2 ) || ( m_auxId[i] >= 128 && m_auxId[i] <= 159 ) ) , "AuxId shall be in the range of 0 to 2, inclusive, or 128 to 159, inclusive");
+  }
+  if ( m_scalabilityMask & ( 1 << AUX_ID ) )
+  {
+    m_dimIds.push_back ( m_auxId );
+  }
+#endif  
+  xConfirmPara(  m_dimensionIdLen.size() < m_dimIds.size(), "DimensionIdLen must be given for all dimensions. "   );
+  Int dimBitOffset[MAX_NUM_SCALABILITY_TYPES+1]; 
 
   dimBitOffset[ 0 ] = 0; 
@@ -2483,4 +2508,7 @@
   xPrintParaVector( "ViewIdVal"     , m_viewId ); 
   xPrintParaVector( "ViewOrderIndex", m_viewOrderIndex ); 
+#if H_MV_HLS10_AUX
+  xPrintParaVector( "AuxId", m_auxId );
+#endif
 #endif
 #if H_3D
Index: branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncCfg.h
===================================================================
--- branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncCfg.h	(revision 1058)
+++ branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncCfg.h	(revision 1060)
@@ -78,4 +78,7 @@
   std::vector<Int>       m_viewId;                            ///< view id
   std::vector<Int>       m_viewOrderIndex;                    ///< view order index  
+#if H_MV_HLS10_AUX
+  std::vector<Int>       m_auxId;                             ///< auxiliary id
+#endif
 #if H_3D
   std::vector<Int>       m_depthFlag;                         ///< depth flag
Index: branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncTop.cpp
===================================================================
--- branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncTop.cpp	(revision 1058)
+++ branches/HTM-12.0-dev1/source/App/TAppEncoder/TAppEncTop.cpp	(revision 1060)
@@ -171,4 +171,7 @@
   if ( m_outputVpsInfo )
   {  
+#if H_MV_HLS10_AUX
+    vps.printScalabilityId();
+#endif
     vps.printLayerDependencies();
     vps.printLayerSets(); 
@@ -1864,6 +1867,15 @@
         {
           vps.setProfileTierLevelIdx(olsIdx, j, m_profileTierLevelIdx[olsIdx][j] );
+#if H_MV_HLS10_PTL_FIX
+          if( !vps.getNecessaryLayerFlag(olsIdx,j) && m_profileTierLevelIdx[ olsIdx ][ j ] != -1 )
+          {
+            fprintf( stderr, "Warning: The %d-th layer in the %d-th OLS is not necessary such that profileTierLevelIdx[%d][%d] will be ignored. Set value to -1 to suppress warning.\n", j,olsIdx,olsIdx,j ); 
+          }          
+        }
+        else if ( vps.getNecessaryLayerFlag(olsIdx,j) )
+#else
         }
         else
+#endif
         {
           // setting default values
