MythTV  master
HEVCParser.h
Go to the documentation of this file.
1 // -*- Mode: c++ -*-
2 /*******************************************************************
3  * HEVCParser
4  *
5  * Distributed as part of MythTV (www.mythtv.org)
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20  *
21  ********************************************************************/
22 
23 #ifndef HEVCPARSER_H
24 #define HEVCPARSER_H
25 
26 #include <array>
27 #include <map>
28 #include <vector>
29 
30 #include "mpeg/H2645Parser.h"
31 
32 class HEVCParser : public H2645Parser
33 {
34  public:
35 
36  enum NAL_unit_type : std::uint8_t {
37  TAIL_N = 0, // Coded slice segment of a non-TSA, non-STSA trailing picture
38  TAIL_R = 1, // slice_segment_layer_rbsp() VCL
39 
40  TSA_N = 2, // Coded slice segment of a TSA picture
41  TSA_R = 3, // slice_segment_layer_rbsp() VCL
42 
43  STSA_N = 4, // Coded slice segment of an STSA picture
44  STSA_R = 5, // slice_segment_layer_rbsp() VCL
45 
46  RADL_N = 6, // Coded slice segment of a RADL picture
47  RADL_R = 7, // slice_segment_layer_rbsp() VCL
48 
49  // random access skipped leading (RASL) pictures
50  RASL_N = 8, // Coded slice segment of a RASL picture
51  RASL_R = 9, // slice_segment_layer_rbsp() VCL
52 
53  RSV_VCL_N10 = 10, //
54  RSV_VCL_N12 = 12, // Reserved non-IRAP SLNR VCL NAL unit types VCL
55  RSV_VCL_N14 = 14, //
56 
57  RSV_VCL_R11 = 11, //
58  RSV_VCL_R13 = 13, // Reserved non-IRAP sub-layer reference VCL NAL unit
59  RSV_VCL_R15 = 15, // types VCL
60 
61  // RADL = random access decodable leading picture
62 
63  /*
64  A broken link access (BLA) picture having
65  nal_unit_type equal to BLA_W_LP may have associated
66  RASL or RADL pictures present in the bitstream. A
67  BLA picture having nal_unit_type equal to
68  BLA_W_RADL does not have associated RASL pictures
69  present in the bitstream, but may have associated
70  RADL pictures in the bitstream. A BLA picture
71  having nal_unit_type equal to BLA_N_LP does not
72  have associated leading pictures present in the
73  bitstream.
74  */
75  BLA_W_LP = 16, //
76  BLA_W_RADL = 17, // Coded slice segment of a BLA picture
77  BLA_N_LP = 18, // slice_segment_layer_rbsp() VCL
78 
79  /*
80  An instantaneous decoding refresh (IDR) picture
81  having nal_unit_type equal to IDR_N_LP does not
82  have associated leading pictures present in the
83  bitstream. An IDR picture having nal_unit_type
84  equal to IDR_W_RADL does not have associated RASL
85  pictures present in the bitstream, but may have
86  associated RADL pictures in the bitstream.
87  */
88  IDR_W_RADL = 19, // Coded slice segment of an IDR picture
89  IDR_N_LP = 20, // slice_segment_layer_rbsp() VCL
90 
91  /* A clean random access (CRA) picture may have
92  associated random access skipped leading (RASL) or
93  random access decodable leading (RADL) pictures
94  present in the bitstream.
95  */
96  CRA_NUT = 21, // Coded slice segment of a CRA picture
97  // slice_segment_layer_rbsp() VCL
98 
99  RSV_IRAP_VCL22 = 22, //
100  RSV_IRAP_VCL23 = 23, // Reserved IRAP VCL NAL unit types VCL
101 
102  RSV_VCL24 = 24, // Reserved non-IRAP VCL NAL unit types
103  RSV_VCL25 = 25,
104  RSV_VCL26 = 26,
105  RSV_VCL27 = 27,
106  RSV_VCL28 = 28,
107  RSV_VCL29 = 29,
108  RSV_VCL30 = 30,
109  RSV_VCL31 = 31,
110 
111  VPS_NUT = 32, // Video parameter set video_parameter_set_rbsp() non-VCL
112  SPS_NUT = 33, // Sequence parameter set seq_parameter_set_rbsp() non-VCL
113  PPS_NUT = 34, // Picture parameter set pic_parameter_set_rbsp() non-VCL
114  AUD_NUT = 35, // Access unit delimiter access_unit_delimiter_rbsp() non-VCL
115  EOS_NUT = 36, // End of sequence end_of_seq_rbsp() non-VCL
116  EOB_NUT = 37, // End of bitstream end_of_bitstream_rbsp() non-VCL
117  FD_NUT = 38, // Filler data filler_data_rbsp() non-VCL
118 
119  PREFIX_SEI_NUT = 39, // Supplemental enhancement information
120  SUFFIX_SEI_NUT = 40, // sei_rbsp() non-VCL
121 
122  RSV_NVCL41 = 41, // Reserved non-VCL
123  RSV_NVCL42 = 42,
124  RSV_NVCL43 = 43,
125  RSV_NVCL44 = 44,
128  RSV_NVCL47 = 47,
129 
130  UNSPEC48 = 48, // Unspecified non-VCL
131  UNSPEC49 = 49,
132  UNSPEC50 = 50,
133  UNSPEC51 = 51,
134  UNSPEC52 = 52,
135  UNSPEC53 = 53,
136  UNSPEC54 = 54,
137  UNSPEC55 = 55,
138  UNSPEC56 = 56,
139  UNSPEC57 = 57,
140  UNSPEC58 = 58,
141  UNSPEC59 = 59,
142  UNSPEC60 = 60,
143  UNSPEC61 = 61,
144  UNSPEC62 = 62,
145  UNSPEC63 = 63
146  };
147 
148  struct SPS {
154 
155  };
156 
157  struct VPS {
158  uint8_t max_sub_layers; // range 0 to 3
159  };
160 
161  struct PPS {
165  int sps_id;
166  };
167 
169  /* calculated values */
170  std::array<int32_t,16> DeltaPocS0;
171  std::array<int32_t,16> DeltaPocS1;
172  std::array<uint8_t,16> UsedByCurrPicS0;
173  std::array<uint8_t,16> UsedByCurrPicS1;
174  uint8_t NumDeltaPocs;
177 
178  // Parsed values
182  uint8_t delta_rps_sign;
183  };
184 
185 
186  /*
187  scaling_list_dc_coef_minus8_16x16: this plus 8 specifies the DC
188  Coefficient values for 16x16 scaling list
189  scaling_list_dc_coef_minus8_32x32: this plus 8 specifies the
190  DC Coefficient values for 32x32 scaling list
191  scaling_lists_4x4: 4x4 scaling list
192  scaling_lists_8x8: 8x8 scaling list
193  scaling_lists_16x16: 16x16 scaling list
194  scaling_lists_32x32: 32x32 scaling list
195  */
196  struct ScalingList {
197  std::vector<int16_t> scaling_list_dc_coef_minus8_16x16 {6,0};
198  std::vector<int16_t> scaling_list_dc_coef_minus8_32x32 {2,0};
199 
200  std::array<std::array<uint8_t,16>,6> scaling_lists_4x4 {};
201  std::array<std::array<uint8_t,64>,6> scaling_lists_8x8 {};
202  std::array<std::array<uint8_t,64>,6> scaling_lists_16x16 {};
203  std::array<std::array<uint8_t,64>,2> scaling_lists_32x32 {};
204  };
205 
206  enum QuantMatrixSize : std::uint8_t
207  {
208  QUANT_MATIX_4X4 = 0,
209  QUANT_MATIX_8X8 = 1,
210  QUANT_MATIX_16X16 = 2,
212  };
213 
214 
215  HEVCParser(void) { ; }
216  HEVCParser(const HEVCParser& rhs);
217  ~HEVCParser(void) override { ; }
218 
219  /* random access point (RAP) are NAL type of:
220  * * stantaneous decoding refresh (IDR)
221  * * broken link access (BLA)
222  * * clean random access (CRA)
223  */
224  static bool NALisRAP(uint type)
225  {
226  return (BLA_W_LP <= type && type <= CRA_NUT);
227  }
228 
229  /*
230  3.73 intra random access point (IRAP) picture: A coded picture
231  for which each VCL NAL unit has nal_unit_type in the range of
232  BLA_W_LP to RSV_IRAP_VCL23, inclusive.
233  */
234  static bool NALisIRAP(uint type)
235  {
236  return (BLA_W_LP <= type && type <= RSV_IRAP_VCL23);
237  }
238 
239  static bool NALisVCL(uint type)
240  {
241  return (TAIL_N <= type && type <= RSV_VCL31);
242  }
243 
244  uint32_t addBytes(const uint8_t *bytes,
245  uint32_t byte_count,
246  uint64_t stream_offset) override;
247 
248  void Reset(void) override;
249 
250  QString NAL_type_str(int8_t type) override;
251 
252  uint pictureWidthCropped(void) const override;
253  uint pictureHeightCropped(void) const override;
254 
255  field_type getFieldType(void) const override { return FRAME; }
256  MythAVRational getFrameRate() const override;
257 
258  protected:
259  bool newAU(void);
260  void processRBSP(bool rbsp_complete);
261  bool profileTierLevel(BitReader& br,
262  bool profilePresentFlag,
263  int maxNumSubLayersMinus1);
266  bool parseSPS(BitReader& br);
267  bool parseVPS(BitReader& br);
268  bool parsePPS(BitReader& br);
269 
270  private:
271  uint32_t m_maxPicOrderCntLsb {0};
272  uint32_t m_picOrderCntMsb {0};
273  uint32_t m_picOrderCntVal {0};
274  uint32_t m_prevPicOrderCntLsb {0};
275  uint32_t m_prevPicOrderCntMsb {0};
276  uint32_t m_resolutionCheck {0};
277 
279 
280  uint8_t m_nalTemperalId {0};
281  uint8_t m_nuhLayerId {0};
282 
283  bool m_firstSliceSegmentInPicFlag {false};
284  bool m_nextNALisAU {false};
285  bool m_noRaslOutputFlag {false};
286  bool m_seenEOS {true};
287 
288  std::map<uint, SPS> m_sps;
289  std::map<uint, PPS> m_pps;
290  std::map<uint, VPS> m_vps;
291  std::map<uint, uint> m_poc;
292 };
293 
294 #endif /* HEVCPARSER_H */
HEVCParser::NALisVCL
static bool NALisVCL(uint type)
Definition: HEVCParser.h:258
HEVCParser::RSV_VCL_R15
@ RSV_VCL_R15
Definition: HEVCParser.h:97
HEVCParser::STSA_R
@ STSA_R
Definition: HEVCParser.h:82
HEVCParser::SPS::separate_colour_plane_flag
bool separate_colour_plane_flag
Definition: HEVCParser.h:171
HEVCParser::UNSPEC48
@ UNSPEC48
Definition: HEVCParser.h:168
HEVCParser::QUANT_MATIX_4X4
@ QUANT_MATIX_4X4
Definition: HEVCParser.h:227
HEVCParser::UNSPEC62
@ UNSPEC62
Definition: HEVCParser.h:182
HEVCParser::SPS::sub_layer_ordering_info_present_flag
bool sub_layer_ordering_info_present_flag
Definition: HEVCParser.h:172
HEVCParser::m_noRaslOutputFlag
bool m_noRaslOutputFlag
Definition: HEVCParser.h:304
HEVCParser
Definition: HEVCParser.h:32
HEVCParser::m_nalTemperalId
uint8_t m_nalTemperalId
Definition: HEVCParser.h:299
HEVCParser::RSV_IRAP_VCL23
@ RSV_IRAP_VCL23
Definition: HEVCParser.h:138
HEVCParser::ScalingList::scaling_lists_4x4
std::array< std::array< uint8_t, 16 >, 6 > scaling_lists_4x4
Definition: HEVCParser.h:219
HEVCParser::ShortTermRefPicSet::UsedByCurrPicS0
std::array< uint8_t, 16 > UsedByCurrPicS0
Definition: HEVCParser.h:191
HEVCParser::RADL_N
@ RADL_N
Definition: HEVCParser.h:84
HEVCParser::VPS::max_sub_layers
uint8_t max_sub_layers
Definition: HEVCParser.h:177
HEVCParser::ShortTermRefPicSet::NumNegativePics
uint8_t NumNegativePics
Definition: HEVCParser.h:194
HEVCParser::parseVPS
bool parseVPS(BitReader &br)
Definition: HEVCParser.cpp:1832
HEVCParser::UNSPEC49
@ UNSPEC49
Definition: HEVCParser.h:169
HEVCParser::RASL_N
@ RASL_N
Definition: HEVCParser.h:88
HEVCParser::UNSPEC50
@ UNSPEC50
Definition: HEVCParser.h:170
HEVCParser::SPS
Definition: HEVCParser.h:167
HEVCParser::QUANT_MATIX_32X32
@ QUANT_MATIX_32X32
Definition: HEVCParser.h:230
HEVCParser::VPS
Definition: HEVCParser.h:176
HEVCParser::m_picOrderCntMsb
uint32_t m_picOrderCntMsb
Definition: HEVCParser.h:291
HEVCParser::PPS
Definition: HEVCParser.h:180
HEVCParser::m_nalUnitType
uint m_nalUnitType
Definition: HEVCParser.h:297
HEVCParser::UNSPEC53
@ UNSPEC53
Definition: HEVCParser.h:173
HEVCParser::BLA_W_LP
@ BLA_W_LP
Definition: HEVCParser.h:113
HEVCParser::RSV_NVCL42
@ RSV_NVCL42
Definition: HEVCParser.h:161
H2645Parser.h
HEVCParser::parseSPS
bool parseSPS(BitReader &br)
Definition: HEVCParser.cpp:1575
HEVCParser::ShortTermRefPicSet::DeltaPocS1
std::array< int32_t, 16 > DeltaPocS1
Definition: HEVCParser.h:190
HEVCParser::NALisRAP
static bool NALisRAP(uint type)
Definition: HEVCParser.h:243
HEVCParser::SPS::log2_min_luma_coding_block_size
uint8_t log2_min_luma_coding_block_size
Definition: HEVCParser.h:168
HEVCParser::SUFFIX_SEI_NUT
@ SUFFIX_SEI_NUT
Definition: HEVCParser.h:158
HEVCParser::UNSPEC57
@ UNSPEC57
Definition: HEVCParser.h:177
HEVCParser::QuantMatrixSize
QuantMatrixSize
Definition: HEVCParser.h:225
HEVCParser::RSV_VCL28
@ RSV_VCL28
Definition: HEVCParser.h:144
HEVCParser::ShortTermRefPicSet::delta_rps_sign
uint8_t delta_rps_sign
Definition: HEVCParser.h:201
HEVCParser::RASL_R
@ RASL_R
Definition: HEVCParser.h:89
HEVCParser::AUD_NUT
@ AUD_NUT
Definition: HEVCParser.h:152
HEVCParser::PPS::num_extra_slice_header_bits
uint8_t num_extra_slice_header_bits
Definition: HEVCParser.h:183
HEVCParser::ShortTermRefPicSet::DeltaPocS0
std::array< int32_t, 16 > DeltaPocS0
Definition: HEVCParser.h:189
HEVCParser::TSA_N
@ TSA_N
Definition: HEVCParser.h:78
HEVCParser::UNSPEC63
@ UNSPEC63
Definition: HEVCParser.h:183
BitReader
Definition: bitreader.h:38
HEVCParser::EOB_NUT
@ EOB_NUT
Definition: HEVCParser.h:154
HEVCParser::ShortTermRefPicSet::NumDeltaPocs
uint8_t NumDeltaPocs
Definition: HEVCParser.h:193
HEVCParser::BLA_W_RADL
@ BLA_W_RADL
Definition: HEVCParser.h:114
HEVCParser::VPS_NUT
@ VPS_NUT
Definition: HEVCParser.h:149
HEVCParser::m_maxPicOrderCntLsb
uint32_t m_maxPicOrderCntLsb
Definition: HEVCParser.h:290
HEVCParser::m_pps
std::map< uint, PPS > m_pps
Definition: HEVCParser.h:308
HEVCParser::RSV_VCL_N14
@ RSV_VCL_N14
Definition: HEVCParser.h:93
HEVCParser::Reset
void Reset(void) override
Definition: HEVCParser.cpp:45
HEVCParser::UNSPEC59
@ UNSPEC59
Definition: HEVCParser.h:179
HEVCParser::pictureWidthCropped
uint pictureWidthCropped(void) const override
Definition: HEVCParser.cpp:2049
HEVCParser::ShortTermRefPicSet::UsedByCurrPicS1
std::array< uint8_t, 16 > UsedByCurrPicS1
Definition: HEVCParser.h:192
HEVCParser::ScalingList::scaling_list_dc_coef_minus8_16x16
std::vector< int16_t > scaling_list_dc_coef_minus8_16x16
Definition: HEVCParser.h:216
HEVCParser::STSA_N
@ STSA_N
Definition: HEVCParser.h:81
HEVCParser::~HEVCParser
~HEVCParser(void) override
Definition: HEVCParser.h:236
HEVCParser::ShortTermRefPicSet
Definition: HEVCParser.h:187
HEVCParser::UNSPEC51
@ UNSPEC51
Definition: HEVCParser.h:171
HEVCParser::addBytes
uint32_t addBytes(const uint8_t *bytes, uint32_t byte_count, uint64_t stream_offset) override
Definition: HEVCParser.cpp:126
HEVCParser::PREFIX_SEI_NUT
@ PREFIX_SEI_NUT
Definition: HEVCParser.h:157
HEVCParser::SPS::log2_diff_max_min_luma_coding_block_size
uint8_t log2_diff_max_min_luma_coding_block_size
Definition: HEVCParser.h:169
HEVCParser::CRA_NUT
@ CRA_NUT
Definition: HEVCParser.h:134
HEVCParser::ShortTermRefPicSet::NumPositivePics
uint8_t NumPositivePics
Definition: HEVCParser.h:195
HEVCParser::UNSPEC55
@ UNSPEC55
Definition: HEVCParser.h:175
HEVCParser::UNSPEC56
@ UNSPEC56
Definition: HEVCParser.h:176
HEVCParser::m_resolutionCheck
uint32_t m_resolutionCheck
Definition: HEVCParser.h:295
HEVCParser::RSV_VCL31
@ RSV_VCL31
Definition: HEVCParser.h:147
HEVCParser::PPS_NUT
@ PPS_NUT
Definition: HEVCParser.h:151
HEVCParser::m_prevPicOrderCntMsb
uint32_t m_prevPicOrderCntMsb
Definition: HEVCParser.h:294
HEVCParser::pictureHeightCropped
uint pictureHeightCropped(void) const override
Definition: HEVCParser.cpp:2060
HEVCParser::UNSPEC61
@ UNSPEC61
Definition: HEVCParser.h:181
HEVCParser::profileTierLevel
bool profileTierLevel(BitReader &br, bool profilePresentFlag, int maxNumSubLayersMinus1)
Definition: HEVCParser.cpp:576
HEVCParser::ScalingList::scaling_lists_16x16
std::array< std::array< uint8_t, 64 >, 6 > scaling_lists_16x16
Definition: HEVCParser.h:221
HEVCParser::RSV_VCL_N12
@ RSV_VCL_N12
Definition: HEVCParser.h:92
HEVCParser::getFrameRate
MythAVRational getFrameRate() const override
Definition: HEVCParser.cpp:2070
HEVCParser::UNSPEC60
@ UNSPEC60
Definition: HEVCParser.h:180
HEVCParser::RSV_VCL29
@ RSV_VCL29
Definition: HEVCParser.h:145
HEVCParser::UNSPEC52
@ UNSPEC52
Definition: HEVCParser.h:172
HEVCParser::RSV_VCL_R11
@ RSV_VCL_R11
Definition: HEVCParser.h:95
HEVCParser::RSV_VCL30
@ RSV_VCL30
Definition: HEVCParser.h:146
HEVCParser::TAIL_N
@ TAIL_N
Definition: HEVCParser.h:75
HEVCParser::RSV_VCL_R13
@ RSV_VCL_R13
Definition: HEVCParser.h:96
HEVCParser::EOS_NUT
@ EOS_NUT
Definition: HEVCParser.h:153
HEVCParser::TAIL_R
@ TAIL_R
Definition: HEVCParser.h:76
HEVCParser::BLA_N_LP
@ BLA_N_LP
Definition: HEVCParser.h:115
HEVCParser::ShortTermRefPicSet::inter_ref_pic_set_prediction_flag
bool inter_ref_pic_set_prediction_flag
Definition: HEVCParser.h:198
musicbrainzngs.compat.bytes
bytes
Definition: compat.py:49
HEVCParser::UNSPEC54
@ UNSPEC54
Definition: HEVCParser.h:174
HEVCParser::m_vps
std::map< uint, VPS > m_vps
Definition: HEVCParser.h:309
HEVCParser::RSV_VCL25
@ RSV_VCL25
Definition: HEVCParser.h:141
HEVCParser::parseSliceSegmentHeader
bool parseSliceSegmentHeader(BitReader &br)
Definition: HEVCParser.cpp:1248
HEVCParser::m_firstSliceSegmentInPicFlag
bool m_firstSliceSegmentInPicFlag
Definition: HEVCParser.h:302
HEVCParser::ScalingList::scaling_list_dc_coef_minus8_32x32
std::vector< int16_t > scaling_list_dc_coef_minus8_32x32
Definition: HEVCParser.h:217
HEVCParser::IDR_W_RADL
@ IDR_W_RADL
Definition: HEVCParser.h:126
HEVCParser::IDR_N_LP
@ IDR_N_LP
Definition: HEVCParser.h:127
HEVCParser::RSV_VCL27
@ RSV_VCL27
Definition: HEVCParser.h:143
HEVCParser::m_sps
std::map< uint, SPS > m_sps
Definition: HEVCParser.h:307
HEVCParser::getFieldType
field_type getFieldType(void) const override
Definition: HEVCParser.h:274
HEVCParser::RADL_R
@ RADL_R
Definition: HEVCParser.h:85
HEVCParser::SPS::log2_max_pic_order_cnt_lsb
uint8_t log2_max_pic_order_cnt_lsb
Definition: HEVCParser.h:170
HEVCParser::RSV_NVCL43
@ RSV_NVCL43
Definition: HEVCParser.h:162
HEVCParser::ShortTermRefPicSet::delta_idx_minus1
uint8_t delta_idx_minus1
Definition: HEVCParser.h:200
HEVCParser::processRBSP
void processRBSP(bool rbsp_complete)
Definition: HEVCParser.cpp:457
HEVCParser::SPS_NUT
@ SPS_NUT
Definition: HEVCParser.h:150
HEVCParser::ScalingList::scaling_lists_32x32
std::array< std::array< uint8_t, 64 >, 2 > scaling_lists_32x32
Definition: HEVCParser.h:222
HEVCParser::PPS::dependent_slice_segments_enabled_flag
bool dependent_slice_segments_enabled_flag
Definition: HEVCParser.h:181
HEVCParser::RSV_VCL24
@ RSV_VCL24
Definition: HEVCParser.h:140
HEVCParser::FD_NUT
@ FD_NUT
Definition: HEVCParser.h:155
HEVCParser::RSV_NVCL45
@ RSV_NVCL45
Definition: HEVCParser.h:164
HEVCParser::QUANT_MATIX_8X8
@ QUANT_MATIX_8X8
Definition: HEVCParser.h:228
HEVCParser::NALisIRAP
static bool NALisIRAP(uint type)
Definition: HEVCParser.h:253
HEVCParser::m_poc
std::map< uint, uint > m_poc
Definition: HEVCParser.h:310
H2645Parser::field_type
field_type
Definition: H2645Parser.h:42
MythAVRational
C++ wrapper for FFmpeg libavutil AVRational.
Definition: mythavrational.h:14
HEVCParser::RSV_VCL26
@ RSV_VCL26
Definition: HEVCParser.h:142
HEVCParser::parsePPS
bool parsePPS(BitReader &br)
Definition: HEVCParser.cpp:1965
uint16_t
unsigned short uint16_t
Definition: iso6937tables.h:3
H2645Parser
Definition: H2645Parser.h:38
HEVCParser::RSV_NVCL44
@ RSV_NVCL44
Definition: HEVCParser.h:163
HEVCParser::parseSliceSegmentLayer
bool parseSliceSegmentLayer(BitReader &br)
Definition: HEVCParser.cpp:1231
HEVCParser::newAU
bool newAU(void)
Definition: HEVCParser.cpp:248
HEVCParser::PPS::output_flag_present_flag
bool output_flag_present_flag
Definition: HEVCParser.h:182
HEVCParser::NAL_type_str
QString NAL_type_str(int8_t type) override
Definition: HEVCParser.cpp:50
HEVCParser::RSV_VCL_N10
@ RSV_VCL_N10
Definition: HEVCParser.h:91
HEVCParser::RSV_IRAP_VCL22
@ RSV_IRAP_VCL22
Definition: HEVCParser.h:137
HEVCParser::m_nuhLayerId
uint8_t m_nuhLayerId
Definition: HEVCParser.h:300
HEVCParser::NAL_unit_type
NAL_unit_type
Definition: HEVCParser.h:55
HEVCParser::RSV_NVCL46
@ RSV_NVCL46
Definition: HEVCParser.h:165
HEVCParser::ShortTermRefPicSet::abs_delta_rps_minus1
uint16_t abs_delta_rps_minus1
Definition: HEVCParser.h:199
HEVCParser::HEVCParser
HEVCParser(void)
Definition: HEVCParser.h:234
HEVCParser::ScalingList::scaling_lists_8x8
std::array< std::array< uint8_t, 64 >, 6 > scaling_lists_8x8
Definition: HEVCParser.h:220
HEVCParser::m_picOrderCntVal
uint32_t m_picOrderCntVal
Definition: HEVCParser.h:292
HEVCParser::m_nextNALisAU
bool m_nextNALisAU
Definition: HEVCParser.h:303
HEVCParser::RSV_NVCL47
@ RSV_NVCL47
Definition: HEVCParser.h:166
HEVCParser::TSA_R
@ TSA_R
Definition: HEVCParser.h:79
HEVCParser::m_seenEOS
bool m_seenEOS
Definition: HEVCParser.h:305
HEVCParser::RSV_NVCL41
@ RSV_NVCL41
Definition: HEVCParser.h:160
HEVCParser::PPS::sps_id
int sps_id
Definition: HEVCParser.h:184
HEVCParser::m_prevPicOrderCntLsb
uint32_t m_prevPicOrderCntLsb
Definition: HEVCParser.h:293
uint
unsigned int uint
Definition: freesurround.h:24
H2645Parser::FRAME
@ FRAME
Definition: H2645Parser.h:43
HEVCParser::ScalingList
Definition: HEVCParser.h:215
HEVCParser::UNSPEC58
@ UNSPEC58
Definition: HEVCParser.h:178
HEVCParser::QUANT_MATIX_16X16
@ QUANT_MATIX_16X16
Definition: HEVCParser.h:229