Changeset 577 in SHVCSoftware for branches/SHM-5.0-dev/source/Lib/TLibDecoder
- Timestamp:
- 29 Jan 2014, 01:55:16 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-5.0-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r576 r577 1206 1206 Int numOutputLayerSets = vps->getNumLayerSets() + vps->getNumAddOutputLayerSets(); 1207 1207 #endif 1208 1209 #if P0295_DEFAULT_OUT_LAYER_IDC 1210 if( numOutputLayerSets > 1 ) 1211 { 1212 READ_CODE( 2, uiCode, "default_target_output_layer_idc" ); vps->setDefaultTargetOutputLayerIdc( uiCode ); 1213 } 1214 vps->setNumOutputLayerSets( numOutputLayerSets ); 1215 1216 for(i = 1; i < numOutputLayerSets; i++) 1217 { 1218 if( i > (vps->getNumLayerSets() - 1) ) 1219 { 1220 Int numBits = 1; 1221 while ((1 << numBits) < (vps->getNumLayerSets() - 1)) 1222 { 1223 numBits++; 1224 } 1225 READ_CODE( numBits, uiCode, "output_layer_set_idx_minus1"); vps->setOutputLayerSetIdx( i, uiCode + 1); 1226 } 1227 else 1228 { 1229 vps->setOutputLayerSetIdx( i, i ); 1230 } 1231 if ( i > (vps->getNumLayerSets() - 1) || vps->getDefaultTargetOutputLayerIdc() >= 2 ) 1232 { 1233 Int lsIdx = vps->getOutputLayerSetIdx(i); 1234 for(j = 0; j < vps->getNumLayersInIdList(lsIdx) - 1; j++) 1235 { 1236 READ_FLAG( uiCode, "output_layer_flag[i][j]"); vps->setOutputLayerFlag(i, j, uiCode); 1237 } 1238 } 1239 else 1240 { 1241 // i <= (vps->getNumLayerSets() - 1) 1242 // Assign OutputLayerFlag depending on default_one_target_output_layer_flag 1243 Int lsIdx = i; 1244 if( vps->getDefaultTargetOutputLayerIdc() == 1 ) 1245 { 1246 for(j = 0; j < vps->getNumLayersInIdList(lsIdx); j++) 1247 { 1248 vps->setOutputLayerFlag(i, j, (j == (vps->getNumLayersInIdList(lsIdx)-1)) && (vps->getDimensionId(j,1) == 0) ); 1249 } 1250 } 1251 else if ( vps->getDefaultTargetOutputLayerIdc() == 0 ) 1252 { 1253 for(j = 0; j < vps->getNumLayersInIdList(lsIdx); j++) 1254 { 1255 vps->setOutputLayerFlag(i, j, 1); 1256 } 1257 } 1258 } 1259 Int numBits = 1; 1260 while ((1 << numBits) < (vps->getNumProfileTierLevel())) 1261 { 1262 numBits++; 1263 } 1264 READ_CODE( numBits, uiCode, "profile_level_tier_idx[i]" ); vps->setProfileLevelTierIdx(i, uiCode); 1265 } 1266 #else 1208 1267 if( numOutputLayerSets > 1 ) 1209 1268 { … … 1287 1346 READ_CODE( numBits, uiCode, "profile_level_tier_idx[i]" ); vps->setProfileLevelTierIdx(i, uiCode); 1288 1347 } 1348 #endif 1289 1349 1290 1350 #if O0153_ALT_OUTPUT_LAYER_FLAG
Note: See TracChangeset for help on using the changeset viewer.