- Timestamp:
- 4 Apr 2013, 04:36:38 (12 years ago)
- Location:
- branches/HM-10.0-dev-SHM/source
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HM-10.0-dev-SHM/source/App/TAppEncoder/TAppEncTop.cpp
r110 r112 704 704 } 705 705 } 706 706 #if VPS_EXTN_PROFILE_INFO 707 vps->getPTLForExtnPtr()->resize(vps->getNumLayerSets()); 708 for(Int setId = 1; setId < vps->getNumLayerSets(); setId++) 709 { 710 vps->setProfilePresentFlag(setId, true); 711 // Note - may need to be changed for other layer structures. 712 *(vps->getPTLForExtn(setId)) = *(m_acTEncTop[setId].getSPS()->getPTL()); 713 } 714 #endif 707 715 // Target output layer 708 716 vps->setNumOutputLayerSets(1); -
branches/HM-10.0-dev-SHM/source/Lib/TLibCommon/TComSlice.cpp
r110 r112 1485 1485 m_uiMaxLatencyIncrease[i] = 0; 1486 1486 } 1487 #if VPS_EXTN_PROFILE_INFO 1488 ::memset(m_profilePresentFlag, 0, sizeof(m_profilePresentFlag)); 1489 ::memset(m_profileLayerSetRef, 0, sizeof(m_profileLayerSetRef)); 1490 #endif 1487 1491 #if VPS_EXTN_OP_LAYER_SETS 1488 1492 ::memset(m_layerIdIncludedFlag, 0, sizeof(m_layerIdIncludedFlag)); … … 2277 2281 ::memset(m_profileCompatibilityFlag, 0, sizeof(m_profileCompatibilityFlag)); 2278 2282 } 2283 #if VPS_EXTN_PROFILE_INFO 2284 Void ProfileTierLevel::copyProfileInfo(ProfileTierLevel *ptl) 2285 { 2286 this->setProfileSpace ( ptl->getProfileSpace() ); 2287 this->setTierFlag ( ptl->getTierFlag() ); 2288 this->setProfileIdc ( ptl->getProfileIdc() ); 2289 for(Int j = 0; j < 32; j++) 2290 { 2291 this->setProfileCompatibilityFlag(j, ptl->getProfileCompatibilityFlag(j)); 2292 } 2293 this->setProgressiveSourceFlag ( ptl->getProgressiveSourceFlag() ); 2294 this->setInterlacedSourceFlag ( ptl->getInterlacedSourceFlag() ); 2295 this->setNonPackedConstraintFlag( ptl->getNonPackedConstraintFlag()); 2296 this->setFrameOnlyConstraintFlag( ptl->getFrameOnlyConstraintFlag()); 2297 } 2298 #endif 2279 2299 2280 2300 TComPTL::TComPTL() … … 2283 2303 ::memset(m_subLayerLevelPresentFlag, 0, sizeof(m_subLayerLevelPresentFlag )); 2284 2304 } 2305 #if VPS_EXTN_PROFILE_INFO 2306 Void TComPTL::copyProfileInfo(TComPTL *ptl) 2307 { 2308 // Copy all information related to general profile 2309 this->getGeneralPTL()->copyProfileInfo(ptl->getGeneralPTL()); 2310 } 2311 #endif 2285 2312 #if SIGNAL_BITRATE_PICRATE_IN_VPS 2286 2313 TComBitRatePicRateInfo::TComBitRatePicRateInfo() -
branches/HM-10.0-dev-SHM/source/Lib/TLibCommon/TComSlice.h
r110 r112 229 229 Void setFrameOnlyConstraintFlag(Bool b) { m_frameOnlyConstraintFlag = b; } 230 230 #endif 231 #if VPS_EXTN_PROFILE_INFO 232 Void copyProfileInfo(ProfileTierLevel *ptl); 233 #endif 231 234 }; 232 235 … … 249 252 ProfileTierLevel* getGeneralPTL() { return &m_generalPTL; } 250 253 ProfileTierLevel* getSubLayerPTL(Int i) { return &m_subLayerPTL[i]; } 254 #if VPS_EXTN_PROFILE_INFO 255 Void copyProfileInfo(TComPTL *ptl); 256 #endif 251 257 }; 252 258 /// VPS class … … 510 516 // Variables related to VPS extensions 511 517 // ------------------------------------------ 518 #if VPS_EXTN_PROFILE_INFO 519 // Profile-tier-level signalling related 520 Bool m_profilePresentFlag[MAX_VPS_LAYER_SETS_PLUS1]; // The value with index 0 will not be used. 521 UInt m_profileLayerSetRef[MAX_VPS_LAYER_SETS_PLUS1]; // The value with index 0 will not be used. 522 std::vector<TComPTL> m_pcPTLForExtn; 523 #endif 512 524 #if VPS_EXTN_OP_LAYER_SETS 513 525 // .. More declarations here … … 583 595 TimingInfo* getTimingInfo() { return &m_timingInfo; } 584 596 #endif 585 597 #if VPS_EXTN_PROFILE_INFO 598 Bool getProfilePresentFlag(Int id) { return m_profilePresentFlag[id]; } 599 Void setProfilePresentFlag(Int id, Bool x) { m_profilePresentFlag[id] = x; } 600 601 UInt getProfileLayerSetRef(Int id) { return m_profileLayerSetRef[id]; } 602 Void setProfileLayerSetRef(Int id, Bool x) { m_profileLayerSetRef[id] = x; } 603 604 std::vector<TComPTL>* getPTLForExtnPtr() { return &m_pcPTLForExtn; } 605 TComPTL* getPTLForExtn(Int id) { return &m_pcPTLForExtn[id]; } 606 #endif 586 607 #if VPS_EXTN_OP_LAYER_SETS 587 608 // Target output layer signalling related -
branches/HM-10.0-dev-SHM/source/Lib/TLibCommon/TypeDef.h
r110 r112 48 48 #if VPS_EXTNS 49 49 #define VPS_EXTN_OP_LAYER_SETS 1 ///< Include output layer sets in VPS extension 50 #define VPS_EXTN_PROFILE_INFO 1 ///< Include profile information for layer sets in VPS extension 50 51 #endif 51 52 #define MAX_LAYERS 2 ///< max number of layers the codec is supposed to handle -
branches/HM-10.0-dev-SHM/source/Lib/TLibDecoder/TDecCAVLC.cpp
r111 r112 841 841 UInt uiCode; 842 842 // ... More syntax elements to be parsed here 843 #if VPS_EXTN_PROFILE_INFO 844 // Profile-tier-level signalling 845 vps->getPTLForExtnPtr()->resize(vps->getNumLayerSets()); 846 for(Int idx = 1; idx <= vps->getNumLayerSets() - 1; idx++) 847 { 848 READ_FLAG( uiCode, "vps_profile_present_flag[i]" ); vps->setProfilePresentFlag(idx, uiCode ? true : false); 849 if( !vps->getProfilePresentFlag(idx) ) 850 { 851 READ_UVLC( uiCode, "vps_profile_layer_set_ref_minus1[i]" ); vps->setProfileLayerSetRef(idx, uiCode + 1); 852 assert( vps->getProfileLayerSetRef(idx) < idx ); 853 // Copy profile information as indicated 854 vps->getPTLForExtn(idx)->copyProfileInfo( vps->getPTLForExtn( vps->getProfileLayerSetRef(idx) ) ); 855 } 856 parsePTL( vps->getPTLForExtn(idx), vps->getProfilePresentFlag(idx), vps->getMaxTLayers() - 1 ); 857 } 858 #endif 859 843 860 #if VPS_EXTN_OP_LAYER_SETS 844 861 // Target output layer signalling -
branches/HM-10.0-dev-SHM/source/Lib/TLibEncoder/TEncCavlc.cpp
r111 r112 669 669 { 670 670 // ... More syntax elements to be written here 671 671 #if VPS_EXTN_PROFILE_INFO 672 // Profile-tier-level signalling 673 for(Int idx = 1; idx <= vps->getNumLayerSets() - 1; idx++) 674 { 675 WRITE_FLAG( vps->getProfilePresentFlag(idx), "vps_profile_present_flag[i]" ); 676 if( !vps->getProfilePresentFlag(idx) ) 677 { 678 WRITE_UVLC( vps->getProfileLayerSetRef(idx) - 1, "vps_profile_layer_set_ref_minus1[i]" ); 679 } 680 codePTL( vps->getPTLForExtn(idx), vps->getProfilePresentFlag(idx), vps->getMaxTLayers() - 1 ); 681 } 682 #endif 672 683 #if VPS_EXTN_OP_LAYER_SETS 673 684 // Target output layer signalling
Note: See TracChangeset for help on using the changeset viewer.