Changeset 1373 in 3DVCSoftware for branches/HTM-15.2-dev/source/App/TAppDecoder
- Timestamp:
- 6 Nov 2015, 16:18:36 (9 years ago)
- 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 90 90 ("OutputColourSpaceConvert", outputColourSpaceConvert, string(""), "Colour space conversion to apply to input 444 video. Permitted values are (empty string=UNCHANGED) " + getListOfColourSpaceConverts(false)) 91 91 #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. 93 93 #endif 94 94 ("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 81 81 std::vector<TChar*> m_pchReconFiles; ///< array of output reconstruction file name create from output reconstruction file name 82 82 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 84 86 Int m_targetDecLayerSetIdx; 85 87 Int m_baseLayerOutputFlag; … … 138 140 139 141 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 140 145 }; 141 146 -
branches/HTM-15.2-dev/source/App/TAppDecoder/TAppDecTop.cpp
r1360 r1373 152 152 . 153 153 */ 154 155 154 #if NH_MV 156 Void TAppDecTop::decode() 157 { 155 Void TAppDecTop::decode( Int num ) 156 { 157 m_targetOptLayerSetIdx = m_targetOptLayerSetInd[ num ]; 158 158 // create & initialize internal classes 159 159 xInitFileIO (); … … 213 213 214 214 #if !NH_MV 215 Void TAppDecTop::decode( )215 Void TAppDecTop::decode( ) 216 216 { 217 217 Int poc; … … 1092 1092 m_newVpsActivatedbyCurAu = true; //TBD 1093 1093 m_newVpsActivatedbyCurPic = true; 1094 #if NH_3D 1094 #if NH_3D_VSO 1095 1095 m_dpb.setVPS( m_vps ); 1096 1096 #endif … … 1256 1256 } 1257 1257 1258 if ( m_printVpsInfo && ( m_decProcCvsg == ANNEX_F ) )1258 if ( m_printVpsInfo && ( m_decProcCvsg == ANNEX_F ) && ( m_targetOptLayerSetIdx == m_targetOptLayerSetInd[ 0 ] ) ) 1259 1259 { 1260 1260 m_vps->printScalabilityId(); … … 2003 2003 // - After all slices of the current picture have been decoded, the decoding process for ending the decoding of a 2004 2004 // coded picture with nuh_layer_id greater than 0 specified in clause F.8.1.6 is invoked. 2005 xF816decProcEndDecOfCodPicLIdGrtZero( ); 2005 xF816decProcEndDecOfCodPicLIdGrtZero( ); 2006 2006 } 2007 2007 -
branches/HTM-15.2-dev/source/App/TAppDecoder/TAppDecTop.h
r1360 r1373 137 137 Void create (); ///< create internal members 138 138 Void destroy (); ///< destroy internal members 139 Void decode (); ///< main decoding function139 140 140 #if NH_MV 141 Void decode ( Int i ); ///< main decoding function 141 142 UInt getNumberOfChecksumErrorsDetected( ) const; 142 143 UInt getNumberOfChecksumErrorsDetected( Int decIdx ) const { return m_tDecTop[decIdx]->getNumberOfChecksumErrorsDetected(); } 143 144 #else 145 Void decode ( ); ///< main decoding function 144 146 UInt getNumberOfChecksumErrorsDetected() const { return m_cTDecTop.getNumberOfChecksumErrorsDetected(); } 145 147 #endif -
branches/HTM-15.2-dev/source/App/TAppDecoder/decmain.cpp
r1313 r1373 51 51 { 52 52 Int returnCode = EXIT_SUCCESS; 53 #if !NH_MV 53 54 TAppDecTop cTAppDecTop; 54 55 #endif 55 56 // print information 56 57 fprintf( stdout, "\n" ); … … 65 66 fprintf( stdout, "\n" ); 66 67 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(); 69 77 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 77 88 78 // starting time 89 // starting time 90 #if !NH_MV 79 91 Double dResult; 80 clock_t lBefore = clock(); 92 #endif 93 clock_t lBefore = clock(); 81 94 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 84 101 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 } 90 107 91 // ending time 108 // ending time 109 #if NH_MV 110 dResult += (double)(clock()-lBefore) / CLOCKS_PER_SEC; 111 #else 92 112 dResult = (Double)(clock()-lBefore) / CLOCKS_PER_SEC; 93 113 printf("\n Total Time: %12.3f sec.\n", dResult); 114 #endif 94 115 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 ); 97 122 123 printf("\n Total Time: %12.3f sec.\n", dResult); 124 #endif 98 125 return returnCode; 99 126 }
Note: See TracChangeset for help on using the changeset viewer.