| 38 | using namespace parser::reader; |
| 39 | |
| 40 | void profile_tier_level::parse(SubByteReaderLogging &reader, |
| 41 | bool profileTierPresentFlag, |
| 42 | unsigned MaxNumSubLayersMinus1) |
| 43 | { |
| 44 | SubByteReaderLoggingSubLevel subLevel(reader, "profile_tier_level"); |
| 45 | |
| 46 | if (profileTierPresentFlag) |
| 47 | { |
| 48 | this->general_profile_idc = reader.readBits("general_profile_idc", 7); |
| 49 | this->general_tier_flag = reader.readFlag("general_tier_flag"); |
| 50 | } |
| 51 | this->general_level_idc = reader.readBits("general_level_idc", 8); |
| 52 | this->ptl_frame_only_constraint_flag = reader.readFlag("ptl_frame_only_constraint_flag"); |
| 53 | this->ptl_multilayer_enabled_flag = reader.readFlag("ptl_multilayer_enabled_flag"); |
| 54 | if (profileTierPresentFlag) |
| 55 | { |
| 56 | this->general_constraints_info_instance.parse(reader); |
| 57 | } |
| 58 | for (int i = MaxNumSubLayersMinus1 - 1; i >= 0; i--) |
| 59 | { |
| 60 | this->ptl_sublayer_level_present_flag.push_back( |
| 61 | reader.readFlag("ptl_sublayer_level_present_flag")); |
| 62 | } |
| 63 | while (!reader.byte_aligned()) |
| 64 | { |
| 65 | this->ptl_reserved_zero_bit = reader.readFlag("ptl_reserved_zero_bit"); |
| 66 | } |
| 67 | for (int i = MaxNumSubLayersMinus1 - 1; i >= 0; i--) |
| 68 | { |
| 69 | if (this->ptl_sublayer_level_present_flag[i]) |
| 70 | { |
| 71 | this->sublayer_level_idc.push_back(reader.readBits("sublayer_level_idc", 8)); |
| 72 | } |
| 73 | } |
| 74 | if (profileTierPresentFlag) |
| 75 | { |
| 76 | this->ptl_num_sub_profiles = reader.readBits("ptl_num_sub_profiles", 8); |
| 77 | for (unsigned i = 0; i < this->ptl_num_sub_profiles; i++) |
| 78 | { |
| 79 | this->general_sub_profile_idc.push_back(reader.readBits("general_sub_profile_idc", 32)); |
| 80 | } |
| 81 | } |
| 82 | } |
| 83 | |
| 84 | } // namespace parser::vvc |
nothing calls this directly
no test coverage detected