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

Method parse

YUViewLib/src/parser/HEVC/pred_weight_table.cpp:44–102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42using namespace reader;
43
44void pred_weight_table::parse(SubByteReaderLogging & reader,
45 std::shared_ptr<seq_parameter_set_rbsp> sps,
46 const slice_segment_header * slice)
47{
48 SubByteReaderLoggingSubLevel subLevel(reader, "pred_weight_table()");
49
50 this->luma_log2_weight_denom = reader.readUEV("luma_log2_weight_denom");
51 if (sps->ChromaArrayType != 0)
52 this->delta_chroma_log2_weight_denom = reader.readSEV("delta_chroma_log2_weight_denom");
53 for (unsigned i = 0; i <= slice->num_ref_idx_l0_active_minus1; i++)
54 this->luma_weight_l0_flag.push_back(reader.readFlag(formatArray("luma_weight_l0_flag", i)));
55 if (sps->ChromaArrayType != 0)
56 for (unsigned i = 0; i <= slice->num_ref_idx_l0_active_minus1; i++)
57 this->chroma_weight_l0_flag.push_back(
58 reader.readFlag(formatArray("chroma_weight_l0_flag", i)));
59 for (unsigned i = 0; i <= slice->num_ref_idx_l0_active_minus1; i++)
60 {
61 if (this->luma_weight_l0_flag[i])
62 {
63 this->delta_luma_weight_l0.push_back(reader.readSEV(formatArray("delta_luma_weight_l0", i)));
64 this->luma_offset_l0.push_back(reader.readSEV(formatArray("luma_offset_l0", i)));
65 }
66 if (this->chroma_weight_l0_flag[i])
67 for (unsigned j = 0; j < 2; j++)
68 {
69 this->delta_chroma_weight_l0.push_back(
70 reader.readSEV(formatArray("delta_chroma_weight_l0", j)));
71 this->delta_chroma_offset_l0.push_back(
72 reader.readSEV(formatArray("delta_chroma_offset_l0", j)));
73 }
74 }
75
76 if (slice->slice_type == SliceType::B)
77 {
78 for (unsigned i = 0; i <= slice->num_ref_idx_l1_active_minus1; i++)
79 this->luma_weight_l1_flag.push_back(reader.readFlag(formatArray("luma_weight_l1_flag", i)));
80 if (sps->ChromaArrayType != 0)
81 for (unsigned i = 0; i <= slice->num_ref_idx_l1_active_minus1; i++)
82 this->chroma_weight_l1_flag.push_back(
83 reader.readFlag(formatArray("chroma_weight_l1_flag", i)));
84 for (unsigned i = 0; i <= slice->num_ref_idx_l1_active_minus1; i++)
85 {
86 if (luma_weight_l1_flag[i])
87 {
88 this->delta_luma_weight_l1.push_back(
89 reader.readSEV(formatArray("delta_luma_weight_l1", i)));
90 this->luma_offset_l1.push_back(reader.readSEV(formatArray("luma_offset_l1", i)));
91 }
92 if (chroma_weight_l1_flag[i])
93 for (unsigned j = 0; j < 2; j++)
94 {
95 this->delta_chroma_weight_l1.push_back(
96 reader.readSEV(formatArray("delta_chroma_weight_l1", j)));
97 this->delta_chroma_offset_l1.push_back(
98 reader.readSEV(formatArray("delta_chroma_offset_l1", j)));
99 }
100 }
101 }

Callers

nothing calls this directly

Calls 4

formatArrayFunction · 0.85
readUEVMethod · 0.80
readSEVMethod · 0.80
readFlagMethod · 0.80

Tested by

no test coverage detected