Index: branches/HTM-15.1-dev0-Vidyo/source/Lib/TLibCommon/SEI.cpp
===================================================================
--- branches/HTM-15.1-dev0-Vidyo/source/Lib/TLibCommon/SEI.cpp	(revision 1330)
+++ branches/HTM-15.1-dev0-Vidyo/source/Lib/TLibCommon/SEI.cpp	(revision 1331)
@@ -224,5 +224,5 @@
 #endif
 #if NH_MV_SEI
-#if NH_MV_SEI_TBD
+#if NH_MV_LAYERS_NOT_PRESENT_SEI
   case SEI::LAYERS_NOT_PRESENT                    :               return new SEILayersNotPresent;
 #endif
@@ -342,5 +342,5 @@
 
 
-#if NH_MV_SEI_TBD
+#if NH_MV_LAYERS_NOT_PRESENT_SEI
 Void SEILayersNotPresent::setupFromCfgFile(const Char* cfgFile)
 { 
@@ -349,12 +349,13 @@
 
   // TBD: Add default values for which layers, POCS, Tids or Nalu types the SEI should be send. 
-  defAppLayerIds    .push_back( TBD );
-  defAppPocs        .push_back( TBD );
-  defAppTids        .push_back( TBD );
-  defAppVclNaluTypes.push_back( TBD );
+  // This SEI message doesn't need to be added by default to any Layer / POC / NAL Unit / T Layer. Not sure if empty is right.
+  defAppLayerIds     empty( );      //push_back( TBD );
+  defAppPocs         empty( );      //push_back( TBD );
+  defAppTids         empty( );      //push_back( TBD );
+  defAppVclNaluTypes.empty( );      //push_back( TBD );
 
   Int      defSeiNaluId                  = 0; 
   Int      defPositionInSeiNalu          = 0; 
-  Bool     defModifyByEncoder            = TBD; 
+  Bool     defModifyByEncoder            = false;   //0: Use payload as specified in cfg file   1: Modify SEI by encoder
 
   // Setup config file options
@@ -363,5 +364,5 @@
 
   opts.addOptions()
-    ("LnpSeiActiveVpsId"              , m_lnpSeiActiveVpsId                , 0                              , "LnpSeiActiveVpsId"                )
+    ("LnpSeiActiveVpsId"              , m_lnpSeiActiveVpsId                , 0                              , "LnpSeiActiveVpsId"                )   //Why?
     ("LayerNotPresentFlag"            , m_layerNotPresentFlag              , BoolAry1d(1,0)                 , "LayerNotPresentFlag"              )
     ;
@@ -372,30 +373,32 @@
   po::ErrorReporter err;
   po::parseConfigFile( opts, cfgFile, err );
-};
-
-Bool SEILayersNotPresent::checkCfg( const TComSlice* slice )
-{ 
-  // Check config values
-  Bool wrongConfig = false; 
-
-  // TBD: Add constraints on presence of SEI here. 
-  xCheckCfg     ( wrongConfig, TBD , "TBD" );
-  xCheckCfg     ( wrongConfig, TBD , "TBD" );
-
-  // TBD: Modify constraints according to the SEI semantics. 
-  xCheckCfgRange( wrongConfig, m_lnpSeiActiveVpsId              , MINVAL , MAXVAL, "lnp_sei_active_vps_id"            );
-  xCheckCfgRange( wrongConfig, m_layerNotPresentFlag[i]         , MINVAL , MAXVAL, "layer_not_present_flag"           );
-
-  return wrongConfig; 
-};
-
-Void SEILayersNotPresent::setupFromSlice  ( const TComSlice* slice )
-{
-  sei.m_lnpSeiActiveVpsId =  TBD ;
-  for( Int i = 0; i  <=  MaxLayersMinus1; i++ )
-  {
-    sei.m_layerNotPresentFlag[i] =  TBD ;
-  }
-};
+  m_lnpSeiMaxLayers = m_layerNotPresentFlag.size();
+};
+
+  Bool SEILayersNotPresent::checkCfg( const TComSlice* slice )
+  { 
+//  // Check config values
+//  Bool wrongConfig = false; 
+//
+//  // TBD: Add constraints on presence of SEI here. 
+//  xCheckCfg     ( wrongConfig, TBD , "TBD" );
+//  xCheckCfg     ( wrongConfig, TBD , "TBD" );
+//
+//  // TBD: Modify constraints according to the SEI semantics. 
+//  xCheckCfgRange( wrongConfig, m_lnpSeiActiveVpsId              , MINVAL , MAXVAL, "lnp_sei_active_vps_id"            );
+//  xCheckCfgRange( wrongConfig, m_layerNotPresentFlag[i]         , MINVAL , MAXVAL, "layer_not_present_flag"           );
+//
+//  return wrongConfig; 
+      return false;
+  };
+//
+//Void SEILayersNotPresent::setupFromSlice  ( const TComSlice* slice )
+//{
+//  sei.m_lnpSeiActiveVpsId =  TBD ;
+//  for( Int i = 0; i  <=  MaxLayersMinus1; i++ )
+//  {
+//    sei.m_layerNotPresentFlag[i] =  TBD ;
+//  }
+//};
 #endif
 
Index: branches/HTM-15.1-dev0-Vidyo/source/Lib/TLibCommon/SEI.h
===================================================================
--- branches/HTM-15.1-dev0-Vidyo/source/Lib/TLibCommon/SEI.h	(revision 1330)
+++ branches/HTM-15.1-dev0-Vidyo/source/Lib/TLibCommon/SEI.h	(revision 1331)
@@ -660,5 +660,5 @@
 
 #if NH_MV_SEI
-#if NH_MV_SEI_TBD
+#if NH_MV_LAYERS_NOT_PRESENT_SEI
 class SEILayersNotPresent : public SEI
 {
@@ -670,9 +670,15 @@
 
   Void setupFromCfgFile( const Char*      cfgFile );
-  Void setupFromSlice  ( const TComSlice* slice   );
+  //Void setupFromSlice  ( const TComSlice* slice   );
   Bool checkCfg        ( const TComSlice* slice   );
 
   Int       m_lnpSeiActiveVpsId;
+  UInt      m_lnpSeiMaxLayers;
   BoolAry1d m_layerNotPresentFlag;
+
+  void resizeDimI( Int sizeDimI )
+  {
+    m_layerNotPresentFlag.resize( sizeDimI );
+  }
 };
 #endif
Index: branches/HTM-15.1-dev0-Vidyo/source/Lib/TLibCommon/TypeDef.h
===================================================================
--- branches/HTM-15.1-dev0-Vidyo/source/Lib/TLibCommon/TypeDef.h	(revision 1330)
+++ branches/HTM-15.1-dev0-Vidyo/source/Lib/TLibCommon/TypeDef.h	(revision 1331)
@@ -70,4 +70,5 @@
 #define NH_MV_FIX_INIT_NUM_ACTIVE_REF_LAYER_PICS  1 // Derivation of NumActiveRefLayerPIcs. !!SPEC!! 
 #define NH_MV_FIX_NUM_POC_TOTAL_CUR               1 // Derivation of NumPocTotalCur for IDR pictures. !!SPEC!!
+#define NH_MV_LAYERS_NOT_PRESENT_SEI              1 // Layers not present SEI message JCTMV-M0043
 #endif
 #if NH_3D
