Ignore:
Timestamp:
18 Sep 2015, 23:09:19 (9 years ago)
Author:
vidyo
Message:

LAYERS_NOT_PRESENT SEI message changes by Vidyo, Inc.
All the changes are under the #define NH_MV_LAYERS_NOT_PRESENT_SEI
Extra information passed into parseSEI - vps as MaxNumLayers is required in order to know how many flags to read.
contact:
jpadia@…, danny@…

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-15.1-dev0-Vidyo/source/Lib/TLibCommon/SEI.cpp

    r1328 r1331  
    224224#endif
    225225#if NH_MV_SEI
    226 #if NH_MV_SEI_TBD
     226#if NH_MV_LAYERS_NOT_PRESENT_SEI
    227227  case SEI::LAYERS_NOT_PRESENT                    :               return new SEILayersNotPresent;
    228228#endif
     
    342342
    343343
    344 #if NH_MV_SEI_TBD
     344#if NH_MV_LAYERS_NOT_PRESENT_SEI
    345345Void SEILayersNotPresent::setupFromCfgFile(const Char* cfgFile)
    346346{
     
    349349
    350350  // TBD: Add default values for which layers, POCS, Tids or Nalu types the SEI should be send.
    351   defAppLayerIds    .push_back( TBD );
    352   defAppPocs        .push_back( TBD );
    353   defAppTids        .push_back( TBD );
    354   defAppVclNaluTypes.push_back( TBD );
     351  // 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.
     352  defAppLayerIds     empty( );      //push_back( TBD );
     353  defAppPocs         empty( );      //push_back( TBD );
     354  defAppTids         empty( );      //push_back( TBD );
     355  defAppVclNaluTypes.empty( );      //push_back( TBD );
    355356
    356357  Int      defSeiNaluId                  = 0;
    357358  Int      defPositionInSeiNalu          = 0;
    358   Bool     defModifyByEncoder            = TBD;
     359  Bool     defModifyByEncoder            = false;   //0: Use payload as specified in cfg file   1: Modify SEI by encoder
    359360
    360361  // Setup config file options
     
    363364
    364365  opts.addOptions()
    365     ("LnpSeiActiveVpsId"              , m_lnpSeiActiveVpsId                , 0                              , "LnpSeiActiveVpsId"                )
     366    ("LnpSeiActiveVpsId"              , m_lnpSeiActiveVpsId                , 0                              , "LnpSeiActiveVpsId"                )   //Why?
    366367    ("LayerNotPresentFlag"            , m_layerNotPresentFlag              , BoolAry1d(1,0)                 , "LayerNotPresentFlag"              )
    367368    ;
     
    372373  po::ErrorReporter err;
    373374  po::parseConfigFile( opts, cfgFile, err );
    374 };
    375 
    376 Bool SEILayersNotPresent::checkCfg( const TComSlice* slice )
    377 {
    378   // Check config values
    379   Bool wrongConfig = false;
    380 
    381   // TBD: Add constraints on presence of SEI here.
    382   xCheckCfg     ( wrongConfig, TBD , "TBD" );
    383   xCheckCfg     ( wrongConfig, TBD , "TBD" );
    384 
    385   // TBD: Modify constraints according to the SEI semantics.
    386   xCheckCfgRange( wrongConfig, m_lnpSeiActiveVpsId              , MINVAL , MAXVAL, "lnp_sei_active_vps_id"            );
    387   xCheckCfgRange( wrongConfig, m_layerNotPresentFlag[i]         , MINVAL , MAXVAL, "layer_not_present_flag"           );
    388 
    389   return wrongConfig;
    390 };
    391 
    392 Void SEILayersNotPresent::setupFromSlice  ( const TComSlice* slice )
    393 {
    394   sei.m_lnpSeiActiveVpsId =  TBD ;
    395   for( Int i = 0; i  <=  MaxLayersMinus1; i++ )
    396   {
    397     sei.m_layerNotPresentFlag[i] =  TBD ;
    398   }
    399 };
     375  m_lnpSeiMaxLayers = m_layerNotPresentFlag.size();
     376};
     377
     378  Bool SEILayersNotPresent::checkCfg( const TComSlice* slice )
     379  {
     380//  // Check config values
     381//  Bool wrongConfig = false;
     382//
     383//  // TBD: Add constraints on presence of SEI here.
     384//  xCheckCfg     ( wrongConfig, TBD , "TBD" );
     385//  xCheckCfg     ( wrongConfig, TBD , "TBD" );
     386//
     387//  // TBD: Modify constraints according to the SEI semantics.
     388//  xCheckCfgRange( wrongConfig, m_lnpSeiActiveVpsId              , MINVAL , MAXVAL, "lnp_sei_active_vps_id"            );
     389//  xCheckCfgRange( wrongConfig, m_layerNotPresentFlag[i]         , MINVAL , MAXVAL, "layer_not_present_flag"           );
     390//
     391//  return wrongConfig;
     392      return false;
     393  };
     394//
     395//Void SEILayersNotPresent::setupFromSlice  ( const TComSlice* slice )
     396//{
     397//  sei.m_lnpSeiActiveVpsId =  TBD ;
     398//  for( Int i = 0; i  <=  MaxLayersMinus1; i++ )
     399//  {
     400//    sei.m_layerNotPresentFlag[i] =  TBD ;
     401//  }
     402//};
    400403#endif
    401404
Note: See TracChangeset for help on using the changeset viewer.