| 41 | using namespace parser::reader; |
| 42 | |
| 43 | void 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 |
nothing calls this directly
no test coverage detected