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