MCPcopy Create free account
hub / github.com/IENT/YUView / parse

Method parse

YUViewLib/src/parser/VVC/adaptation_parameter_set_rbsp.cpp:40–75  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38using namespace parser::reader;
39
40void adaptation_parameter_set_rbsp::parse(SubByteReaderLogging &reader)
41{
42 SubByteReaderLoggingSubLevel subLevel(reader, "adaptation_parameter_set_rbsp");
43
44 auto aps_params_type_ID =
45 reader.readBits("aps_params_type",
46 3,
47 Options().withCheckRange({0, 2}).withMeaningVector(
48 {"ALF parameters", "LMCS parameters", "Scaling list parameters"}));
49 this->aps_params_type = *apsParamTypeMapper.at(aps_params_type_ID);
50
51 this->aps_adaptation_parameter_set_id =
52 reader.readBits("aps_adaptation_parameter_set_id", 5, Options().withCheckRange({0, 7}));
53 this->aps_chroma_present_flag = reader.readFlag("aps_chroma_present_flag");
54 if (this->aps_params_type == APSParamType::ALF_APS)
55 {
56 this->alf_data_instance.parse(reader, this);
57 }
58 else if (this->aps_params_type == APSParamType::LMCS_APS)
59 {
60 this->lmcs_data_instance.parse(reader, this);
61 }
62 else if (this->aps_params_type == APSParamType::SCALING_APS)
63 {
64 this->scaling_list_data_instance.parse(reader, this);
65 }
66 this->aps_extension_flag = reader.readFlag("aps_extension_flag");
67 if (this->aps_extension_flag)
68 {
69 while (reader.more_rbsp_data())
70 {
71 this->aps_extension_data_flag = reader.readFlag("aps_extension_data_flag");
72 }
73 }
74 this->rbsp_trailing_bits_instance.parse(reader);
75}
76
77} // namespace parser::vvc

Callers

nothing calls this directly

Calls 5

OptionsClass · 0.85
readFlagMethod · 0.80
more_rbsp_dataMethod · 0.80
readBitsMethod · 0.45
atMethod · 0.45

Tested by

no test coverage detected