Changeset 1373 in 3DVCSoftware for branches/HTM-15.2-dev/source/App/TAppDecoder


Ignore:
Timestamp:
6 Nov 2015, 16:18:36 (9 years ago)
Author:
tech
Message:

Macro fixes.

Location:
branches/HTM-15.2-dev/source/App/TAppDecoder
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HTM-15.2-dev/source/App/TAppDecoder/TAppDecCfg.cpp

    r1370 r1373  
    9090  ("OutputColourSpaceConvert",  outputColourSpaceConvert,              string(""), "Colour space conversion to apply to input 444 video. Permitted values are (empty string=UNCHANGED) " + getListOfColourSpaceConverts(false))
    9191#if NH_MV
    92   ("TargetOptLayerSetIdx,x",    m_targetOptLayerSetIdx,                -1,        "Target output layer set index. (default: -1, determine automatically to be equal to highest layer set index") // Should actually equal to 0 as default. However, this would cause only the base layer to be decoded. 
     92  ("TargetOptLayerSetIdx,x", m_targetOptLayerSetInd, std::vector<Int>(1,-1), "Target output layer set index. (default: -1, determine automatically to be equal to highest layer set index") // Should actually equal to 0 as default. However, this would cause only the base layer to be decoded. 
    9393#endif
    9494  ("MaxTemporalLayer,t",        m_iMaxTemporalLayer,                   -1,         "Maximum Temporal Layer to be decoded. -1 to decode all layers")
  • branches/HTM-15.2-dev/source/App/TAppDecoder/TAppDecCfg.h

    r1360 r1373  
    8181  std::vector<TChar*> m_pchReconFiles;                ///< array of output reconstruction file name create from output reconstruction file name
    8282
    83   Int           m_targetOptLayerSetIdx;               ///< target output layer set index
     83  std::vector<Int> m_targetOptLayerSetInd;            ///< target output layer set indices (multiple decoding when more than one element, e.g. for additional layer sets)
     84  Int           m_targetOptLayerSetIdx;               ///< current target output layer set index
     85
    8486  Int           m_targetDecLayerSetIdx;
    8587  Int           m_baseLayerOutputFlag;
     
    138140
    139141  Bool  parseCfg        ( Int argc, TChar* argv[] );   ///< initialize option class from configuration
     142#if NH_MV
     143  Int   getNumDecodings ( ) { return (Int) m_targetOptLayerSetInd.size();  };
     144#endif
    140145};
    141146
  • branches/HTM-15.2-dev/source/App/TAppDecoder/TAppDecTop.cpp

    r1360 r1373  
    152152 .
    153153 */
    154 
    155154#if NH_MV
    156 Void TAppDecTop::decode()
    157 {
     155Void TAppDecTop::decode( Int num )
     156{
     157  m_targetOptLayerSetIdx = m_targetOptLayerSetInd[ num ];
    158158  // create & initialize internal classes
    159159  xInitFileIO  ();
     
    213213
    214214#if !NH_MV
    215 Void TAppDecTop::decode()
     215Void TAppDecTop::decode( )
    216216{
    217217  Int                 poc;
     
    10921092    m_newVpsActivatedbyCurAu  = true; //TBD
    10931093    m_newVpsActivatedbyCurPic = true;
    1094 #if NH_3D
     1094#if NH_3D_VSO
    10951095    m_dpb.setVPS( m_vps );
    10961096#endif
     
    12561256  }
    12571257
    1258   if ( m_printVpsInfo  && ( m_decProcCvsg == ANNEX_F ) )
     1258  if ( m_printVpsInfo  && ( m_decProcCvsg == ANNEX_F ) && ( m_targetOptLayerSetIdx == m_targetOptLayerSetInd[ 0 ] ) )
    12591259  {
    12601260    m_vps->printScalabilityId();
     
    20032003      // - After all slices of the current picture have been decoded, the decoding process for ending the decoding of a
    20042004      //   coded picture with nuh_layer_id greater than 0 specified in clause F.8.1.6 is invoked.
    2005       xF816decProcEndDecOfCodPicLIdGrtZero( );
     2005      xF816decProcEndDecOfCodPicLIdGrtZero( );     
    20062006    }
    20072007
  • branches/HTM-15.2-dev/source/App/TAppDecoder/TAppDecTop.h

    r1360 r1373  
    137137  Void  create            (); ///< create internal members
    138138  Void  destroy           (); ///< destroy internal members
    139   Void  decode            (); ///< main decoding function
     139 
    140140#if NH_MV
     141  Void  decode            ( Int i ); ///< main decoding function
    141142  UInt  getNumberOfChecksumErrorsDetected( ) const;
    142143  UInt  getNumberOfChecksumErrorsDetected( Int decIdx ) const { return m_tDecTop[decIdx]->getNumberOfChecksumErrorsDetected(); }
    143144#else
     145  Void  decode            ( ); ///< main decoding function
    144146  UInt  getNumberOfChecksumErrorsDetected() const { return m_cTDecTop.getNumberOfChecksumErrorsDetected(); }
    145147#endif
  • branches/HTM-15.2-dev/source/App/TAppDecoder/decmain.cpp

    r1313 r1373  
    5151{
    5252  Int returnCode = EXIT_SUCCESS;
     53#if !NH_MV
    5354  TAppDecTop  cTAppDecTop;
    54 
     55#endif
    5556  // print information
    5657  fprintf( stdout, "\n" );
     
    6566  fprintf( stdout, "\n" );
    6667
    67   // create application decoder class
    68   cTAppDecTop.create();
     68#if NH_MV
     69  Int numDecodings = 1;
     70  Int curDecoding  = 0;
     71  Double dResult = 0;
     72  do {
     73    TAppDecTop  cTAppDecTop;
     74#endif
     75    // create application decoder class
     76    cTAppDecTop.create();
    6977
    70   // parse configuration
    71   if(!cTAppDecTop.parseCfg( argc, argv ))
    72   {
    73     cTAppDecTop.destroy();
    74     returnCode = EXIT_FAILURE;
    75     return returnCode;
    76   }
     78    // parse configuration
     79    if(!cTAppDecTop.parseCfg( argc, argv ))
     80    {
     81      cTAppDecTop.destroy();
     82      returnCode = EXIT_FAILURE;
     83      return returnCode;
     84    }
     85#if NH_MV
     86    numDecodings = cTAppDecTop.getNumDecodings();
     87#endif
    7788
    78   // starting time
     89    // starting time   
     90#if !NH_MV
    7991  Double dResult;
    80   clock_t lBefore = clock();
     92#endif
     93    clock_t lBefore = clock();
    8194
    82   // call decoding function
    83   cTAppDecTop.decode();
     95    // call decoding function
     96#if NH_MV
     97    cTAppDecTop.decode( curDecoding );
     98#else
     99    cTAppDecTop.decode();
     100#endif
    84101
    85   if (cTAppDecTop.getNumberOfChecksumErrorsDetected() != 0)
    86   {
    87     printf("\n\n***ERROR*** A decoding mismatch occured: signalled md5sum does not match\n");
    88     returnCode = EXIT_FAILURE;
    89   }
     102    if (cTAppDecTop.getNumberOfChecksumErrorsDetected() != 0)
     103    {
     104      printf("\n\n***ERROR*** A decoding mismatch occured: signalled md5sum does not match\n");
     105      returnCode = EXIT_FAILURE;
     106    }
    90107
    91   // ending time
     108    // ending time
     109#if NH_MV
     110    dResult += (double)(clock()-lBefore) / CLOCKS_PER_SEC;
     111#else
    92112  dResult = (Double)(clock()-lBefore) / CLOCKS_PER_SEC;
    93113  printf("\n Total Time: %12.3f sec.\n", dResult);
     114#endif
    94115
    95   // destroy application decoder class
    96   cTAppDecTop.destroy();
     116    // destroy application decoder class
     117    cTAppDecTop.destroy();
     118#if NH_MV
     119    curDecoding++;
     120  }
     121  while ( curDecoding < numDecodings );
    97122
     123  printf("\n Total Time: %12.3f sec.\n", dResult);
     124#endif
    98125  return returnCode;
    99126}
Note: See TracChangeset for help on using the changeset viewer.