MythTV  master
mpegdescriptors.h
Go to the documentation of this file.
1 // -*- Mode: c++ -*-
2 // Copyright (c) 2003-2004, Daniel Thor Kristjansson
3 #ifndef MPEG_DESCRIPTORS_H
4 #define MPEG_DESCRIPTORS_H
5 
6 // C++ headers
7 #include <array>
8 #include <vector>
9 
10 // Qt headers
11 #include <QMutex>
12 #include <QString>
13 
14 // MythTV
15 #include "libmythbase/iso639.h"
16 #include "libmythtv/mythtvexp.h"
17 
18 using desc_list_t = std::vector<const unsigned char *>;
19 
21 {
22  public:
23  enum : std::uint8_t
24  {
25  // MPEG
26  video_stream = 0x02,
27  audio_stream = 0x03,
28  hierarchy = 0x04,
29  registration = 0x05, /* implemented */
32  video_window = 0x08,
33  conditional_access = 0x09, /* implemented */
34  iso_639_language = 0x0A, /* implemented */
35  system_clock = 0x0B, /* implemented */
37  copyright = 0x0D,
38  maximum_bitrate = 0x0E, /* implemented */
41  std = 0x11,
42  ibp = 0x12,
46  /* RESERVED = 0x16, */
47  npt_reference = 0x17,
48  npt_endpoint = 0x18,
49  stream_mode = 0x19,
50  stream_event = 0x1A,
51  mpeg4_video = 0x1B,
52  mpeg4_audio = 0x1C,
53  iod = 0x1D,
54  sl = 0x1E,
55  fmc = 0x1F,
57  mux_code = 0x21,
62  metadata = 0x26,
63  metadata_std = 0x27,
64  avc_video = 0x28, /* implemented */
65  ipmp = 0x29,
66  avc_timing_and_hrd = 0x2A, /* partial */
69  hevc_video = 0x38,
70 
71  // DVB Bluebook A038 (Feb 2019) p 36-38, Table 12
72  network_name = 0x40, /* implemented */
73  service_list = 0x41, /* implemented */
74  dvb_stuffing = 0x42, /* implemented */
75  satellite_delivery_system = 0x43, /* implemented */
76  cable_delivery_system = 0x44, /* implemented */
77  vbi_data = 0x45, /* partial */
78  vbi_teletext = 0x46, /* partial */
79  bouquet_name = 0x47, /* implemented */
80  service = 0x48, /* implemented, toString lacking */
81  country_availability = 0x49, /* implemented */
82  linkage = 0x4A, /* partial */
83  nvod_reference = 0x4B, /* partial */
84  dvb_time_shifted_service = 0x4C, /* partial */
85  short_event = 0x4D, /* implemented */
86  extended_event = 0x4E, /* implemented */
87  time_shifted_event = 0x4F, /* partial */
88 
89  component = 0x50, /* implemented, toString lacking */
90  mosaic = 0x51, /* partial */
91  stream_identifier = 0x52, /* implemented */
92  ca_identifier = 0x53, /* partial */
93  content = 0x54, /* implemented */
94  parental_rating = 0x55, /* partial */
95  teletext = 0x56, /* partial */
96  telephone = 0x57, /* partial */
98  subtitling = 0x59, /* partial */
99  terrestrial_delivery_system = 0x5A, /* implemented */
100  multilingual_network_name = 0x5B, /* partial */
101  multilingual_bouquet_name = 0x5C, /* partial */
102  multilingual_service_name = 0x5D, /* partial */
104  private_data_specifier = 0x5F, /* partial */
105 
106  service_move = 0x60, /* partial */
107  short_smoothing_buffer = 0x61, /* partial */
108  frequency_list = 0x62, /* implemented */
109  partial_transport_stream = 0x63, /* partial */
110  data_broadcast = 0x64, /* partial */
111  scrambling = 0x65, /* partial */
112  data_broadcast_id = 0x66, /* partial */
113  transport_stream = 0x67, /* partial */
114  dsng = 0x68, /* partial */
115  pdc = 0x69, /* partial */
116  ac3 = 0x6A, /* partial */
117  ancillary_data = 0x6B, /* partial */
118  cell_list = 0x6C, /* partial */
119  cell_frequency_link = 0x6D, /* partial */
120  announcement_support = 0x6E, /* partial */
122 
123  adaptation_field_data = 0x70, /* partial */
125  service_availability = 0x72, /* partial */
126  default_authority = 0x73, /* implemented */
128  tva_id = 0x75,
129  dvb_content_identifier = 0x76, /* partial */
132  s2_satellite_delivery_system = 0x79, /* partial */
133  eac3 = 0x7A,
134  dts = 0x7B,
135  aac = 0x7C,
138  extension = 0x7F,
139 
140  // DVB Bluebook A038 (Feb 2019) p 94, Table 109
141  //
142  // Extension descriptors
143  image_icon = 0x00,
148  message = 0x08,
152  xait_pid = 0x0C,
154  uri_linkage = 0x13,
158 
159  // ATSC
161  ac3_audio_stream = 0x81, /* partial */
163  caption_service = 0x86, /* implemented */
167 
168  // SCTE
169  scte_frame_rate = 0x82, /* implemented, also ATSC */
170  scte_extended_video = 0x83, /* implemented, also ATSC */
171  scte_component_name = 0x84, /* implemented, also ATSC */
172  scte_cue_identifier = 0x8A, /* implemented */
173  scte_frequency_spec = 0x90, /* implemented */
174  scte_modulation_params = 0x91, /* implemented */
175  scte_transport_stream_id = 0x92, /* implemented */
176  scte_revision_detection = 0x93, /* implemented */
177 
178  // ATSC
179  extended_channel_name = 0xA0, /* implemented */
182  component_name = 0xA3, /* implemented */
189  drm_control = 0xAA,
190  atsc_genre = 0xAB,
192 
193  atsc_content_identifier = 0xB6, /* partial */
194  };
195 };
196 
198 {
199  public:
200  enum : std::uint8_t
201  {
202  // These can conflict and should only be used
203  // on these specific networks.
204 
205  // Private -- UK and NL
206  dvb_logical_channel_descriptor = 0x83, /* implemented */
207  dvb_simulcast_channel_descriptor = 0x88, /* implemented */
208 
209  // Private -- NL Casema
212 
213  // Private -- Dish Network
215  dish_event_mpaa = 0x89, /* implemented */
216  dish_event_name = 0x91, /* implemented */
217  dish_event_description = 0x92, /* implemented */
218  dish_event_properties = 0x94, /* implemented */
219  dish_event_vchip = 0x95, /* implemented */
220  dish_event_tags = 0x96, /* implemented */
221 
222  // Private -- SES
224 
225  // Private -- CH UPC Cablecom
227 
228  // Private -- Sky Astra-2 28.2E and other Sky satellites
229  sky_lcn_table = 0xb1, /* implemented */
230 
231  // Private -- FreeSat Astra-2 28.2E
232  freesat_lcn_table = 0xd3, /* implemented */
233  freesat_region_table = 0xd4, /* implemented */
234  freesat_chan_cat_mapping = 0xd5, /* todo */
235  freesat_d6_table = 0xd6, /* unknown */
236  freesat_d7_table = 0xd7, /* unknown */
237  freesat_category_table = 0xd8, /* todo */
238  freesat_callsign = 0xd9, /* partial */
239 
240  // Private -- premiere.de
244 
245  // Private -- OpenTV
254  opentv_channel_list = 0xB1, /* sky_lcn_table */
255 
256  // Private -- CI Plus LPP
258  };
259 };
260 
261 /*
262  * Private_Data_Specifier_ID from http://www.dvbservices.com/identifiers/private_data_spec_id
263  */
265 {
266  public:
267  enum
268  {
269  SES = 0x00000001, // Société Européenne des Satellites
270  BSB1 = 0x00000002, // UK Sky (Astra 28.2E), Sky New Zealand (Optus D1 160E0)
271  CASEMA = 0x00000016, // NL Casema
272  EACEM = 0x00000028, // NL Ziggo
273  NORDIG = 0x00000029, // EU Nordig
274  CIPLUS = 0x00000040, // CI Plus LPP
275  ORS = 0x000001B0, // ORS comm GmbH & Co KG
276  UPC1 = 0x00000600, // UPC Cablecom
277  ITC = 0x0000233A, // Independent Television Commission
278  IRDETO = 0x00362275, // Irdeto
279  FSAT = 0x46534154, // UK BBC FreeSat on Astra 28.2E
280  OTV = 0x4f545600, // OpenTV
281  };
282 };
283 
284 /*
285  * Original_Network_ID from http://www.dvbservices.com/identifiers/original_network_id
286  */
288 {
289  public:
290  enum : std::uint16_t
291  {
292  SES2 = 0x0002, // Société Européenne des Satellites
293  BBC = 0x003B, // BBC / Freesat
294  TELENOR = 0x0046, // Telenor Norway
295  PREMIERE = 0x0085, // Sky Deutschland Fernsehen GmbH & Co. KG
296  SKYNZ = 0x00A9, // Sky New Zealand / Sky Network Television Ltd (NDS)
297  MCA = 0x1800, // Not defined in DVB-SI Original Network ID tables
298  NOZEMA = 0x2210, // Netherlands Digital Terrestrial Television
299  };
300 };
301 
303 {
304  public:
305  operator const unsigned char*() const { return m_data; }
306 
307  explicit MPEGDescriptor(const unsigned char *data, int len = 300) : m_data(data)
308  {
309  if ((len < 2) || (int(DescriptorLength()) + 2) > len)
310  m_data = nullptr;
311  }
312  explicit MPEGDescriptor(const std::vector<uint8_t> &data) : m_data(data.data())
313  {
314  if ((data.size() < 2) ||
315  ((static_cast<size_t>(DescriptorLength()) + 2) > data.size()))
316  m_data = nullptr;
317  }
318  MPEGDescriptor(const unsigned char *data,
319  int len, uint tag) : m_data(data)
320  {
321  if ((len < 2) || ((int(DescriptorLength()) + 2) > len)
322  || (DescriptorTag() != tag))
323  m_data = nullptr;
324  }
325  MPEGDescriptor(const std::vector<uint8_t> &data, uint tag) : m_data(data.data())
326  {
327  if ((data.size() < 2) ||
328  ((static_cast<size_t>(DescriptorLength()) + 2) > data.size())
329  || (DescriptorTag() != tag))
330  m_data = nullptr;
331  }
332  MPEGDescriptor(const unsigned char *data,
333  int len, uint tag, uint req_desc_len) : m_data(data)
334  {
335  if ((len < 2) || ((int(DescriptorLength()) + 2) > len)
336  || (DescriptorTag() != tag)
337  || (DescriptorLength() != req_desc_len))
338  m_data = nullptr;
339  }
340  virtual ~MPEGDescriptor() = default;
341 
342  bool IsValid(void) const { return m_data; }
343  uint size(void) const { return DescriptorLength() + 2; }
344 
345  uint DescriptorTag(void) const { return m_data[0]; }
346  uint DescriptorLength(void) const { return m_data[1]; }
347  uint DescriptorTagExtension(void) const { return m_data[2]; }
348  QString DescriptorTagString(void) const;
349 
350  virtual QString toString(void) const;
351  virtual QString toStringPD(uint priv_dsid) const;
352  virtual QString toStringXML(uint indent_level) const;
353 
354  static desc_list_t Parse(const unsigned char *data, uint len);
355  static desc_list_t ParseAndExclude(const unsigned char *data, uint len,
356  int excluded_descid);
357  static desc_list_t ParseOnlyInclude(const unsigned char *data, uint len,
358  int excluded_descid);
359 
360  static const unsigned char *Find(const desc_list_t &parsed, uint desc_tag);
361  static const unsigned char *FindExtension(const desc_list_t &parsed, uint desc_tag);
362  static desc_list_t FindAll(const desc_list_t &parsed, uint desc_tag);
363 
364  static const unsigned char *FindBestMatch(
365  const desc_list_t &parsed, uint desc_tag, QMap<uint,uint> &langPref);
366  static desc_list_t FindBestMatches(
367  const desc_list_t &parsed, uint desc_tag, QMap<uint,uint> &langPref);
368 
369  protected:
370  const unsigned char *m_data;
371 
372  public:
373  QString hexdump(void) const;
374  QString descrDump(const QString &name) const;
375 };
376 
377 // ISO 13181-1:2019 page 75
379 {
380  public:
381  explicit VideoStreamDescriptor(const unsigned char *data, int len = 300) :
382  MPEGDescriptor(data, len, DescriptorID::video_stream) { }
383  // Name bits loc expected value
384  // descriptor_tag 8 0.0 0x02
385  // descriptor_length 8 1.0
386  // multiple_frame_rate_flag 1 2.0
387  bool MultipleFrameRateFlag(void) const { return (m_data[2] & 0x80) != 0; }
388  // frame_rate_code 4 2.1
389  uint FrameRateCode(void) const { return (m_data[2]>>3) & 0x0F; }
390  // MPEG_1_only_flag 1 2.5
391  bool MPEG1OnlyFlag(void) const { return (m_data[2] & 0x04) != 0; }
392  // constrained_parameterflag 1 2.6
393  bool ConstrainedParameterFlag(void) const { return (m_data[2] & 0x02) != 0; }
394  // still_picture_flag 1 2.7
395  bool StillPictureFlag(void) const { return (m_data[2] & 0x01) != 0; }
396  // profile_and_level_indication 8 3.0
397  uint ProfileAndLevelIndication(void) const { return MPEG1OnlyFlag() ? 0 : m_data[3]; }
398  // chroma_format 2 4.0
399  uint ChromaFormat(void) const { return MPEG1OnlyFlag() ? 0 : (m_data[4] >> 6) & 0x03; }
400  // frame_rate_extension_flag 1 4.2
401  bool FrameRateExtensionFlag(void) const { return MPEG1OnlyFlag() ? false : (m_data[4] & 0x20) != 0; }
402 
403  QString toString() const override; // MPEGDescriptor
404 };
405 
406 // ISO 13181-1:2019 page 77
408 {
409  public:
410  explicit AudioStreamDescriptor(const unsigned char *data, int len = 300) :
411  MPEGDescriptor(data, len, DescriptorID::audio_stream) { }
412  // Name bits loc expected value
413  // descriptor_tag 8 0.0 0x03
414  // descriptor_length 8 1.0
415  // free_format_flag 1 2.0
416  bool FreeFormatFlag(void) const { return (m_data[2] & 0x80) != 0; }
417  // ID 1 2.1
418  bool ID(void) const { return (m_data[2] & 0x40) != 0; }
419  // layer 2 2.2
420  uint Layer(void) const { return (m_data[2] >> 4) & 0x03; }
421  // variable_rate_audio_indicator 1 2.4
422  bool VariableRateAudioIndicator(void) const { return (m_data[2] & 0x08) != 0; }
423  // reserved 3 2.5
424 
425  QString toString() const override; // MPEGDescriptor
426 };
427 
428 // a_52a.pdf p119, Table A1
430 {
431  public:
432  explicit RegistrationDescriptor(const unsigned char *data, int len = 300) :
433  MPEGDescriptor(data, len, DescriptorID::registration)
434  {
435  // The HD-PVR outputs a registration descriptor with a length
436  // of 8 rather than 4, so we accept any length >= 4, not just 4.
437  if (IsValid() && DescriptorLength() < 4)
438  m_data = nullptr;
439  }
440 
441  uint FormatIdentifier(void) const
442  { return (m_data[2]<<24) | (m_data[3]<<16) | (m_data[4]<<8) | m_data[5]; }
443  QString FormatIdentifierString(void) const
444  {
445  return QString("") + QChar(m_data[2]) + QChar(m_data[3]) +
446  QChar(m_data[4]) + QChar(m_data[5]);
447  }
448  QString toString() const override; // MPEGDescriptor
449 
450  private:
451  static void InitializeDescriptionMap(void);
452  static QString GetDescription(const QString &fmt);
453 
454  private:
455  static QMutex description_map_lock;
457  static QMap<QString,QString> description_map;
458 };
459 
460 // ISO 13181-1:2019 page 79
462 {
463  public:
464  explicit DataStreamAlignmentDescriptor(const unsigned char *data, int len = 300) :
465  MPEGDescriptor(data, len, DescriptorID::data_stream_alignment) { }
466  // Name bits loc expected value
467  // descriptor_tag 8 0.0 0x06
468  // descriptor_length 8 1.0
469  // alignment_type 2 2.0
470  uint AlignmentType(void) const { return m_data[2]; }
471 
472  QString toString() const override; // MPEGDescriptor
473 };
474 
476 {
477  public:
478  explicit ConditionalAccessDescriptor(const unsigned char *data, int len = 300) :
479  MPEGDescriptor(data, len, DescriptorID::conditional_access) { }
480 
481  uint SystemID(void) const { return m_data[2] << 8 | m_data[3]; }
482  uint PID(void) const { return (m_data[4] & 0x1F) << 8 | m_data[5]; }
483  uint DataSize(void) const { return DescriptorLength() - 4; }
484  const unsigned char *Data(void) const { return &m_data[6]; }
485  QString toString() const override; // MPEGDescriptor
486 };
487 
489 {
490  public:
491  explicit ISO639LanguageDescriptor(const unsigned char *data, int len = 300) :
492  MPEGDescriptor(data, len, DescriptorID::iso_639_language) { }
493 
494  const unsigned char* CodeRaw() const { return &m_data[2]; }
495  uint AudioType() const { return m_data[5]; }
496 
497  int LanguageKey(void) const
498  { return iso639_str3_to_key(&m_data[2]); }
499  QString LanguageString(void) const
500  { return iso639_key_to_str3(LanguageKey()); }
501  int CanonicalLanguageKey(void) const
503  QString CanonicalLanguageString(void) const
505 
506  QString toString() const override; // MPEGDescriptor
507 };
508 
509 // ISO 13181-1:2019 page 84
511 {
512  public:
513  explicit SystemClockDescriptor(const unsigned char *data, int len = 300) :
514  MPEGDescriptor(data, len, DescriptorID::system_clock) { }
515  // Name bits loc expected value
516  // descriptor_tag 8 0.0 0x0B
517  // descriptor_length 8 1.0
518  // external_clock_reference_indicator 2 2.0
519  bool ExternalClockReferenceIndicator(void) const { return ( m_data[2]&0x80 ) != 0; }
520  // reserved 1 2.1
521  // clock_accuracy_integer 6 2.2
522  uint ClockAccuracyInteger(void) const { return m_data[2]&0x3F; }
523  // clock_accuracy_exponent 3 3.0
524  uint ClockAccuracyExponent(void) const { return m_data[3]>>5; }
525  // reserved 5 3.3
526 
527  QString toString() const override; // MPEGDescriptor
528 };
529 
530 // ISO 13181-1:2019 page 86
532 {
533  public:
534  explicit MaximumBitrateDescriptor(const unsigned char *data, int len = 300) :
535  MPEGDescriptor(data, len, DescriptorID::maximum_bitrate) { }
536  // Name bits loc expected value
537  // descriptor_tag 8 0.0 0x0E
538  // descriptor_length 8 1.0 0x03
539  // reserved 2 2.0
540  // maximum_bitrate 22 2.2
541  uint MaximumBitrate(void) const
542  { return (m_data[2] & 0x3f) << 16 | m_data[3]<<8 | m_data[4]; }
543  QString toString() const override; // MPEGDescriptor
544 };
545 
546 // ISO/IEC 13818-1:2019 (E) p87
548 {
549  public:
550  explicit SmoothingBufferDescriptor(const unsigned char *data, int len = 300) :
551  MPEGDescriptor(data, len, DescriptorID::smoothing_buffer) { }
552  // Name bits loc expected value
553  // descriptor_tag 8 0.0 0x10
554  // descriptor_length 8 1.0 0x06
555 
556  // reserved 2 2.0
557  // sb_leak_rate 22 2.2
558  uint SBLeakRate(void) const
559  { return (m_data[2] & 0x3f) << 16 | m_data[3]<<8 | m_data[4]; }
560  // reserved 2 5.0
561  // sb_size 2 5.2
562  uint SBSize(void) const
563  { return (m_data[5] & 0x3f) << 16 | m_data[6]<<8 | m_data[7]; }
564  QString toString(void) const override; // MPEGDescriptor
565 };
566 
569 {
570  public:
571  explicit AVCVideoDescriptor(const unsigned char *data, int len = 300) :
572  MPEGDescriptor(data, len, DescriptorID::avc_video) { }
573  // Name bits loc expected value
574  // descriptor_tag 8 0.0 0x28
575  // descriptor_length 8 1.0
576  // profile_idc 8 2.0
577  uint ProfileIDC(void) const { return m_data[2]; }
578  // constraint_set0_flag 1 3.0
579  bool ConstraintSet0(void) const { return ( m_data[3]&0x80 ) != 0; }
580  // constraint_set1_flag 1 3.1
581  bool ConstraintSet1(void) const { return ( m_data[3]&0x40 ) != 0; }
582  // constraint_set2_flag 1 3.2
583  bool ConstraintSet2(void) const { return ( m_data[3]&0x20 ) != 0; }
584  // AVC_compatible_flags 5 3.3
585  uint AVCCompatible(void) const { return m_data[3]&0x1f; }
586  // level_idc 8 4.0
587  uint LevelIDC(void) const { return m_data[4]; }
588  // AVC_still_present 1 5.0
589  bool AVCStill(void) const { return ( m_data[5]&0x80 ) != 0; }
590  // AVC_24_hour_picture_flag 1 5.1
591  bool AVC24HourPicture(void) const { return ( m_data[5]&0x40 ) != 0; }
593  const { return ( m_data[5]&0x20 ) != 0; }
594  // reserved 6 bslbf
595  QString toString() const override; // MPEGDescriptor
596 };
597 
601 {
602  public:
603  explicit AVCTimingAndHRDDescriptor(const unsigned char *data, int len = 300) :
604  MPEGDescriptor(data, len, DescriptorID::avc_timing_and_hrd) { }
605  // Name bits loc expected value
606  // descriptor_tag 8 0.0 0x
607  // descriptor_length 8 1.0
608  // hrd_management_valid 1 2.0
609  bool HRDManagementValid(void) const { return ( m_data[2]&0x80 ) != 0; }
610  // reserved 6 2.1
611  // picture_and_timing_info_present 1 2.7
612  bool HasPictureAndTimingInfo(void) const { return (m_data[2]&0x01) != 0;}
613  // if (picture_and_timing_info_present) {
614  // 90kHz_flag 1 3.0
615  // reserved 7 3.1
616  // if (90kHz_flag == '0') {
617  // N 32 4.0 uimsbf
618  // K 32 8.0 uimsbf
619  // }
620  // num_units_in_tick 32 (90khz)?4.0:12.0 uimsbf
621  // }
622  // fixed_frame_rate_flag 1 (pict_info)?((90khz)?8.0:16.0):3.0
623  // temporal_poc_flag 1 (pict_info)?((90khz)?8.1:16.1):3.1
624  // picture_to_display_conversion_flag 1 (pict_info)?((90khz)?8.2:16.2):3.2
625  // reserved 5 bslbf
626 };
627 
631 {
632  public:
633  explicit HEVCVideoDescriptor(const unsigned char *data, int len = 300) :
634  MPEGDescriptor(data, len, DescriptorID::hevc_video) { }
635  // Name bits loc expected value
636  // descriptor_tag 8 0.0 0x38
637  // descriptor_length 8 1.0
638 
639  // the encoding of the following is specified in Rec. ITU-T H.265 | ISO/IEC 23008-2
640  // profile_space 2 2.0
641  uint ProfileSpace(void) const { return (m_data[2]&0xC0) >> 6; }
642  // tier_flag 1 2.2
643  bool Tier(void) const { return (m_data[2]&0x20) != 0; }
644  // profile_idc 5 2.3
645  uint ProfileIDC(void) const { return m_data[2]&0x1F; }
646  // profile_compatibility_indication 32 3.0
647  // progressive_source_flag 1 7.0
648  // interlaced_source_flag 1 7.1
649  // non_packed_constraint_flag 1 7.2
650  // frame_only_constraint_flag 1 7.3
651  // reserved_zero_44bits 44 7.4
652  // level_idc 8 13.0
653 
654  // temporal_layer_subset_flag 1 14.0
655  // HEVC_still_present_flag 1 14.1
656  // HEVC_24hr_picture_present_flag 1 14.2
657  // reserved 5 14.3
658 
659  // if temporal_layer_subset_flag == true and
660  // descriptor_length == 17 instead of 15 then
661  // reserved 5 15.0
662  // temporal_id_min 3 15.5
663  // reserved 5 16.0
664  // temporal_id_max 3 16.5
665 
666  QString toString() const override; // MPEGDescriptor
667 };
668 
669 // class HEVCTimingAndHRDDescriptor : public MPEGDescriptor
670 // {
671 // explicit HEVCTimingAndHRDDescriptor(const unsigned char *data, int len = 300) :
672 // MPEGDescriptor(data, len, DescriptorID::hevc_timing_and_hrd) { }
673 // // Name bits loc expected value
674 // // descriptor_tag 8 0.0 0x38
675 // // descriptor_length 8 1.0
676 // };
677 
678 #endif // MPEG_DESCRIPTORS_H
DescriptorID
Definition: mpegdescriptors.h:20
DescriptorID::dvb_content_identifier
@ dvb_content_identifier
Definition: mpegdescriptors.h:129
DescriptorID::ibp
@ ibp
Definition: mpegdescriptors.h:42
DescriptorID::dvb_time_shifted_service
@ dvb_time_shifted_service
Definition: mpegdescriptors.h:84
DescriptorID::metadata
@ metadata
Definition: mpegdescriptors.h:62
VideoStreamDescriptor::StillPictureFlag
bool StillPictureFlag(void) const
Definition: mpegdescriptors.h:395
VideoStreamDescriptor::VideoStreamDescriptor
VideoStreamDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:381
PrivateDescriptorID::opentv_channel_list
@ opentv_channel_list
Definition: mpegdescriptors.h:254
DescriptorID::data_broadcast
@ data_broadcast
Definition: mpegdescriptors.h:110
MaximumBitrateDescriptor::toString
QString toString() const override
Definition: mpegdescriptors.cpp:903
iso639_key_to_canonical_key
int iso639_key_to_canonical_key(int iso639_2)
Definition: iso639.cpp:118
MythDate::toString
QString toString(const QDateTime &raw_dt, uint format)
Returns formatted string representing the time.
Definition: mythdate.cpp:93
SystemClockDescriptor::ExternalClockReferenceIndicator
bool ExternalClockReferenceIndicator(void) const
Definition: mpegdescriptors.h:519
DescriptorID::dsng
@ dsng
Definition: mpegdescriptors.h:114
DescriptorID::mux_code
@ mux_code
Definition: mpegdescriptors.h:57
ISO639LanguageDescriptor::CanonicalLanguageString
QString CanonicalLanguageString(void) const
Definition: mpegdescriptors.h:503
DescriptorID::bouquet_name
@ bouquet_name
Definition: mpegdescriptors.h:79
AudioStreamDescriptor
Definition: mpegdescriptors.h:407
DescriptorID::private_data_indicator
@ private_data_indicator
Definition: mpegdescriptors.h:39
PrivateDescriptorID::dish_event_vchip
@ dish_event_vchip
Definition: mpegdescriptors.h:219
DescriptorID::satellite_delivery_system
@ satellite_delivery_system
Definition: mpegdescriptors.h:75
HEVCVideoDescriptor::ProfileSpace
uint ProfileSpace(void) const
Definition: mpegdescriptors.h:641
DescriptorID::sl
@ sl
Definition: mpegdescriptors.h:54
MPEGDescriptor::DescriptorTag
uint DescriptorTag(void) const
Definition: mpegdescriptors.h:345
DescriptorID::smoothing_buffer
@ smoothing_buffer
Definition: mpegdescriptors.h:40
DescriptorID::multiprotocol_encapsulation
@ multiprotocol_encapsulation
Definition: mpegdescriptors.h:186
DescriptorID::component_name
@ component_name
Definition: mpegdescriptors.h:182
MPEGDescriptor::DescriptorLength
uint DescriptorLength(void) const
Definition: mpegdescriptors.h:346
DescriptorID::npt_endpoint
@ npt_endpoint
Definition: mpegdescriptors.h:48
DescriptorID::scte_frequency_spec
@ scte_frequency_spec
Definition: mpegdescriptors.h:173
DescriptorID::nvod_reference
@ nvod_reference
Definition: mpegdescriptors.h:83
DescriptorID::maximum_bitrate
@ maximum_bitrate
Definition: mpegdescriptors.h:38
SystemClockDescriptor::ClockAccuracyInteger
uint ClockAccuracyInteger(void) const
Definition: mpegdescriptors.h:522
DescriptorID::atsc_ca_descriptor
@ atsc_ca_descriptor
Definition: mpegdescriptors.h:165
false
VERBOSE_PREAMBLE false
Definition: verbosedefs.h:89
DescriptorID::multiplex_buffer_utilization
@ multiplex_buffer_utilization
Definition: mpegdescriptors.h:36
ISO639LanguageDescriptor::AudioType
uint AudioType() const
Definition: mpegdescriptors.h:495
MPEGDescriptor::MPEGDescriptor
MPEGDescriptor(const std::vector< uint8_t > &data)
Definition: mpegdescriptors.h:312
DescriptorID::atsc_time_shifted_service
@ atsc_time_shifted_service
Definition: mpegdescriptors.h:181
AVCVideoDescriptor::ProfileIDC
uint ProfileIDC(void) const
Definition: mpegdescriptors.h:577
PrivateDataSpecifierID::IRDETO
@ IRDETO
Definition: mpegdescriptors.h:278
DescriptorID::service_move
@ service_move
Definition: mpegdescriptors.h:106
DescriptorID::service_relocated
@ service_relocated
Definition: mpegdescriptors.h:151
DescriptorID::network_change_notify
@ network_change_notify
Definition: mpegdescriptors.h:147
AudioStreamDescriptor::VariableRateAudioIndicator
bool VariableRateAudioIndicator(void) const
Definition: mpegdescriptors.h:422
SmoothingBufferDescriptor::SmoothingBufferDescriptor
SmoothingBufferDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:550
DescriptorID::avc_video
@ avc_video
Definition: mpegdescriptors.h:64
PrivateDescriptorID::ci_protection_descriptor
@ ci_protection_descriptor
Definition: mpegdescriptors.h:257
DescriptorID::scte_extended_video
@ scte_extended_video
Definition: mpegdescriptors.h:170
DescriptorID::network_name
@ network_name
Definition: mpegdescriptors.h:72
PrivateDescriptorID::dish_event_tags
@ dish_event_tags
Definition: mpegdescriptors.h:220
DescriptorID::partial_transport_stream
@ partial_transport_stream
Definition: mpegdescriptors.h:109
AudioStreamDescriptor::Layer
uint Layer(void) const
Definition: mpegdescriptors.h:420
DescriptorID::data_broadcast_id
@ data_broadcast_id
Definition: mpegdescriptors.h:112
mythtvexp.h
PrivateDataSpecifierID::EACEM
@ EACEM
Definition: mpegdescriptors.h:272
PrivateDataSpecifierID::ITC
@ ITC
Definition: mpegdescriptors.h:277
ISO639LanguageDescriptor
Definition: mpegdescriptors.h:488
DescriptorID::cell_frequency_link
@ cell_frequency_link
Definition: mpegdescriptors.h:119
DescriptorID::fmx_buffer_size
@ fmx_buffer_size
Definition: mpegdescriptors.h:58
DescriptorID::linkage
@ linkage
Definition: mpegdescriptors.h:82
AVCVideoDescriptor::FramePackingSEINotPresentFlag
bool FramePackingSEINotPresentFlag(void) const
Definition: mpegdescriptors.h:592
DescriptorID::metadata_std
@ metadata_std
Definition: mpegdescriptors.h:63
DescriptorID::fmc
@ fmc
Definition: mpegdescriptors.h:55
DescriptorID::conditional_access
@ conditional_access
Definition: mpegdescriptors.h:33
DescriptorID::application_signalling
@ application_signalling
Definition: mpegdescriptors.h:121
RegistrationDescriptor::toString
QString toString() const override
Definition: mpegdescriptors.cpp:864
MaximumBitrateDescriptor::MaximumBitrate
uint MaximumBitrate(void) const
Definition: mpegdescriptors.h:541
DescriptorID::extension
@ extension
Definition: mpegdescriptors.h:138
DescriptorID::caption_service
@ caption_service
Definition: mpegdescriptors.h:163
SystemClockDescriptor::toString
QString toString() const override
Definition: mpegdescriptors.cpp:895
DescriptorID::external_es_id
@ external_es_id
Definition: mpegdescriptors.h:56
DataStreamAlignmentDescriptor::DataStreamAlignmentDescriptor
DataStreamAlignmentDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:464
PrivateDescriptorID::dish_event_description
@ dish_event_description
Definition: mpegdescriptors.h:217
AVCTimingAndHRDDescriptor::HRDManagementValid
bool HRDManagementValid(void) const
Definition: mpegdescriptors.h:609
DescriptorID::service_availability
@ service_availability
Definition: mpegdescriptors.h:125
ISO639LanguageDescriptor::toString
QString toString() const override
Definition: mpegdescriptors.cpp:888
DescriptorID::terrestrial_delivery_system
@ terrestrial_delivery_system
Definition: mpegdescriptors.h:99
DescriptorID::supplementary_audio
@ supplementary_audio
Definition: mpegdescriptors.h:146
DescriptorID::atsc_data_service
@ atsc_data_service
Definition: mpegdescriptors.h:183
MaximumBitrateDescriptor
Definition: mpegdescriptors.h:531
VideoStreamDescriptor::FrameRateExtensionFlag
bool FrameRateExtensionFlag(void) const
Definition: mpegdescriptors.h:401
SmoothingBufferDescriptor
Definition: mpegdescriptors.h:547
DescriptorID::multilingual_network_name
@ multilingual_network_name
Definition: mpegdescriptors.h:100
DescriptorID::mpeg4_audio
@ mpeg4_audio
Definition: mpegdescriptors.h:52
PrivateDescriptorID::nordig_content_protection
@ nordig_content_protection
Definition: mpegdescriptors.h:223
RegistrationDescriptor
Definition: mpegdescriptors.h:429
DescriptorID::dvb_stuffing
@ dvb_stuffing
Definition: mpegdescriptors.h:74
PrivateDescriptorID::freesat_lcn_table
@ freesat_lcn_table
Definition: mpegdescriptors.h:232
DescriptorID::target_background_grid
@ target_background_grid
Definition: mpegdescriptors.h:31
DescriptorID::content_advisory
@ content_advisory
Definition: mpegdescriptors.h:164
ConditionalAccessDescriptor::DataSize
uint DataSize(void) const
Definition: mpegdescriptors.h:483
DescriptorID::related_content
@ related_content
Definition: mpegdescriptors.h:127
SystemClockDescriptor::ClockAccuracyExponent
uint ClockAccuracyExponent(void) const
Definition: mpegdescriptors.h:524
VideoStreamDescriptor::toString
QString toString() const override
Definition: mpegdescriptors.cpp:770
DescriptorID::aac
@ aac
Definition: mpegdescriptors.h:135
RegistrationDescriptor::FormatIdentifierString
QString FormatIdentifierString(void) const
Definition: mpegdescriptors.h:443
DescriptorID::ancillary_data
@ ancillary_data
Definition: mpegdescriptors.h:117
DescriptorID::std
@ std
Definition: mpegdescriptors.h:41
PrivateDataSpecifierID::UPC1
@ UPC1
Definition: mpegdescriptors.h:276
DescriptorID::deferred_association_tag
@ deferred_association_tag
Definition: mpegdescriptors.h:45
VideoStreamDescriptor::ChromaFormat
uint ChromaFormat(void) const
Definition: mpegdescriptors.h:399
DescriptorID::iso_639_language
@ iso_639_language
Definition: mpegdescriptors.h:34
PrivateDescriptorID::freesat_category_table
@ freesat_category_table
Definition: mpegdescriptors.h:237
SystemClockDescriptor::SystemClockDescriptor
SystemClockDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:513
VideoStreamDescriptor::FrameRateCode
uint FrameRateCode(void) const
Definition: mpegdescriptors.h:389
AVCTimingAndHRDDescriptor::HasPictureAndTimingInfo
bool HasPictureAndTimingInfo(void) const
Definition: mpegdescriptors.h:612
DescriptorID::system_clock
@ system_clock
Definition: mpegdescriptors.h:35
MPEGDescriptor::MPEGDescriptor
MPEGDescriptor(const unsigned char *data, int len, uint tag)
Definition: mpegdescriptors.h:318
PrivateDescriptorID::freesat_callsign
@ freesat_callsign
Definition: mpegdescriptors.h:238
DescriptorID::dcc_arriving_request
@ dcc_arriving_request
Definition: mpegdescriptors.h:188
Parse
Definition: rssparse.h:188
DescriptorID::copyright
@ copyright
Definition: mpegdescriptors.h:37
OriginalNetworkID::SKYNZ
@ SKYNZ
Definition: mpegdescriptors.h:296
OriginalNetworkID::PREMIERE
@ PREMIERE
Definition: mpegdescriptors.h:295
PrivateDataSpecifierID::BSB1
@ BSB1
Definition: mpegdescriptors.h:270
VideoStreamDescriptor
Definition: mpegdescriptors.h:378
MPEGDescriptor::IsValid
bool IsValid(void) const
Definition: mpegdescriptors.h:342
DescriptorID::hierarchy
@ hierarchy
Definition: mpegdescriptors.h:28
DescriptorID::frequency_list
@ frequency_list
Definition: mpegdescriptors.h:108
DescriptorID::extended_channel_name
@ extended_channel_name
Definition: mpegdescriptors.h:179
PrivateDescriptorID::dish_event_name
@ dish_event_name
Definition: mpegdescriptors.h:216
DescriptorID::s2x_satellite_delivery_system
@ s2x_satellite_delivery_system
Definition: mpegdescriptors.h:157
ISO639LanguageDescriptor::CodeRaw
const unsigned char * CodeRaw() const
Definition: mpegdescriptors.h:494
ConditionalAccessDescriptor::Data
const unsigned char * Data(void) const
Definition: mpegdescriptors.h:484
OriginalNetworkID::NOZEMA
@ NOZEMA
Definition: mpegdescriptors.h:298
DescriptorID::scte_cue_identifier
@ scte_cue_identifier
Definition: mpegdescriptors.h:172
DescriptorID::scte_frame_rate
@ scte_frame_rate
Definition: mpegdescriptors.h:169
DescriptorID::atsc_program_identifier
@ atsc_program_identifier
Definition: mpegdescriptors.h:162
HEVCVideoDescriptor::Tier
bool Tier(void) const
Definition: mpegdescriptors.h:643
DescriptorID::t2_delivery_system
@ t2_delivery_system
Definition: mpegdescriptors.h:144
DescriptorID::transport_stream
@ transport_stream
Definition: mpegdescriptors.h:113
DescriptorID::atsc_content_identifier
@ atsc_content_identifier
Definition: mpegdescriptors.h:193
DescriptorID::component
@ component
Definition: mpegdescriptors.h:89
PrivateDescriptorID::opentv_summaries_4
@ opentv_summaries_4
Definition: mpegdescriptors.h:253
DescriptorID::scrambling
@ scrambling
Definition: mpegdescriptors.h:111
ConditionalAccessDescriptor::SystemID
uint SystemID(void) const
Definition: mpegdescriptors.h:481
OriginalNetworkID::TELENOR
@ TELENOR
Definition: mpegdescriptors.h:294
PrivateDescriptorID::freesat_region_table
@ freesat_region_table
Definition: mpegdescriptors.h:233
MPEGDescriptor
Definition: mpegdescriptors.h:302
DescriptorID::scte_revision_detection
@ scte_revision_detection
Definition: mpegdescriptors.h:176
DescriptorID::metadata_pointer
@ metadata_pointer
Definition: mpegdescriptors.h:61
VideoStreamDescriptor::MPEG1OnlyFlag
bool MPEG1OnlyFlag(void) const
Definition: mpegdescriptors.h:391
DescriptorID::atsc_stuffing
@ atsc_stuffing
Definition: mpegdescriptors.h:160
DescriptorID::default_authority
@ default_authority
Definition: mpegdescriptors.h:126
DescriptorID::service_list
@ service_list
Definition: mpegdescriptors.h:73
AVCVideoDescriptor::AVCVideoDescriptor
AVCVideoDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:571
MPEGDescriptor::MPEGDescriptor
MPEGDescriptor(const std::vector< uint8_t > &data, uint tag)
Definition: mpegdescriptors.h:325
MPEGDescriptor::m_data
const unsigned char * m_data
Definition: mpegdescriptors.h:370
RegistrationDescriptor::RegistrationDescriptor
RegistrationDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:432
DescriptorID::image_icon
@ image_icon
Definition: mpegdescriptors.h:143
PrivateDescriptorID::ziggo_package_descriptor
@ ziggo_package_descriptor
Definition: mpegdescriptors.h:211
ConditionalAccessDescriptor
Definition: mpegdescriptors.h:475
desc_list_t
std::vector< const unsigned char * > desc_list_t
Definition: mpegdescriptors.h:18
DescriptorID::ac3_audio_stream
@ ac3_audio_stream
Definition: mpegdescriptors.h:161
DescriptorID::xait_location
@ xait_location
Definition: mpegdescriptors.h:136
DescriptorID::ac3
@ ac3
Definition: mpegdescriptors.h:116
DescriptorID::service_identifier
@ service_identifier
Definition: mpegdescriptors.h:124
AVCTimingAndHRDDescriptor
ISO 13818-1:2000/Amd.3:2004 page 12 ISO/IEC 13818-1:2019 (E) p 103.
Definition: mpegdescriptors.h:600
DescriptorID::hevc_video
@ hevc_video
Definition: mpegdescriptors.h:69
SmoothingBufferDescriptor::SBLeakRate
uint SBLeakRate(void) const
Definition: mpegdescriptors.h:558
DescriptorID::s2_satellite_delivery_system
@ s2_satellite_delivery_system
Definition: mpegdescriptors.h:132
AudioStreamDescriptor::ID
bool ID(void) const
Definition: mpegdescriptors.h:418
DataStreamAlignmentDescriptor::toString
QString toString() const override
Definition: mpegdescriptors.cpp:876
PrivateDescriptorID::dvb_simulcast_channel_descriptor
@ dvb_simulcast_channel_descriptor
Definition: mpegdescriptors.h:207
AVCVideoDescriptor::AVC24HourPicture
bool AVC24HourPicture(void) const
Definition: mpegdescriptors.h:591
AudioStreamDescriptor::FreeFormatFlag
bool FreeFormatFlag(void) const
Definition: mpegdescriptors.h:416
AVCTimingAndHRDDescriptor::AVCTimingAndHRDDescriptor
AVCTimingAndHRDDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:603
DescriptorID::data_stream_alignment
@ data_stream_alignment
Definition: mpegdescriptors.h:30
DescriptorID::content_labeling
@ content_labeling
Definition: mpegdescriptors.h:60
DescriptorID::scte_component_name
@ scte_component_name
Definition: mpegdescriptors.h:171
PrivateDataSpecifierID::NORDIG
@ NORDIG
Definition: mpegdescriptors.h:273
DescriptorID::stream_identifier
@ stream_identifier
Definition: mpegdescriptors.h:91
VideoStreamDescriptor::MultipleFrameRateFlag
bool MultipleFrameRateFlag(void) const
Definition: mpegdescriptors.h:387
ISO639LanguageDescriptor::ISO639LanguageDescriptor
ISO639LanguageDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:491
DescriptorID::video_window
@ video_window
Definition: mpegdescriptors.h:32
AVCVideoDescriptor::ConstraintSet2
bool ConstraintSet2(void) const
Definition: mpegdescriptors.h:583
DescriptorID::iod
@ iod
Definition: mpegdescriptors.h:53
DescriptorID::ca_identifier
@ ca_identifier
Definition: mpegdescriptors.h:92
MPEGDescriptor::DescriptorTagExtension
uint DescriptorTagExtension(void) const
Definition: mpegdescriptors.h:347
OriginalNetworkID::SES2
@ SES2
Definition: mpegdescriptors.h:292
DescriptorID::atsc_private_information
@ atsc_private_information
Definition: mpegdescriptors.h:191
DescriptorID::ecm_repetition_rate
@ ecm_repetition_rate
Definition: mpegdescriptors.h:131
HEVCVideoDescriptor::HEVCVideoDescriptor
HEVCVideoDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:633
DescriptorID::eac3
@ eac3
Definition: mpegdescriptors.h:133
DescriptorID::subtitling
@ subtitling
Definition: mpegdescriptors.h:98
DescriptorID::drm_control
@ drm_control
Definition: mpegdescriptors.h:189
DescriptorID::ipmp
@ ipmp
Definition: mpegdescriptors.h:65
DescriptorID::cell_list
@ cell_list
Definition: mpegdescriptors.h:118
iso639_key_to_str3
static QString iso639_key_to_str3(int code)
Definition: iso639.h:45
PrivateDataSpecifierID::CIPLUS
@ CIPLUS
Definition: mpegdescriptors.h:274
RegistrationDescriptor::FormatIdentifier
uint FormatIdentifier(void) const
Definition: mpegdescriptors.h:441
DescriptorID::multilingual_bouquet_name
@ multilingual_bouquet_name
Definition: mpegdescriptors.h:101
HEVCVideoDescriptor
ISO 13818-1:2013/FDAM 3 (E) page 7 ISO/IEC 13818-1:2019 (E) page 121.
Definition: mpegdescriptors.h:630
DescriptorID::dcc_departing_request
@ dcc_departing_request
Definition: mpegdescriptors.h:187
DescriptorID::service
@ service
Definition: mpegdescriptors.h:80
DescriptorID::announcement_support
@ announcement_support
Definition: mpegdescriptors.h:120
DescriptorID::multilingual_component
@ multilingual_component
Definition: mpegdescriptors.h:103
ISO639LanguageDescriptor::LanguageKey
int LanguageKey(void) const
Definition: mpegdescriptors.h:497
DescriptorID::cable_delivery_system
@ cable_delivery_system
Definition: mpegdescriptors.h:76
ISO639LanguageDescriptor::LanguageString
QString LanguageString(void) const
Definition: mpegdescriptors.h:499
DescriptorID::target_region_name
@ target_region_name
Definition: mpegdescriptors.h:150
DescriptorID::stream_mode
@ stream_mode
Definition: mpegdescriptors.h:49
DescriptorID::time_slice_fec_identifier
@ time_slice_fec_identifier
Definition: mpegdescriptors.h:130
AudioStreamDescriptor::AudioStreamDescriptor
AudioStreamDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:410
AVCVideoDescriptor::AVCStill
bool AVCStill(void) const
Definition: mpegdescriptors.h:589
PrivateDescriptorID::dvb_logical_channel_descriptor
@ dvb_logical_channel_descriptor
Definition: mpegdescriptors.h:206
PrivateDescriptorID::casema_video_on_demand
@ casema_video_on_demand
Definition: mpegdescriptors.h:210
PrivateDescriptorID::upc_event_episode_title
@ upc_event_episode_title
Definition: mpegdescriptors.h:226
DescriptorID::time_shifted_event
@ time_shifted_event
Definition: mpegdescriptors.h:87
MTV_PUBLIC
#define MTV_PUBLIC
Definition: mythtvexp.h:15
MPEGDescriptor::size
uint size(void) const
Definition: mpegdescriptors.h:343
PrivateDescriptorID::sky_lcn_table
@ sky_lcn_table
Definition: mpegdescriptors.h:229
PrivateDescriptorID::premiere_content_transmission
@ premiere_content_transmission
Definition: mpegdescriptors.h:243
SmoothingBufferDescriptor::SBSize
uint SBSize(void) const
Definition: mpegdescriptors.h:562
OriginalNetworkID::BBC
@ BBC
Definition: mpegdescriptors.h:293
DescriptorID::npt_reference
@ npt_reference
Definition: mpegdescriptors.h:47
SystemClockDescriptor
Definition: mpegdescriptors.h:510
DescriptorID::vbi_teletext
@ vbi_teletext
Definition: mpegdescriptors.h:78
DescriptorID::fta_content_management
@ fta_content_management
Definition: mpegdescriptors.h:137
DescriptorID::registration
@ registration
Definition: mpegdescriptors.h:29
ISO639LanguageDescriptor::CanonicalLanguageKey
int CanonicalLanguageKey(void) const
Definition: mpegdescriptors.h:501
DescriptorID::pdc
@ pdc
Definition: mpegdescriptors.h:115
PrivateDescriptorID::dish_event_mpaa
@ dish_event_mpaa
Definition: mpegdescriptors.h:215
MaximumBitrateDescriptor::MaximumBitrateDescriptor
MaximumBitrateDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:534
PrivateDataSpecifierID::SES
@ SES
Definition: mpegdescriptors.h:269
PrivateDescriptorID::freesat_d6_table
@ freesat_d6_table
Definition: mpegdescriptors.h:235
PrivateDescriptorID::opentv_summaries_2
@ opentv_summaries_2
Definition: mpegdescriptors.h:251
PrivateDataSpecifierID::FSAT
@ FSAT
Definition: mpegdescriptors.h:279
RegistrationDescriptor::InitializeDescriptionMap
static void InitializeDescriptionMap(void)
Definition: mpegdescriptors.cpp:793
DescriptorID::carousel_identifier
@ carousel_identifier
Definition: mpegdescriptors.h:43
DataStreamAlignmentDescriptor::AlignmentType
uint AlignmentType(void) const
Definition: mpegdescriptors.h:470
OriginalNetworkID::MCA
@ MCA
Definition: mpegdescriptors.h:297
DescriptorID::stream_event
@ stream_event
Definition: mpegdescriptors.h:50
DescriptorID::service_location
@ service_location
Definition: mpegdescriptors.h:180
PrivateDescriptorID::opentv_titles_3
@ opentv_titles_3
Definition: mpegdescriptors.h:248
PrivateDataSpecifierID::CASEMA
@ CASEMA
Definition: mpegdescriptors.h:271
DescriptorID::short_smoothing_buffer
@ short_smoothing_buffer
Definition: mpegdescriptors.h:107
DescriptorID::uri_linkage
@ uri_linkage
Definition: mpegdescriptors.h:154
DescriptorID::extended_event
@ extended_event
Definition: mpegdescriptors.h:86
PrivateDescriptorID::dish_event_properties
@ dish_event_properties
Definition: mpegdescriptors.h:218
DescriptorID::vbi_data
@ vbi_data
Definition: mpegdescriptors.h:77
SmoothingBufferDescriptor::toString
QString toString(void) const override
Definition: mpegdescriptors.cpp:910
DescriptorID::scte_modulation_params
@ scte_modulation_params
Definition: mpegdescriptors.h:174
DescriptorID::tva_id
@ tva_id
Definition: mpegdescriptors.h:128
PrivateDescriptorID::opentv_titles_4
@ opentv_titles_4
Definition: mpegdescriptors.h:249
DescriptorID::sh_delivery_system
@ sh_delivery_system
Definition: mpegdescriptors.h:145
DescriptorID::audio_stream
@ audio_stream
Definition: mpegdescriptors.h:27
DescriptorID::xait_pid
@ xait_pid
Definition: mpegdescriptors.h:152
PrivateDescriptorID::opentv_summaries_3
@ opentv_summaries_3
Definition: mpegdescriptors.h:252
MPEGDescriptor::MPEGDescriptor
MPEGDescriptor(const unsigned char *data, int len, uint tag, uint req_desc_len)
Definition: mpegdescriptors.h:332
DescriptorID::atsc_genre
@ atsc_genre
Definition: mpegdescriptors.h:190
HEVCVideoDescriptor::toString
QString toString() const override
Definition: mpegdescriptors.cpp:940
DescriptorID::multiplex_buffer
@ multiplex_buffer
Definition: mpegdescriptors.h:59
DescriptorID::atsc_descriptor_tag
@ atsc_descriptor_tag
Definition: mpegdescriptors.h:166
PrivateDescriptorID::dish_event_rights
@ dish_event_rights
Definition: mpegdescriptors.h:214
AVCVideoDescriptor
ISO 13818-1:2000/Amd.3:2004 page 11.
Definition: mpegdescriptors.h:568
DescriptorID::telephone
@ telephone
Definition: mpegdescriptors.h:96
DescriptorID::mpeg4_video
@ mpeg4_video
Definition: mpegdescriptors.h:51
DescriptorID::multilingual_service_name
@ multilingual_service_name
Definition: mpegdescriptors.h:102
DescriptorID::video_stream
@ video_stream
Definition: mpegdescriptors.h:26
DescriptorID::teletext
@ teletext
Definition: mpegdescriptors.h:95
iso639.h
ISO 639-1 and ISO 639-2 support functions.
AVCVideoDescriptor::AVCCompatible
uint AVCCompatible(void) const
Definition: mpegdescriptors.h:585
AVCVideoDescriptor::ConstraintSet1
bool ConstraintSet1(void) const
Definition: mpegdescriptors.h:581
PrivateDataSpecifierID::ORS
@ ORS
Definition: mpegdescriptors.h:275
RegistrationDescriptor::description_map_initialized
static bool description_map_initialized
Definition: mpegdescriptors.h:456
RegistrationDescriptor::GetDescription
static QString GetDescription(const QString &fmt)
Definition: mpegdescriptors.cpp:849
OriginalNetworkID
Definition: mpegdescriptors.h:287
uint16_t
unsigned short uint16_t
Definition: iso6937tables.h:3
DescriptorID::dts
@ dts
Definition: mpegdescriptors.h:134
ConditionalAccessDescriptor::toString
QString toString() const override
Definition: mpegdescriptors.cpp:882
DescriptorID::scte_transport_stream_id
@ scte_transport_stream_id
Definition: mpegdescriptors.h:175
PrivateDescriptorID::freesat_chan_cat_mapping
@ freesat_chan_cat_mapping
Definition: mpegdescriptors.h:234
DescriptorID::private_data_specifier
@ private_data_specifier
Definition: mpegdescriptors.h:104
DescriptorID::content
@ content
Definition: mpegdescriptors.h:93
PrivateDataSpecifierID
Definition: mpegdescriptors.h:264
DescriptorID::flex_mux_timing
@ flex_mux_timing
Definition: mpegdescriptors.h:68
PrivateDescriptorID::freesat_d7_table
@ freesat_d7_table
Definition: mpegdescriptors.h:236
ConditionalAccessDescriptor::ConditionalAccessDescriptor
ConditionalAccessDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:478
AudioStreamDescriptor::toString
QString toString() const override
Definition: mpegdescriptors.cpp:784
DescriptorID::country_availability
@ country_availability
Definition: mpegdescriptors.h:81
DataStreamAlignmentDescriptor
Definition: mpegdescriptors.h:461
PrivateDescriptorID::opentv_summaries_1
@ opentv_summaries_1
Definition: mpegdescriptors.h:250
HEVCVideoDescriptor::ProfileIDC
uint ProfileIDC(void) const
Definition: mpegdescriptors.h:645
PrivateDescriptorID::premiere_parental_information
@ premiere_parental_information
Definition: mpegdescriptors.h:242
DescriptorID::parental_rating
@ parental_rating
Definition: mpegdescriptors.h:94
RegistrationDescriptor::description_map_lock
static QMutex description_map_lock
Definition: mpegdescriptors.h:455
AVCVideoDescriptor::toString
QString toString() const override
Definition: mpegdescriptors.cpp:926
iso639_str3_to_key
static int iso639_str3_to_key(const unsigned char *iso639_2)
Definition: iso639.h:60
DescriptorID::adaptation_field_data
@ adaptation_field_data
Definition: mpegdescriptors.h:123
DescriptorID::message
@ message
Definition: mpegdescriptors.h:148
DescriptorID::atsc_pid_count
@ atsc_pid_count
Definition: mpegdescriptors.h:184
VideoStreamDescriptor::ProfileAndLevelIndication
uint ProfileAndLevelIndication(void) const
Definition: mpegdescriptors.h:397
DescriptorID::c2_delivery_system
@ c2_delivery_system
Definition: mpegdescriptors.h:153
PrivateDataSpecifierID::OTV
@ OTV
Definition: mpegdescriptors.h:280
MPEGDescriptor::MPEGDescriptor
MPEGDescriptor(const unsigned char *data, int len=300)
Definition: mpegdescriptors.h:307
DescriptorID::mosaic
@ mosaic
Definition: mpegdescriptors.h:90
DescriptorID::association_tag
@ association_tag
Definition: mpegdescriptors.h:44
PrivateDescriptorID::opentv_titles_2
@ opentv_titles_2
Definition: mpegdescriptors.h:247
DescriptorID::short_event
@ short_event
Definition: mpegdescriptors.h:85
RegistrationDescriptor::description_map
static QMap< QString, QString > description_map
Definition: mpegdescriptors.h:457
DescriptorID::mpeg2_aac_audio
@ mpeg2_aac_audio
Definition: mpegdescriptors.h:67
DescriptorID::ci_ancillary_data
@ ci_ancillary_data
Definition: mpegdescriptors.h:155
VideoStreamDescriptor::ConstrainedParameterFlag
bool ConstrainedParameterFlag(void) const
Definition: mpegdescriptors.h:393
DescriptorID::c2_bundle_delivery_system
@ c2_bundle_delivery_system
Definition: mpegdescriptors.h:156
AVCVideoDescriptor::ConstraintSet0
bool ConstraintSet0(void) const
Definition: mpegdescriptors.h:579
DescriptorID::target_region
@ target_region
Definition: mpegdescriptors.h:149
DescriptorID::atsc_download
@ atsc_download
Definition: mpegdescriptors.h:185
AVCVideoDescriptor::LevelIDC
uint LevelIDC(void) const
Definition: mpegdescriptors.h:587
ConditionalAccessDescriptor::PID
uint PID(void) const
Definition: mpegdescriptors.h:482
DescriptorID::local_time_offset
@ local_time_offset
Definition: mpegdescriptors.h:97
uint
unsigned int uint
Definition: freesurround.h:24
DescriptorID::avc_timing_and_hrd
@ avc_timing_and_hrd
Definition: mpegdescriptors.h:66
PrivateDescriptorID::premiere_content_order
@ premiere_content_order
Definition: mpegdescriptors.h:241
PrivateDescriptorID
Definition: mpegdescriptors.h:197
PrivateDescriptorID::opentv_titles_1
@ opentv_titles_1
Definition: mpegdescriptors.h:246