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

Method parse

YUViewLib/src/parser/Mpeg2/picture_coding_extension.cpp:43–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

41using namespace parser::reader;
42
43void picture_coding_extension::parse(reader::SubByteReaderLogging &reader)
44{
45 SubByteReaderLoggingSubLevel subLevel(reader, "picture_coding_extension");
46
47 this->f_code[0][0] = reader.readBits(formatArray("f_code", 0, 0), 4); // forward horizontal
48 this->f_code[0][1] = reader.readBits(formatArray("f_code", 0, 1), 4); // forward vertical
49 this->f_code[1][0] = reader.readBits(formatArray("f_code", 1, 0), 4); // backward horizontal
50 this->f_code[1][1] = reader.readBits(formatArray("f_code", 1, 1), 4); // backward vertical
51
52 this->intra_dc_precision = reader.readBits(
53 "intra_dc_precision",
54 2,
55 Options().withMeaningVector(
56 {"Precision 8 bit", "Precision 9 bit", "Precision 10 bit", "Precision 11 bit"}));
57 this->picture_structure = reader.readBits(
58 "picture_structure",
59 2,
60 Options().withMeaningVector({"Reserved", "Top Field", "Bottom Field", "Frame picture"}));
61
62 this->top_field_first = reader.readFlag("top_field_first");
63 this->frame_pred_frame_dct = reader.readFlag("frame_pred_frame_dct");
64 this->concealment_motion_vectors = reader.readFlag("concealment_motion_vectors");
65 this->q_scale_type = reader.readFlag("q_scale_type");
66 this->intra_vlc_format = reader.readFlag("intra_vlc_format");
67 this->alternate_scan = reader.readFlag("alternate_scan");
68 this->repeat_first_field = reader.readFlag("repeat_first_field");
69 this->chroma_420_type = reader.readFlag("chroma_420_type");
70 this->progressive_frame = reader.readFlag("progressive_frame");
71 this->composite_display_flag = reader.readFlag("composite_display_flag");
72 if (composite_display_flag)
73 {
74 this->v_axis = reader.readFlag("v_axis");
75 this->field_sequence = reader.readBits("field_sequence", 3);
76 this->sub_carrier = reader.readFlag("sub_carrier");
77 this->burst_amplitude = reader.readBits("burst_amplitude", 7);
78 this->sub_carrier_phase = reader.readBits("sub_carrier_phase", 8);
79 }
80}
81
82} // namespace parser::mpeg2

Callers

nothing calls this directly

Calls 4

formatArrayFunction · 0.85
OptionsClass · 0.85
readFlagMethod · 0.80
readBitsMethod · 0.45

Tested by

no test coverage detected