Changeset 544 in SHVCSoftware for branches/SHM-4.1-dev/source/Lib/TLibDecoder
- Timestamp:
- 11 Jan 2014, 01:46:01 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/SHM-4.1-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp
r542 r544 990 990 991 991 READ_FLAG( uiCode, "avc_base_layer_flag" ); vps->setAvcBaseLayerFlag(uiCode ? true : false); 992 993 #if O0109_MOVE_VPS_VUI_FLAG 994 READ_FLAG( uiCode, "vps_vui_present_flag"); vps->setVpsVuiPresentFlag(uiCode ? true : false); 995 if ( uiCode ) 996 { 997 #endif 992 998 #if VPS_VUI_OFFSET 993 999 READ_CODE( 16, uiCode, "vps_vui_offset" ); vps->setVpsVuiOffset( uiCode ); 1000 #endif 1001 #if O0109_MOVE_VPS_VUI_FLAG 1002 } 994 1003 #endif 995 1004 READ_FLAG( uiCode, "splitting_flag" ); vps->setSplittingFlag(uiCode ? true : false); … … 1051 1060 // However, this is a bug in the text since, view_id_len_minus1 is needed to parse view_id_val. 1052 1061 { 1062 #if O0109_VIEW_ID_LEN 1063 READ_CODE( 4, uiCode, "view_id_len" ); vps->setViewIdLen( uiCode ); 1064 #else 1053 1065 READ_CODE( 4, uiCode, "view_id_len_minus1" ); vps->setViewIdLenMinus1( uiCode ); 1054 } 1055 1066 #endif 1067 } 1068 1069 #if O0109_VIEW_ID_LEN 1070 if ( vps->getViewIdLen() > 0 ) 1071 { 1072 for( i = 0; i < vps->getNumViews(); i++ ) 1073 { 1074 READ_CODE( vps->getViewIdLen( ), uiCode, "view_id_val[i]" ); vps->setViewIdVal( i, uiCode ); 1075 } 1076 } 1077 #else 1056 1078 for( i = 0; i < vps->getNumViews(); i++ ) 1057 1079 { … … 1059 1081 } 1060 1082 #endif 1083 #endif // view id related signaling 1061 1084 #if VPS_EXTN_DIRECT_REF_LAYERS 1062 1085 // For layer 0 … … 1168 1191 { 1169 1192 READ_CODE( 6, uiCode, "profile_ref_minus1[i]" ); vps->setProfileLayerSetRef(idx, uiCode + 1); 1193 #if O0109_PROF_REF_MINUS1 1194 assert( vps->getProfileLayerSetRef(idx) <= idx ); 1195 #else 1170 1196 assert( vps->getProfileLayerSetRef(idx) < idx ); 1171 1197 #endif 1172 1198 // Copy profile information as indicated 1173 1199 vps->getPTLForExtn(idx)->copyProfileInfo( vps->getPTLForExtn( vps->getProfileLayerSetRef(idx) ) ); … … 1190 1216 if( numOutputLayerSets > 1 ) 1191 1217 { 1218 #if O0109_DEFAULT_ONE_OUT_LAYER_IDC 1219 READ_CODE( 2, uiCode, "default_one_target_output_layer_idc" ); vps->setDefaultOneTargetOutputLayerIdc( uiCode ); 1220 #else 1192 1221 READ_FLAG( uiCode, "default_one_target_output_layer_flag" ); vps->setDefaultOneTargetOutputLayerFlag( uiCode ? true : false ); 1222 #endif 1193 1223 } 1194 1224 vps->setNumOutputLayerSets( numOutputLayerSets ); … … 1218 1248 // Assign OutputLayerFlag depending on default_one_target_output_layer_flag 1219 1249 Int lsIdx = i; 1250 #if O0109_DEFAULT_ONE_OUT_LAYER_IDC 1251 if( vps->getDefaultOneTargetOutputLayerIdc() == 1 ) 1252 { 1253 for(j = 0; j < vps->getNumLayersInIdList(lsIdx); j++) 1254 { 1255 vps->setOutputLayerFlag(i, j, (j == (vps->getNumLayersInIdList(lsIdx)-1))); 1256 } 1257 } 1258 else if ( vps->getDefaultOneTargetOutputLayerIdc() == 0 ) 1259 { 1260 for(j = 0; j < vps->getNumLayersInIdList(lsIdx); j++) 1261 { 1262 vps->setOutputLayerFlag(i, j, 1); 1263 } 1264 } 1265 else 1266 { 1267 // Other values of default_one_target_output_layer_idc than 0 and 1 are reserved for future use. 1268 } 1269 #else 1220 1270 if( vps->getDefaultOneTargetOutputLayerFlag() ) 1221 1271 { … … 1232 1282 } 1233 1283 } 1284 #endif 1234 1285 } 1235 1286 Int numBits = 1; … … 1411 1462 #endif 1412 1463 1464 #if !O0109_O0199_FLAGS_TO_VUI 1413 1465 #if M0040_ADAPTIVE_RESOLUTION_CHANGE 1414 1466 READ_FLAG(uiCode, "single_layer_for_non_irap_flag" ); vps->setSingleLayerForNonIrapFlag(uiCode == 1 ? true : false); … … 1417 1469 READ_FLAG(uiCode, "higher_layer_irap_skip_flag" ); vps->setHigherLayerIrapSkipFlag(uiCode == 1 ? true : false); 1418 1470 #endif 1419 1471 #endif 1472 1473 #if O0109_MOVE_VPS_VUI_FLAG 1474 if ( vps->getVpsVuiPresentFlag() ) 1475 #else 1420 1476 READ_FLAG( uiCode, "vps_vui_present_flag" ); 1421 1477 if (uiCode) 1478 #endif 1422 1479 { 1423 1480 #if VPS_VUI … … 1596 1653 } 1597 1654 #endif 1655 1656 #if O0109_O0199_FLAGS_TO_VUI 1657 #if M0040_ADAPTIVE_RESOLUTION_CHANGE 1658 READ_FLAG(uiCode, "single_layer_for_non_irap_flag" ); vps->setSingleLayerForNonIrapFlag(uiCode == 1 ? true : false); 1659 #endif 1660 #if HIGHER_LAYER_IRAP_SKIP_FLAG 1661 READ_FLAG(uiCode, "higher_layer_irap_skip_flag" ); vps->setHigherLayerIrapSkipFlag(uiCode == 1 ? true : false); 1662 #endif 1663 #endif 1664 1598 1665 #if N0160_VUI_EXT_ILP_REF 1599 1666 READ_FLAG( uiCode, "num_ilp_restricted_ref_layers" ); vps->setNumIlpRestrictedRefLayers( uiCode == 1 );
Note: See TracChangeset for help on using the changeset viewer.