MythTV  master
dvbdescriptors.h
Go to the documentation of this file.
1 // -*- Mode: c++ -*-
2 // Copyright (c) 2003-2004, Daniel Thor Kristjansson
3 #ifndef DVB_DESCRIPTORS_H
4 #define DVB_DESCRIPTORS_H
5 
6 #include <cassert>
7 
8 #include <QMutex>
9 #include <QString>
10 
11 #include "mythtvexp.h" // MTV_PUBLIC - Symbol Visibility
12 #include "mpegdescriptors.h"
13 #include "programinfo.h" // for subtitle types and audio and video properties
14 
15 /*
16 // needed for scanning
17  conditional_access = 0x09, // maybe
18  satellite_delivery_system = 0x43,*
19  cable_delivery_system = 0x44,*
20  service = 0x48,*
21  terrestrial_delivery_system = 0x5A,*
22  frequency_list = 0x62,*
23 
24 // needed for captions
25  teletext = 0x56,
26  subtitling = 0x59,
27 
28 // needed for sound
29  registration = 0x05,
30  AC3 = 0x6A,
31 
32 // needed for eit
33  short_event = 0x4D,
34  extended_event = 0x4E,
35  content = 0x54,
36 */
37 
38 static QString coderate_inner(uint coderate);
39 
40 using enc_override = std::vector<uint8_t>;
41 MTV_PUBLIC QString dvb_decode_text(const unsigned char *src, uint length,
42  const enc_override &encoding_override);
43 
44 inline QString dvb_decode_text(const unsigned char *src, uint length)
45 {
46  return dvb_decode_text(src, length, {} );
47 }
48 
49 QString dvb_decode_short_name(const unsigned char *src, uint raw_length);
50 
51 #define byteBCDH2int(i) ((i) >> 4)
52 #define byteBCDL2int(i) ((i) & 0x0f)
53 #define byteBCD2int(i) (byteBCDH2int(i) * 10 + byteBCDL2int(i))
54 #define byte2BCD2int(i, j) \
55  (byteBCDH2int(i) * 1000 + byteBCDL2int(i) * 100 + \
56  byteBCDH2int(j) * 10 + byteBCDL2int(j))
57 #define byte3BCD2int(i, j, k) \
58  (byteBCDH2int(i) * 100000 + byteBCDL2int(i) * 10000 + \
59  byteBCDH2int(j) * 1000 + byteBCDL2int(j) * 100 + \
60  byteBCDH2int(k) * 10 + byteBCDL2int(k))
61 #define byte4BCD2int(i, j, k, l) \
62  (byteBCDH2int(i) * 10000000LL + byteBCDL2int(i) * 1000000 + \
63  byteBCDH2int(j) * 100000 + byteBCDL2int(j) * 10000 + \
64  byteBCDH2int(k) * 1000 + byteBCDL2int(k) * 100 + \
65  byteBCDH2int(l) * 10 + byteBCDL2int(l))
66 
67 // DVB Bluebook A038 (Sept 2011) p 77
69 {
70  public:
71  explicit NetworkNameDescriptor(const unsigned char *data, int len = 300) :
72  MPEGDescriptor(data, len, DescriptorID::network_name) { }
73  // Name bits loc expected value
74  // descriptor_tag 8 0.0 0x40
75  // descriptor_length 8 1.0
76  // for (i=0;i<N;i++){ char 8 uimsbf }
77  QString Name(void) const
78  { return dvb_decode_text(m_data+2, DescriptorLength()); }
79  QString ShortName(void) const
81  QString toString(void) const override // MPEGDescriptor
82  { return QString("NetworkNameDescriptor: ")+Name(); }
83 };
84 
85 // DVB Bluebook A038 (Sept 2011) p 63
87 {
88  public:
89  explicit LinkageDescriptor(const unsigned char *data, int len = 300) :
90  MPEGDescriptor(data, len, DescriptorID::linkage)
91  {
92  if (!m_data)
93  return;
94  if (DescriptorLength() < 7)
95  {
96  m_data = nullptr;
97  }
98  else if (kMobileHandOver == LinkageType())
99  {
100  uint end = 8;
101  if (DescriptorLength() < end)
102  {
103  m_data = nullptr;
104  return;
105  }
106  end += (HasMobileNetworkID()) ? 2 : 0;
107  end += (HasMobileInitialServiceID()) ? 2 : 0;
108  if (DescriptorLength() < end)
109  m_data = nullptr;
110  m_offset = end + 2;
111  }
112  else if (kEventLinkage == LinkageType())
113  {
114  if (DescriptorLength() < 10)
115  m_data = nullptr;
116  m_offset = 12;
117  }
118  }
119  // Name bits loc expected value
120  // descriptor_tag 8 0.0 0x4A
121  // descriptor_length 8 1.0
122  // transport_stream_id 16 2.0
123  uint TSID(void) const { return (m_data[2]<<8) | m_data[3]; }
124  // original_network_id 16 4.0
125  uint OriginalNetworkID() const { return (m_data[4]<<8) | m_data[5]; }
126  // service_id 16 6.0
127  uint ServiceID(void) const { return (m_data[6]<<8) | m_data[7]; }
128  // linkage_type 8 8.0
129  enum
130  {
132  kEPGService = 0x02,
137  kRCSMap = 0x07,
144  };
145  uint LinkageType(void) const { return m_data[8]; }
146  QString LinkageTypeString(void) const;
147 
148  // if (linkage_type == 0x08)
149  // {
150  // hand-over_type 4 9.0
151  enum
152  {
156  };
157  uint MobileHandOverType(void) const { return m_data[9]>>4; }
158  QString MobileHandOverTypeString(void) const;
159  // reserved_future_use 3 9.4
160  // origin_type 1 9.7
161  enum
162  {
163  kOriginNIT = 0x0,
164  kOriginSDT = 0x1,
165  };
166  uint MobileOriginType(void) const { return m_data[9]&0x1; }
167  QString MobileOriginTypeString(void) const;
168  // if (hand-over_type == 0x01 || hand-over_type == 0x02 ||
169  // hand-over_type == 0x03)
170  // { network_id 16 10.0 }
171  bool HasMobileNetworkID(void) const
172  { return bool(MobileHandOverType() & 0x3); }
173  uint MobileNetworkID(void) const { return (m_data[10]<<8) | m_data[11]; }
174  // if (origin_type ==0x00)
175  // { initial_service_id 16 HasNetworkID()?10.0:12.0 }
176  bool HasMobileInitialServiceID(void) const
177  { return kOriginNIT == MobileOriginType(); }
179  {
180  return HasMobileNetworkID() ?
181  ((m_data[12]<<8) | m_data[13]) : ((m_data[10]<<8) | m_data[11]);
182  }
183  // }
184  // if (linkage_type == 0x0D)
185  // {
186  // target_event_id 16 9.0
187  uint TargetEventID(void) const { return (m_data[9]<<8) | m_data[10]; }
188  // target_listed 1 11.0
189  bool IsTargetListed(void) const { return ( m_data[11]&0x80 ) != 0; }
190  // event_simulcast 1 11.1
191  bool IsEventSimulcast(void) const { return ( m_data[11]&0x40 ) != 0; }
192  // reserved 6 11.2
193  // }
194  // for (i=0;i<N;i++)
195  // { private_data_byte 8 bslbf }
196  const unsigned char *PrivateData(void) const
197  { return &m_data[m_offset]; }
199  { return DescriptorLength() + 2 - m_offset; }
200 
201  private:
203 };
204 
205 // ETSI TS 102 809 V1.3.1 (2017-06) p 36
207 {
208  public:
209  explicit ApplicationSignallingDescriptor(const unsigned char *data, int len = 300) :
210  MPEGDescriptor(data, len, DescriptorID::application_signalling) { }
211  // Name bits loc expected value
212  // descriptor_tag 8 0.0 0x6F
213  // descriptor_length 8 1.0
214  // for( i=0; i<N; i++ ){
215  // reserved_future_use 1 2.0
216  // application_type 15 2.1
217  // reserved_future_use 3 4.0
218  // AIT_version_number 5 4.3
219  // }
220  uint Count() const { return DescriptorLength() / 3; }
222  { return (m_data[2 + i*3] & 0x7F) << 8 | m_data[2 + i*3 + 1] ; }
224  { return m_data[2 + i*3 + 2] & 0x1F ; }
225  QString toString(void) const override; // MPEGDescriptor
226 };
227 
228 // DVB Bluebook A038 (Sept 2011) p 38
230 {
231  public:
232  explicit AdaptationFieldDataDescriptor(const unsigned char *data, int len = 300) :
233  MPEGDescriptor(data, len, DescriptorID::adaptation_field_data, 1) { }
234  // Name bits loc expected value
235  // descriptor_tag 8 0.0 0x70
236  // descriptor_length 8 1.0
237  // adapt_field_data_id 8 2.0
238  uint AdaptationFieldDataID(void) const { return m_data[2]; }
239  QString toString(void) const override // MPEGDescriptor
240  {
241  return QString("AdaptationFieldDataDescriptor "
242  "adaptation_field_data_identifier(%1)")
243  .arg(AdaptationFieldDataID());
244  }
245 };
246 
247 // DVB Bluebook A038 (Sept 2011) p 38
249 {
250  public:
251  explicit AncillaryDataDescriptor(const unsigned char *data, int len = 300) :
252  MPEGDescriptor(data, len, DescriptorID::ancillary_data, 1) { }
253  // Name bits loc expected value
254  // descriptor_tag 8 0.0 0x6b
255  // descriptor_length 8 1.0
256  // ancillary_data_id 8 2.0
257  uint AncillaryDataID(void) const { return m_data[2]; }
258  QString toString(void) const override // MPEGDescriptor
259  {
260  return QString("AncillaryDataDescriptor "
261  "ancillary_data_identifier(%1)")
262  .arg(AncillaryDataID());
263  }
264 };
265 
266 // DVB Bluebook A038 (Sept 2011) p 39
268 {
269  public:
270  explicit AnnouncementSupportDescriptor(const unsigned char *data, int len = 300) :
271  MPEGDescriptor(data, len, DescriptorID::announcement_support) { }
272  // Name bits loc expected value
273  // descriptor_tag 8 0.0 0x6e
274  // descriptor_length 8 1.0
275  // announcmnt_supprt_indic 16 2.0
276  // for (i=0; i<N; i++)
277  // {
278  // announcement_type 4 0.0+p
279  // reserved_future_use 1 0.4+p
280  // reference_type 3 0.5+p
281  // if (reference_type & 0x3)
282  // {
283  // original_network_id 16 0.0+p
284  // transport_stream_id 16 2.0+p
285  // service_id 16 4.0+p
286  // component_tag 8 6.0+p
287  // } 7.0
288  // }
289 };
290 
291 // DVB Bluebook A038 (Sept 2011) p 41
293 {
294  public:
295  explicit BouquetNameDescriptor(const unsigned char *data, int len = 300) :
296  MPEGDescriptor(data, len, DescriptorID::bouquet_name) { }
297  // Name bits loc expected value
298  // descriptor_tag 8 0.0 0x47
299  // descriptor_length 8 1.0
300  // for(i=0;i<N;i++) { char 8 }
301  QString BouquetName(void) const
302  { return dvb_decode_text(m_data+2, m_data[1]); }
303  QString BouquetShortName(void) const
304  { return dvb_decode_short_name(m_data+2, m_data[1]); }
305 
306  QString toString(void) const override // MPEGDescriptor
307  {
308  return QString("BouquetNameDescriptor: Bouquet Name(%1)")
309  .arg(BouquetName());
310  }
311 };
312 
313 // DVB Bluebook A038 (Sept 2011) p 41
315 {
316  public:
317  explicit CAIdentifierDescriptor(const unsigned char *data, int len = 300) :
318  MPEGDescriptor(data, len, DescriptorID::ca_identifier) { }
319  // Name bits loc expected value
320  // descriptor_tag 8 0.0 0x53
321  // descriptor_length 8 1.0
322  //
323  uint CASystemCount(void) const { return DescriptorLength() >> 1; }
324  // for (i=0; i<N; i++)
325  // { CA_system_id 16 }
326  int CASystemId(uint i) const
327  { return (m_data[2 + i*2] << 8) | m_data[3 + i*2]; }
328  QString toString(void) const override; // MPEGDescriptor
329 };
330 
331 // DVB Bluebook A038 (Sept 2011) p 42
333 {
334  public:
335  explicit CellFrequencyLinkDescriptor(const unsigned char *data, int len = 300) :
336  MPEGDescriptor(data, len, DescriptorID::cell_frequency_link) { }
337  // Name bits loc expected value
338  // descriptor_tag 8 0.0 0x6d
339  // descriptor_length 8 1.0
340  // for (i=0; i<N; i++)
341  // {
342  // cell_id 16 0.0+p
343  // frequency 32 2.0+p
344  // subcell_info_loop_len 8 6.0+p
345  // for (j=0;j<N;j++)
346  // {
347  // cell_id_extension 8 0.0+p2
348  // transposer_freq 32 1.0+p2
349  // } 5.0
350  // }
351 };
352 
353 // DVB Bluebook A038 (Sept 2011) p 42
355 {
356  public:
357  explicit CellListDescriptor(const unsigned char *data, int len = 300) :
358  MPEGDescriptor(data, len, DescriptorID::cell_list) { }
359  // Name bits loc expected value
360  // descriptor_tag 8 0.0 0x6c
361  // descriptor_length 8 1.0
362  // for (i=0; i<N; i++)
363  // {
364  // cell_id 16 0.0+p
365  // cell_latitude 16 2.0+p
366  // cell_longitude 16 4.0+p
367  // cell_extent_of_lat 12 6.0+p
368  // cell_extent_of_longit 12 7.4+p
369  // subcell_info_loop_len 8 9.0+p
370  // for (j=0;j<N;j++)
371  // {
372  // cell_id_extension 8 0.0+p2
373  // subcell_latitude 16 1.0+p2
374  // subcell_longitude 16 3.0+p2
375  // subcell_ext_of_lat 12 4.0+p2
376  // subcell_ext_of_long 12 5.4+p2
377  // } 7.0
378  // }
379 };
380 
381 // DVB Bluebook A038 (Sept 2011) p 44
383 {
384  public:
385  explicit ComponentDescriptor(const unsigned char *data, int len = 300) :
386  MPEGDescriptor(data, len, DescriptorID::component) { }
387  // Name bits loc expected value
388  // descriptor_tag 8 0.0 0x50
389  // descriptor_length 8 1.0
390  // reserved_future_use 4 2.0
391  // stream_content 4 2.4
392  uint StreamContent(void) const { return m_data[2] & 0xf; }
393  // component_type 8 3.0
394  uint ComponentType(void) const { return m_data[3]; }
395  // component_tag 8 4.0
396  uint ComponentTag(void) const { return m_data[4]; }
397  // ISO_639_language_code 24 5.0
398  int LanguageKey(void) const
399  { return iso639_str3_to_key(&m_data[5]); }
400  QString LanguageString(void) const
401  { return iso639_key_to_str3(LanguageKey()); }
402  int CanonicalLanguageKey(void) const
404  QString CanonicalLanguageString(void) const
406  //
407  // for (i=0; i<N; i++) { text_char 8 }
408 
409  bool IsVideo(void) const
410  {
411  return 0x1 == StreamContent() || // MPEG-2
412  0x5 == StreamContent() || // H.264
413  0x9 == StreamContent(); // HEVC
414  }
415  bool IsAudio(void) const
416  {
417  switch(StreamContent())
418  {
419  case 0x02:
420  case 0x04:
421  case 0x06:
422  case 0x07:
423  return true;
424  default:
425  return false;
426  }
427  }
428  bool IsSubtitle(void) const { return 0x3 == StreamContent(); }
429 
430  uint VideoProperties(void) const
431  {
432  if (0x1 == StreamContent())
433  return MPEG2Properties();
434  if (0x5 == StreamContent())
435  return VID_AVC | AVCProperties();
436  if (0x9 == StreamContent())
437  return VID_HEVC | HEVCProperties();
438 
439  return VID_UNKNOWN;
440  }
441 
442  uint MPEG2Properties(void) const
443  {
444  switch(ComponentType())
445  {
446  case 0x2: case 0x3: case 0x4:
447  case 0x6: case 0x7: case 0x8:
448  return VID_WIDESCREEN;
449  case 0x09:
450  case 0x0D:
451  return VID_HDTV;
452  case 0x0A: case 0x0B: case 0x0C:
453  case 0x0E: case 0x0F: case 0x10:
454  return VID_WIDESCREEN | VID_HDTV;
455  default:
456  return VID_UNKNOWN;
457  }
458  }
459 
460  uint AVCProperties(void) const
461  {
462  switch(ComponentType())
463  {
464  case 0x3: case 0x4:
465  case 0x7: case 0x8:
466  return VID_WIDESCREEN;
467  case 0x0B: case 0x0C:
468  case 0x0F: case 0x10:
469  return VID_WIDESCREEN | VID_HDTV;
470  case 0x80: case 0x81:
471  case 0x82: case 0x83:
472  return VID_WIDESCREEN | VID_HDTV | VID_3DTV;
473  default:
474  return VID_UNKNOWN;
475  }
476  }
477 
478  uint HEVCProperties(void) const
479  {
480  switch(ComponentType())
481  {
482  // NOLINTNEXTLINE(bugprone-branch-clone)
483  case 0x0: case 0x1:
484  case 0x2: case 0x3:
485  return VID_HDTV;
486  case 0x5:
487  return VID_HDTV; // | VID_UHDTV;
488  default:
489  return VID_UNKNOWN;
490  }
491  }
492 
493  uint AudioProperties(void) const
494  {
495  switch (StreamContent())
496  {
497  case 0x2:
498  return MP2Properties();
499  case 0x04:
500  return AC3Properties();
501  case 0x06:
502  return HEAACProperties();
503  default:
504  return AUD_UNKNOWN;
505  }
506  }
507 
508  uint MP2Properties(void) const
509  {
510  switch (ComponentType())
511  {
512  case 0x1:
513  return AUD_MONO;
514  case 0x3:
515  return AUD_STEREO;
516  case 0x5:
517  return AUD_SURROUND;
518  case 0x40:
519  return AUD_VISUALIMPAIR;
520  case 0x41:
521  return AUD_HARDHEAR;
522  default:
523  return AUD_UNKNOWN;
524  }
525  }
526 
527  uint AC3Properties(void) const
528  {
529  unsigned char properties = AUD_UNKNOWN;
530 
531  switch (ComponentType() & 0x7)
532  {
533  case 0x0:
534  properties |= AUD_MONO;
535  break;
536  case 0x2:
537  properties |= AUD_STEREO;
538  break;
539  case 0x3:
540  properties |= AUD_DOLBY;
541  break;
542  case 0x4: case 0x5:
543  properties |= AUD_SURROUND;
544  break;
545  }
546 
547  if (((ComponentType() >> 3) & 0x7) == 0x2)
548  properties |= AUD_VISUALIMPAIR;
549 
550  if (((ComponentType() >> 3) & 0x7) == 0x3)
551  properties |= AUD_HARDHEAR;
552 
553  return properties;
554  }
555 
556  uint HEAACProperties(void) const
557  {
558  switch (ComponentType())
559  {
560  case 0x1:
561  return AUD_MONO;
562  case 0x3:
563  case 0x43:
564  return AUD_STEREO;
565  case 0x5:
566  return AUD_SURROUND;
567  case 0x40:
568  case 0x44:
569  return AUD_VISUALIMPAIR;
570  case 0x41:
571  case 0x45:
572  return AUD_HARDHEAR;
573  default:
574  return AUD_UNKNOWN;
575  }
576  }
577 
578  uint SubtitleType(void) const
579  {
580  if (!IsSubtitle())
581  return SUB_UNKNOWN;
582 
583  switch (ComponentType())
584  {
585  case 0x1:
586  case 0x3:
587  case 0x10: case 0x11: case 0x12: case 0x13:
588  return SUB_NORMAL;
589  case 0x20: case 0x21: case 0x22: case 0x23:
590  return SUB_HARDHEAR;
591  default:
592  return SUB_UNKNOWN;
593  }
594  }
595 
596  QString toString(void) const override // MPEGDescriptor
597  {
598  return QString("ComponentDescriptor(stream_content: 0x%1, "
599  "component_type: 0x%2)").arg(StreamContent(), 0, 16)
600  .arg(ComponentType(), 0, 16);
601  }
602 };
603 
604 // DVB Bluebook A038 (Sept 2011) p 46
606 {
607  public:
608  explicit ContentDescriptor(const unsigned char *data, int len = 300) :
609  MPEGDescriptor(data, len, DescriptorID::content) { }
610  // Name bits loc expected value
611  // descriptor_tag 8 0.0 0x54
612  // descriptor_length 8 1.0
613 
614  uint Count(void) const { return DescriptorLength() >> 1; }
615  // for (i=0;i<N;i++)
616  // {
617  // content_nibble_level_1 4 0.0+p
618  uint Nibble1(uint i) const { return m_data[2 + (i<<1)] >> 4; }
619  // content_nibble_level_2 4 0.4+p
620  uint Nibble2(uint i) const { return m_data[2 + (i<<1)] & 0xf; }
621 
622  uint Nibble(uint i) const { return m_data[2 + (i<<1)]; }
623 
624  // user_nibble 4 1.0+p
625  uint UserNibble1(uint i) const { return m_data[3 + (i<<1)] >> 4; }
626  // user_nibble 4 1.4+p
627  uint UserNibble2(uint i) const { return m_data[3 + (i<<1)] & 0xf; }
628  uint UserNibble(uint i) const { return m_data[3 + (i<<1)]; }
629  // } 2.0
630 
632  QString GetDescription(uint i) const;
633  QString toString(void) const override; // MPEGDescriptor
634 
635  protected:
636  static void Init(void);
637 
638  protected:
639  static QMutex s_categoryLock;
640  static QMap<uint,QString> s_categoryDesc;
641  static volatile bool s_categoryDescExists;
642 };
643 
644 // DVB Bluebook A038 (Sept 2011) p 49
646 {
647  public:
648  explicit CountryAvailabilityDescriptor(const unsigned char *data, int len = 300) :
649  MPEGDescriptor(data, len, DescriptorID::country_availability) { }
650  // Name bits loc expected value
651  // descriptor_tag 8 0.0 0x49
652  // descriptor_length 8 1.0
653 
654  uint CountryCount(void) const { return ((DescriptorLength() - 1) / 3); }
655 
656  // country_avail_flag 1 2.0
657  bool IsAvailable(void) const { return (m_data[2] & 0x1) != 0; }
658  // reserved_future_use 7 2.1
659  //
660  // for (i=0; i<N; i++)
661  // { country_code 24 }
662  QString CountryNames(void) const
663  {
664  QString countries="";
665  for (uint i=0; i<CountryCount(); i++)
666  {
667  if (i!=0) countries.append(" ");
668  countries.append(QString::fromLatin1(
669  (const char *)m_data+(3*(i+1)), 3));
670  };
671  return countries;
672  }
673 
674  QString toString(void) const override // MPEGDescriptor
675  {
676  return QString("CountryAvailabilityDescriptor: Available(%1) in (%2)")
677  .arg(static_cast<int>(IsAvailable())).arg(CountryNames());
678  }
679 };
680 
681 // DVB Bluebook A038 (Sept 2011) p 50
683 {
684  public:
685  explicit DataBroadcastDescriptor(const unsigned char *data, int len = 300) :
686  MPEGDescriptor(data, len, DescriptorID::data_broadcast) { }
687  // Name bits loc expected value
688  // descriptor_tag 8 0.0 0x64
689  // descriptor_length 8 1.0
690 
691  // data_broadcast_id 16 2.0
692  uint DataBroadcastId(void) const { return m_data[2] << 8 | m_data[3]; }
693  // component_tag 8 4.0
694  uint DataComponentTag(void) const { return m_data[4]; }
695  // selector_length 8 5.0
696  uint SelectorLength(void) const { return m_data[5]; }
697  // for (i=0; i<selector_length; i++)
698  // {
699  // selector_byte 8
700  const unsigned char *Selector(void) const { return &m_data[6]; }
701  // }
702  // ISO_639_language_code 24
703  int LanguageKey(void) const
704  { return iso639_str3_to_key(&m_data[6 + SelectorLength()]); }
705  QString LanguageString(void) const
706  { return iso639_key_to_str3(LanguageKey()); }
707  int CanonicalLanguageKey(void) const
709  QString CanonicalLanguageString(void) const
711  // text_length 8
712  uint TextLength(void) const { return m_data[6 + SelectorLength() + 3]; }
713  // for (i=0; i<text_length; i++) { text_char 8 }
714  QString Text(void) const
715  {
716  return dvb_decode_text(&m_data[6 + SelectorLength() + 4], TextLength());
717  }
718 
719  QString toString(void) const override; // MPEGDescriptor
720 };
721 
722 // DVB Bluebook A038 (Sept 2011) p 51
724 {
725  public:
726  explicit DataBroadcastIdDescriptor(const unsigned char *data, int len = 300) :
727  MPEGDescriptor(data, len, DescriptorID::data_broadcast_id) { }
728  // Name bits loc expected value
729  // descriptor_tag 8 0.0 0x66
730  // descriptor_length 8 1.0
731 
732  // data_broadcast_id 16 2.0
733  uint DataBroadCastId(void) const { return m_data[2] << 8 | m_data[3]; }
734  // for(i=0; i < N;i++ )
735  // { id_selector_byte 8 }
736 };
737 
738 // DVB Bluebook A038 (Sept 2011) p 51
740 {
741  public:
742  explicit CableDeliverySystemDescriptor(const unsigned char *data, int len = 300) :
743  MPEGDescriptor(data, len, DescriptorID::cable_delivery_system) { }
744  // Name bits loc expected value
745  // descriptor_tag 8 0.0 0x44
746  // descriptor_length 8 1.0
747 
748  // frequency 32 2.0
749  uint FrequencyRaw(void) const
750  {
751  return ((m_data[2]<<24) | (m_data[3]<<16) |
752  (m_data[4]<<8) | (m_data[5]));
753  }
754  unsigned long long FrequencyHz(void) const
755  {
756  if (m_data == nullptr)
757  return 0;
758  return byte4BCD2int(m_data[2], m_data[3], m_data[4], m_data[5]) * 100;
759  }
760  // reserved_future_use 12 6.0
761  // FEC_outer 4 7.4
762  enum
763  {
766  };
767  uint FECOuter(void) const { return m_data[7] & 0xf; }
768  QString FECOuterString(void) const
769  {
770  return (FECOuter() == kOuterFEC_None) ? "None" :
771  ((FECOuter() == kOuterFEC_RS204_RS188) ? "RS(204/188)" : "unknown");
772  }
773  // modulation 8 8.0
774  enum
775  {
781  };
782  uint Modulation(void) const { return m_data[8]; }
783  QString ModulationString(void) const
784  {
785  static std::array<QString,6> ms
786  { "auto", "qam_16", "qam_32", "qam_64", "qam_128", "qam_256" };
787  return (Modulation() <= kModulationQAM256) ?
788  ms[Modulation()] : QString("auto");
789  }
790  // symbol_rate 28 9.0
791  uint SymbolRateRaw(void) const
792  {
793  return ((m_data[9]<<20) | (m_data[10]<<12) |
794  (m_data[11]<<4) | (m_data[12]>>4));
795  }
796  uint SymbolRateHz(void) const
797  {
798  return ((byte3BCD2int(m_data[9], m_data[10], m_data[11]) * 1000) +
799  (byteBCDH2int(m_data[12]) * 100));
800  }
801  // FEC_inner 4 12.4
802  enum
803  {
811  };
812  uint FECInner(void) const { return m_data[12] & 0xf; }
813  QString FECInnerString(void) const { return coderate_inner(FECInner()); }
814  QString toString(void) const override; // MPEGDescriptor
815 };
816 
817 // DVB Bluebook A038 (Feb 2019) p 58
819 {
820  public:
822  const unsigned char *data, int len = 300) :
823  MPEGDescriptor(data, len, DescriptorID::satellite_delivery_system) { }
824  // Name bits loc expected value
825  // descriptor_tag 8 0.0 0x43
826  // descriptor_length 8 1.0
827 
829  uint FrequencyRaw(void) const
830  {
831  return ((m_data[2]<<24) | (m_data[3]<<16) |
832  (m_data[4]<<8) | (m_data[5]));
833  }
834  unsigned long long FrequencykHz(void) const
835  {
836  return byte4BCD2int(m_data[2], m_data[3], m_data[4], m_data[5]) * 10;
837  }
839  uint OrbitalPosition(void) const
840  { return byte2BCD2int(m_data[6], m_data[7]); }
841  QString OrbitalPositionString(void) const
842  {
843  uint num = OrbitalPosition();
844  return QString("%1.%2 %3").arg(num / 10).arg(num % 10)
845  .arg((IsEast()) ? "East" : "West");
846  }
847  double OrbitalPositionFloat() const
848  { return ((double) OrbitalPosition()) / 10.0; }
850  bool IsEast(void) const { return ( (m_data[8]&0x80) ) != 0; }
851  bool IsWest(void) const { return !IsEast(); }
852  // polarization 2 8.1
853  uint Polarization(void) const { return (m_data[8]>>5)&0x3; }
854  QString PolarizationString() const
855  {
856  static const std::array<const QString,4> ps { "h", "v", "l", "r" };
857  return ps[Polarization()];
858  }
859  bool IsCircularPolarization(void) const { return ((m_data[8]>>6)&0x1) != 0; }
860  bool IsLinearPolarization(void) const { return ((m_data[8]>>6)&0x1) == 0; }
861  bool IsHorizontalLeftPolarization(void) const { return ((m_data[8]>>5)&0x1) != 0; }
862  bool IsVerticalRightPolarization(void) const { return ((m_data[8]>>5)&0x1) == 0; }
863  // roll off 2 8.3
864  enum
865  {
870  };
871  uint RollOff(void) const { return (m_data[8]>>3)&0x3; }
872  QString RollOffString(void) const
873  {
874  static const std::array<const QString,4> ro { "0.35", "0.20", "0.25", "auto" };
875  return ro[RollOff()];
876  }
877  // modulation system 1 8.5
878  uint ModulationSystem(void) const { return (m_data[8]>>2)&0x1; }
879  QString ModulationSystemString(void) const
880  {
881  return ModulationSystem() ? "DVB-S2" : "DVB-S";
882  }
883  // modulation 2 8.6
884  enum
885  {
886  kModulationQPSK_NS = 0x0, // Non standard QPSK for Bell ExpressVu
887  // should be "auto" according to DVB SI standard
891  };
892  uint Modulation(void) const { return m_data[8]&0x03; }
893  QString ModulationString(void) const
894  {
895  static const std::array<const QString,4> ms { "qpsk", "qpsk", "8psk", "qam_16" };
896  return ms[Modulation()];
897  }
898  // symbol_rate 28 9.0
899  uint SymbolRate(void) const
900  {
901  return ((m_data[9]<<20) | (m_data[10]<<12) |
902  (m_data[11]<<4) | (m_data[12]>>4));
903  }
904  uint SymbolRateHz(void) const
905  {
906  return ((byte3BCD2int(m_data[9], m_data[10], m_data[11]) * 1000) +
907  (byteBCDH2int(m_data[12]) * 100));
908  }
909  // FEC_inner 4 12.4
910  enum
911  {
919  };
920  uint FECInner(void) const { return m_data[12] & 0xf; }
921  QString FECInnerString(void) const { return coderate_inner(FECInner()); }
922 
923  QString toString(void) const override; // MPEGDescriptor
924 };
925 
926 // DVB Bluebook A038 (Feb 2019) p 60
928 {
929  public:
931  const unsigned char *data, int len = 300) :
932  MPEGDescriptor(data, len, DescriptorID::terrestrial_delivery_system) { }
933  // Name bits loc expected value
934  // descriptor_tag 8 0.0 0x5a
935  // descriptor_length 8 1.0
936 
937  // centre_frequency 32 2.0
938  uint Frequency(void) const
939  {
940  return ((m_data[2]<<24) | (m_data[3]<<16) |
941  (m_data[4]<<8) | (m_data[5]));
942  }
943  uint64_t FrequencyHz(void) const { return uint64_t(Frequency()) * 10ULL; }
944 
945  // bandwidth 3 6.0
946  enum
947  {
952  };
953  uint Bandwidth(void) const { return m_data[6]>>5; }
954  uint BandwidthHz(void) const { return (8 - Bandwidth()) * 1000000; }
955  QString BandwidthString(void) const
956  {
957  static std::array<QString,4> bs { "8", "7", "6", "5" };
958  return (Bandwidth() <= kBandwidth5Mhz) ? bs[Bandwidth()] : "auto";
959  }
960  // priority 1 6.3
961  bool HighPriority(void) const { return ( m_data[6] & 0x10 ) != 0; }
962  // time_slicing_indicator 1 6.4
963  bool IsTimeSlicingIndicatorUsed(void) const { return (m_data[6] & 0x08) == 0; }
964  // MPE-FEC_indicator 1 6.5
965  bool IsMPE_FECUsed(void) const { return (m_data[6] & 0x04) == 0; }
966  // reserved_future_use 2 6.6
967  // constellation 2 7.0
968  enum
969  {
974  };
975  uint Constellation(void) const { return m_data[7]>>6; }
976  QString ConstellationString(void) const
977  {
978  static std::array<QString,4> cs { "qpsk", "qam_16", "qam_64", "qam_256" };
979  return (Constellation() <= kConstellationQAM256) ?
980  cs[Constellation()] : "auto";
981  }
982  // hierarchy_information 3 7.2
983  enum
984  {
993  };
994  uint Hierarchy(void) const { return (m_data[7]>>3) & 0x7; }
995 
997  QString HierarchyString(void) const
998  {
999  static const std::array<const QString,8> hs { "n", "1", "2", "4", "a", "a", "a", "a" };
1000  return hs[Hierarchy()];
1001  }
1002  bool NativeInterleaver(void) const { return ( m_data[7] & 0x20 ) != 0; }
1003  uint Alpha(void) const
1004  {
1005  uint i = (m_data[7]>>3) & 0x3;
1006  return (0x2 == i) ? 4 : i;
1007  }
1008  // code_rate-HP_stream 3 7.5
1009  enum
1010  {
1016  };
1017  uint CodeRateHP(void) const { return m_data[7] & 0x7; }
1018  QString CodeRateHPString(void) const
1019  {
1020  static const std::array<const QString,8> cr {
1021  "1/2", "2/3", "3/4", "5/6", "7/8", "auto", "auto", "auto"
1022  };
1023  return cr[CodeRateHP()];
1024  }
1025  // code_rate-LP_stream 3 8.0
1026  uint CodeRateLP(void) const { return (m_data[8]>>5) & 0x7; }
1027  QString CodeRateLPString(void) const
1028  {
1029  static const std::array<const QString,8> cr {
1030  "1/2", "2/3", "3/4", "5/6", "7/8", "auto", "auto", "auto"
1031  };
1032  return cr[CodeRateLP()];
1033  }
1034  // guard_interval 2 8.3
1035  enum
1036  {
1041  };
1042  uint GuardInterval(void) const { return (m_data[8]>>3) & 0x3; }
1043  QString GuardIntervalString(void) const
1044  {
1045  static const std::array<const QString,4> gi { "1/32", "1/16", "1/8", "1/4" };
1046  return gi[GuardInterval()];
1047  }
1048  // transmission_mode 2 8.5
1049  enum
1050  {
1054  };
1055  uint TransmissionMode(void) const { return (m_data[8]>>1) & 0x3; }
1056  QString TransmissionModeString(void) const
1057  {
1058  static const std::array<const QString,4> tm { "2", "8", "4", "auto" };
1059  return tm[TransmissionMode()];
1060  }
1061  // other_frequency_flag 1 8.7
1062  bool OtherFrequencyInUse(void) const { return (m_data[8] & 0x1) != 0; }
1063  // reserved_future_use 32 9.0
1064 
1065  QString toString(void) const override; // MPEGDescriptor
1066 };
1067 
1068 // DVB Bluebook A038 (Feb 2019) p 110
1070 {
1071  public:
1073  const unsigned char *data, int len = 300) :
1074  MPEGDescriptor(data, len, DescriptorID::extension)
1075  {
1077  {
1078  m_data = nullptr;
1079  }
1080  }
1081  // Name bits loc expected value
1082  // descriptor_tag 8 0.0 0x7f extension
1083  // descriptor_length 8 1.0
1084  // descriptor_tag_extension 8 2.0 0x00 image_icon
1085 
1086  // descriptor_number 4 3.0
1088  {
1089  return m_data[3] >> 4;
1090  }
1091 
1092  // last_descriptor_number 4 3.4
1094  {
1095  return m_data[3] & 0xF;
1096  }
1097 
1098  // icon_id 3 4.5
1099  uint IconID(void) const
1100  {
1101  return m_data[4] & 0x7;
1102  }
1103 
1104  //
1105  // TBD
1106  //
1107 
1108  QString toString(void) const override; // MPEGDescriptor
1109 };
1110 
1111 // DVB Bluebook A038 (Feb 2019) p 104 0x7f 0x04
1113 {
1114  public:
1116  const unsigned char *data, int len = 300) :
1117  MPEGDescriptor(data, len, DescriptorID::extension)
1118  {
1120  m_data = nullptr;
1121  else
1122  Parse();
1123  }
1124  // Name bits loc expected value
1125  // descriptor_tag 8 0.0 0x7f extension
1126  // descriptor_length 8 1.0
1127  // descriptor_tag_extension 8 2.0 0x04 t2_delivery_system
1128 
1129  // plp_id 8 3.0
1130  uint PlpID(void) const
1131  {
1132  return m_data[3];
1133  }
1134 
1135  // T2_system_id 16 4.0
1136  uint T2SystemID(void) const
1137  {
1138  return ((m_data[4]<<8) | (m_data[5]));
1139  }
1140 
1141  // SISO/MISO 2 6.0
1142  uint SisoMiso(void) const { return (m_data[6] >> 6) & 0x3; }
1143  QString SisoMisoString(void) const
1144  {
1145  static const std::array<const QString,4> sm
1146  { "SISO", "MISO", "reserved", "reserved" };
1147  return sm[SisoMiso()];
1148  }
1149 
1150  // bandwidth 4 6.2
1151  enum
1152  {
1159  };
1160  uint Bandwidth(void) const { return (m_data[6] >> 2) & 0xF; }
1161  uint BandwidthHz(void) const
1162  {
1163  static constexpr std::array<const uint,6> bw
1164  { 8000000, 7000000, 6000000, 5000000, 10000000, 1712000 };
1165  return (Bandwidth() <= kBandwidth1712kHz ? bw[Bandwidth()] : 0);
1166  }
1167  QString BandwidthString(void) const
1168  {
1169  static const std::array<const QString,6> bs
1170  { "8", "7", "6", "5", "10", "1.712" };
1171  return (Bandwidth() <= kBandwidth1712kHz) ? bs[Bandwidth()] : "0";
1172  }
1173 
1174  // guard_interval 3 7.0
1175  enum
1176  {
1184  };
1185  uint GuardInterval(void) const { return (m_data[7]>>5) & 0x7; }
1186  QString GuardIntervalString(void) const
1187  {
1188  static const std::array<const QString,8> gi
1189  { "1/32", "1/16", "1/8", "1/4", "1/128", "19/128", "19/256", "reserved" };
1190  return gi[GuardInterval()];
1191  }
1192 
1193  // transmission_mode 3 7.3
1194  enum
1195  {
1202  };
1203  uint TransmissionMode(void) const { return (m_data[7]>>2) & 0x7; }
1204  QString TransmissionModeString(void) const
1205  {
1206  static const std::array<const QString,8> tm
1207  { "2k", "8k", "4k", "1k", "16k", "32k", "reserved", "reserved" };
1208  return tm[TransmissionMode()];
1209  }
1210  uint OtherFrequencyFlag(void) const { return (m_data[7]>>1) & 0x1; }
1211  uint TFSFlag(void) const { return m_data[7] & 0x1; }
1212 
1213  public:
1214  uint NumCells(void) const { return m_cellPtrs.size(); }
1215  uint CellID(uint i) const { return (m_cellPtrs[i][0] << 8) | m_cellPtrs[i][1]; }
1216  uint FrequencyLoopLength(uint i) const { return m_cellPtrs[i][2]; }
1217 
1219  {
1220  return (m_cellPtrs[i][2] << 24) | (m_cellPtrs[i][3] << 16) | (m_cellPtrs[i][4] << 8) | m_cellPtrs[i][5];
1221  }
1222 
1223  uint CentreFrequency(int i, int j) const
1224  {
1225  return (m_cellPtrs[i][3+4*j] << 24) | (m_cellPtrs[i][4+4*j] << 16) | (m_cellPtrs[i][5+4*j] << 8) | m_cellPtrs[i][6+4*j];
1226  }
1227  uint SubcellInfoLoopLength(uint i) const { return m_subCellPtrs[i][0]; }
1228  uint CellIDExtension(uint i, uint j) const { return m_subCellPtrs[i][1+5*j]; }
1230  {
1231  return (m_subCellPtrs[i][1+5*j] << 24) | (m_subCellPtrs[i][2+5*j] << 16) | (m_subCellPtrs[i][3+5*j] << 8) | m_cellPtrs[i][4+5*j];
1232  }
1233 
1234  void Parse(void) const;
1235  QString toString(void) const override; // MPEGDescriptor
1236 
1237  private:
1238  mutable std::vector<const unsigned char*> m_cellPtrs; // used to parse
1239  mutable std::vector<const unsigned char*> m_subCellPtrs; // used to parse
1240 };
1241 
1242 // DVB Bluebook A038 (Feb 2019) p 100 0x7f 0x05
1244 {
1245  public:
1247  const unsigned char *data, int len = 300) :
1248  MPEGDescriptor(data, len, DescriptorID::extension)
1249  {
1251  {
1252  m_data = nullptr;
1253  }
1254  }
1255  // Name bits loc expected value
1256  // descriptor_tag 8 0.0 0x7f extension
1257  // descriptor_length 8 1.0
1258  // descriptor_tag_extension 8 2.0 0x05 sh_delivery_system
1259 
1260  //
1261  // TBD
1262  //
1263 
1264  QString toString(void) const override; // MPEGDescriptor
1265 };
1266 
1267 // DVB Bluebook A038 (Feb 2019) p 115 0x7F 0x06
1269 {
1270  public:
1272  const unsigned char *data, int len = 300) :
1273  MPEGDescriptor(data, len, DescriptorID::extension)
1274  {
1276  {
1277  m_data = nullptr;
1278  }
1279  }
1280  // Name bits loc expected value
1281  // descriptor_tag 8 0.0 0x7f extension
1282  // descriptor_length 8 1.0
1283  // descriptor_tag_extension 8 2.0 0x06 supplementary_audio_descriptor
1284 
1285  // mix_type 1 3.0
1286  uint MixType(void) const { return m_data[3] & 0x1; }
1287 
1288  // editorial_classification 5 3.1
1289  uint EditorialClassification(void) const { return (m_data[3] >> 1 ) & 0x1F; }
1290 
1291  // reserved_future_use 1 3.6
1292  uint ReservedFutureUse(void) const { return (m_data[3] >> 6 ) & 0x1; }
1293 
1294  // language_code_present 1 3.7
1295  uint LanguageCodePresent(void) const { return (m_data[3] >> 7 ) & 0x1; }
1296 
1297  // ISO_639_language_code 24 4.0
1298  int LanguageKey(void) const
1299  { return iso639_str3_to_key(&m_data[4]); }
1300  QString LanguageString(void) const
1301  { return iso639_key_to_str3(LanguageKey()); }
1302 
1303  QString toString(void) const override; // MPEGDescriptor
1304 };
1305 
1306 // DVB Bluebook A038 (Feb 2019) p 113 0x7F 0x07
1308 {
1309  public:
1311  const unsigned char *data, int len = 300) :
1312  MPEGDescriptor(data, len, DescriptorID::extension)
1313  {
1315  {
1316  m_data = nullptr;
1317  }
1318  }
1319  // Name bits loc expected value
1320  // descriptor_tag 8 0.0 0x7f extension
1321  // descriptor_length 8 1.0
1322  // descriptor_tag_extension 8 2.0 0x07 network_change_notify_descriptor
1323 
1324  QString toString(void) const override; // MPEGDescriptor
1325 };
1326 
1327 // DVB Bluebook A038 (Feb 2019) p 112 0x7F 0x08
1329 {
1330  public:
1332  const unsigned char *data, int len = 300) :
1333  MPEGDescriptor(data, len, DescriptorID::extension)
1334  {
1336  {
1337  m_data = nullptr;
1338  }
1339  }
1340  // Name bits loc expected value
1341  // descriptor_tag 8 0.0 0x7f extension
1342  // descriptor_length 8 1.0
1343  // descriptor_tag_extension 8 2.0 0x08 message_descriptor
1344 
1345  // message_id 8 3.0
1346  uint MessageID(void) const { return m_data[3]; }
1347 
1348  // ISO_639_language_code 24 4.0
1349  int LanguageKey(void) const
1350  { return iso639_str3_to_key(&m_data[4]); }
1351  QString LanguageString(void) const
1352  { return iso639_key_to_str3(LanguageKey()); }
1353 
1354  // text_char 8 7.0
1355  QString Message(void) const
1356  { return dvb_decode_text(m_data+7, DescriptorLength()-5); }
1357 
1358  QString toString(void) const override; // MPEGDescriptor
1359 };
1360 
1361 // DVB Bluebook A038 (Feb 2019) p 117
1363 {
1364  public:
1366  const unsigned char *data, int len = 300) :
1367  MPEGDescriptor(data, len, DescriptorID::extension)
1368  {
1370  {
1371  m_data = nullptr;
1372  }
1373  }
1374  // Name bits loc expected value
1375  // descriptor_tag 8 0.0 0x7f extension
1376  // descriptor_length 8 1.0 4 or more
1377  // descriptor_tag_extension 8 2.0 0x09 target_region
1378 
1379  // country_code 24 3.0 e.g. "GBR"
1380  uint CountryCode(void) const
1381  {
1382  return ((m_data[3] << 16) | (m_data[4] << 8) | m_data[5]);
1383  }
1384  QString CountryCodeString(void) const
1385  {
1386  std::array<QChar,3> code
1387  { QChar(m_data[3]), QChar(m_data[4]), QChar(m_data[5]) };
1388  return QString(code.data(), 3);
1389  }
1390  //
1391  // TBD
1392  //
1393  QString toString(void) const override; // MPEGDescriptor
1394 };
1395 
1396 // DVB Bluebook A038 (Feb 2019) p 118
1398 {
1399  public:
1401  const unsigned char *data, int len = 300) :
1402  MPEGDescriptor(data, len, DescriptorID::extension)
1403  {
1405  {
1406  m_data = nullptr;
1407  }
1408  }
1409  // Name bits loc expected value
1410  // descriptor_tag 8 0.0 0x7f extension
1411  // descriptor_length 8 1.0 7 or more
1412  // descriptor_tag_extension 8 2.0 0x0A target_region_name
1413 
1414  // country_code 24 3.0 e.g. "GBR"
1415  uint CountryCode(void) const
1416  {
1417  return ((m_data[3] << 16) | (m_data[4] << 8) | m_data[5]);
1418  }
1419  QString CountryCodeString(void) const
1420  {
1421  std::array<QChar,3> code
1422  { QChar(m_data[3]), QChar(m_data[4]), QChar(m_data[5]) };
1423  return QString(code.data(), 3);
1424  }
1425 
1426  // ISO_639_language_code 24 6.0
1427  int LanguageKey(void) const
1428  { return iso639_str3_to_key(&m_data[6]); }
1429  QString LanguageString(void) const
1430  { return iso639_key_to_str3(LanguageKey()); }
1431 
1432  //
1433  // TBD
1434  //
1435  QString toString(void) const override; // MPEGDescriptor
1436 };
1437 
1438 // DVB Bluebook A038 (Feb 2019) p 115 0x7F 0x0B
1440 {
1441  public:
1443  const unsigned char *data, int len = 300) :
1444  MPEGDescriptor(data, len, DescriptorID::extension)
1445  {
1447  {
1448  m_data = nullptr;
1449  }
1450  }
1451  // Name bits loc expected value
1452  // descriptor_tag 8 0.0 0x7f extension
1453  // descriptor_length 8 1.0 7
1454  // descriptor_tag_extension 8 2.0 0x0B service_relocated
1455 
1456  // old_original_network_id 16 3.0
1457  // old_transport_stream_id 16 5.0
1458  // old_service_id 16 7.0
1459  uint OldOriginalNetworkID(void) const { return (m_data[3] << 8) | m_data[4]; }
1460  uint OldTransportID(void) const { return (m_data[5] << 8) | m_data[6]; }
1461  uint OldServiceID(void) const { return (m_data[7] << 8) | m_data[8]; }
1462 
1463  QString toString(void) const override; // MPEGDescriptor
1464 };
1465 
1466 // DVB Bluebook A038 (Feb 2019) p 98
1468 {
1469  public:
1471  const unsigned char *data, int len = 300) :
1472  MPEGDescriptor(data, len, DescriptorID::extension)
1473  {
1475  {
1476  m_data = nullptr;
1477  }
1478  }
1479  // Name bits loc expected value
1480  // descriptor_tag 8 0.0 0x7f extension
1481  // descriptor_length 8 1.0 9
1482  // descriptor_tag_extension 8 2.0 0x0D c2_delivery_system
1483 
1484  // plp_id 8 3.0
1485  uint PlpID(void) const
1486  {
1487  return m_data[3];
1488  }
1489 
1490  // data_slice_id 8 4.0
1491  uint DataSliceID(void) const
1492  {
1493  return m_data[4];
1494  }
1495 
1496  // C2_System_tuning_frequency 32 5.0
1497  uint Frequency(void) const
1498  {
1499  return ((m_data[5]<<24) | (m_data[6]<<16) |
1500  (m_data[7]<<8) | (m_data[8]));
1501  }
1502 
1503  //
1504  // TBD
1505  //
1506 
1507  QString toString(void) const override; // MPEGDescriptor
1508 };
1509 
1510 // DVB Bluebook A038 (Feb 2019) p 108
1512 {
1513  public:
1515  const unsigned char *data, int len = 300) :
1516  MPEGDescriptor(data, len, DescriptorID::extension)
1517  {
1519  {
1520  m_data = nullptr;
1521  }
1522  }
1523  // Name bits loc expected value
1524  // descriptor_tag 8 0.0 0x7f extension
1525  // descriptor_length 8 1.0
1526  // descriptor_tag_extension 8 2.0 0x17 s2x_delivery_system
1527 
1528  //
1529  // TBD
1530  //
1531 
1532  QString toString(void) const override; // MPEGDescriptor
1533 };
1534 
1535 // DVB Bluebook A038 (Sept 2011) p 58
1537 {
1538  public:
1539  explicit DSNGDescriptor(const unsigned char *data, int len = 300) :
1540  MPEGDescriptor(data, len, DescriptorID::dsng) { }
1541  // Name bits loc expected value
1542  // descriptor_tag 8 0.0 0x68
1543  // descriptor_length 8 1.0
1544  // for (i=0;i<N;i++) { byte 8 }
1545 };
1546 
1547 // DVB Bluebook A038 (Sept 2011) p 58
1549 {
1550  public:
1551  explicit ExtendedEventDescriptor(const unsigned char *data, int len = 300) :
1552  MPEGDescriptor(data, len, DescriptorID::extended_event) { }
1553  // Name bits loc expected value
1554  // descriptor_tag 8 0.0 0x4e
1555  // descriptor_length 8 1.0
1556 
1557  // descriptor_number 4 2.0
1558  uint DescriptorNumber(void) const { return m_data[2] >> 4; }
1559  // last_number 4 2.4
1560  uint LastNumber(void) const { return m_data[2] & 0xf; }
1561  // ISO_639_language_code 24 3.0
1562  int LanguageKey(void) const
1563  { return iso639_str3_to_key(&m_data[3]); }
1564  QString LanguageString(void) const
1565  { return iso639_key_to_str3(LanguageKey()); }
1566  int CanonicalLanguageKey(void) const
1567  { return iso639_key_to_canonical_key(LanguageKey()); }
1568  QString CanonicalLanguageString(void) const
1569  { return iso639_key_to_str3(CanonicalLanguageKey()); }
1570  // length_of_items 8 6.0
1571  uint LengthOfItems(void) const { return m_data[6]; }
1572  // for ( i=0;i<N;i++)
1573  // {
1574  // item_description_len 8 0.0+p
1575  // for (j=0;j<N;j++) { item_desc_char 8 }
1576  // item_length 8 1.0+p2
1577  // for (j=0;j<N;j++) { item_char 8 }
1578  // }
1579  QMultiMap<QString,QString> Items(void) const;
1580  // text_length 8
1581  uint TextLength(void) const { return m_data[7 + LengthOfItems()]; }
1582  // for (i=0; i<N; i++) { text_char 8 }
1583  QString Text(void) const
1584  { return dvb_decode_text(&m_data[8 + LengthOfItems()], TextLength()); }
1585 
1586  // HACK beg -- Pro7Sat is missing encoding
1587  QString Text(const enc_override &encoding_override) const
1588  {
1589  return dvb_decode_text(&m_data[8 + LengthOfItems()], TextLength(),
1590  encoding_override);
1591  }
1592  // HACK end -- Pro7Sat is missing encoding
1593 };
1594 
1595 // DVB Bluebook A038 (Sept 2011) p 60
1597 {
1598  public:
1599  explicit FrequencyListDescriptor(const unsigned char *data, int len = 300) :
1600  MPEGDescriptor(data, len, DescriptorID::frequency_list) { }
1601  // Name bits loc expected value
1602  // descriptor_tag 8 0.0 0x62
1603  // descriptor_length 8 1.0
1604 
1605  // reserved_future_use 6 2.0
1606  // coding_type 2 2.6
1607  enum
1608  {
1613  };
1614  uint CodingType(void) const { return m_data[2] & 0x3; }
1615  // for (i=0;I<N;i++)
1616  // {
1617  // centre_frequency 32
1618  // }
1619  uint FrequencyCount() const { return DescriptorLength()>>2; }
1620  unsigned long long Frequency(uint i) const
1621  {
1623  {
1624  return (((unsigned long long)m_data[i*4+3]<<24) |
1625  (m_data[i*4+4]<<16) |
1626  (m_data[i*4+5]<<8) |
1627  (m_data[i*4+6]));
1628  }
1629  return byte4BCD2int(m_data[i*4+3], m_data[i*4+4],
1630  m_data[i*4+5], m_data[i*4+6]);
1631  }
1632  unsigned long long FrequencyHz(uint i) const
1633  {
1634  return Frequency(i) *
1635  ((kCodingTypeTerrestrial == CodingType()) ? 10 : 100);
1636  }
1637 
1638  QString toString(void) const override; // MPEGDescriptor
1639 };
1640 
1641 // DVB Bluebook A038 (Sept 2011) p 70
1642 // ETSI EN 300 468 p 58
1644 {
1645  public:
1646  explicit LocalTimeOffsetDescriptor(const unsigned char *data, int len = 300) :
1647  MPEGDescriptor(data, len, DescriptorID::local_time_offset) { }
1648  // Name bits loc expected value
1649  // descriptor_tag 8 0.0 0x58
1650  // descriptor_length 8 1.0
1651  uint Count(void) const { return DescriptorLength() / 13; }
1652  // for(i=0;i<N;i++)
1653  // {
1654  // country_code 24 0.0+p
1656  {
1657  int o = 2 + i*13;
1658  return ((m_data[o] << 16) | (m_data[o+1] << 8) | m_data[o+2]);
1659  }
1660  QString CountryCodeString(uint i) const
1661  {
1662  int o = 2 + i*13;
1663  std::array<QChar,3> code
1664  { QChar(m_data[o]), QChar(m_data[o+1]), QChar(m_data[o+2]) };
1665  return QString(code.data(), 3);
1666  }
1667  // country_region_id 6 3.0+p
1668  uint CountryRegionId(uint i) const { return m_data[2 + i*13 + 3] >> 2; }
1669  // reserved 1 3.6+p
1670  // local_time_off_polarity 1 3.7+p
1673  { return (m_data[2 + i*13 + 3] & 0x01) != 0; }
1674  // local_time_offset 16 4.0+p
1676  { return (m_data[2 + i*13 + 4] << 8) | m_data[2 + i*13 + 5]; }
1678  { return (LocalTimeOffsetPolarity(i) ? -1 : +1) * LocalTimeOffset(i); }
1679  // time_of_change 40 6.0+p
1680  // TODO decode this
1681  // next_time_offset 16 11.0+p
1683  { return (m_data[2 + i*13 + 11]<<8) | m_data[2 + i*13 + 12]; }
1684  // } 13.0
1685  QString toString(void) const override; // MPEGDescriptor
1686 };
1687 
1688 // DVB Bluebook A038 (Sept 2011) p 71
1690 {
1691  public:
1692  explicit MosaicDescriptor(const unsigned char *data, int len = 300) :
1693  MPEGDescriptor(data, len, DescriptorID::mosaic) { }
1694  // Name bits loc expected value
1695  // descriptor_tag 8 0.0 0x51
1696  // descriptor_length 8 1.0
1697 
1698  // mosaic_entry_point 1 2.0
1699  // num_horiz_elem_cells 3 2.1
1700  // reserved_future_use 1 2.4
1701  // num_vert_elem_cells 3 2.5
1702  // for (i=0;i<N; i++)
1703  // {
1704  // logical_cell_id 6 0.0+p
1705  // reserved_future_use 7 0.6+p
1706  // logical_cell_pres_info 3 1.5+p
1707  // elem_cell_field_len 8 2.0+p
1708  // for (i=0; j<elementary_cell_field_length; j++)
1709  // {
1710  // reserved_future_use 2
1711  // elementary_cell_id 6
1712  // }
1713  // cell_linkage_info 8
1714  // if (cell_linkage_info == 0x01)
1715  // {
1716  // bouquet_id 16
1717  // }
1718  // if (cell_linkage_info == 0x02)
1719  // {
1720  // original_network_id 16
1721  // transport_stream_id 16
1722  // service_id 16
1723  // }
1724  // if (cell_linkage_info == 0x03)
1725  // {
1726  // original_network_id 16
1727  // transport_stream_id 16
1728  // service_id 16
1729  // }
1730  // if (cell_linkage_info == 0x04)
1731  // {
1732  // original_network_id 16
1733  // transport_stream_id 16
1734  // service_id 16
1735  // event_id 16
1736  // }
1737  // }
1738 };
1739 
1740 // DVB Bluebook A038 (Sept 2011) p 74
1742 {
1743  public:
1745  const unsigned char *data, int len = 300) :
1746  MPEGDescriptor(data, len, DescriptorID::multilingual_bouquet_name) { }
1747  // Name bits loc expected value
1748  // descriptor_tag 8 0.0 0x5c
1749  // descriptor_length 8 1.0
1750 
1751  // for (i=0;i<N;i++)
1752  // {
1753  // ISO_639_language_code 24
1754  // bouquet_name_length 8
1755  // for (j=0;j<N;j++) { char 8 }
1756  // }
1757 };
1758 
1759 // DVB Bluebook A038 (Sept 2011) p 75
1761 {
1762  public:
1764  const unsigned char *data, int len = 300) :
1765  MPEGDescriptor(data, len, DescriptorID::multilingual_network_name) { }
1766  // Name bits loc expected value
1767  // descriptor_tag 8 0.0 0x5b
1768  // descriptor_length 8 1.0
1769 
1770  // for (i=0;i<N;i++)
1771  // {
1772  // ISO_639_language_code 24
1773  // network_name_length 8
1774  // for (j=0;j<N;j++) { char 8 }
1775  // }
1776 };
1777 
1778 // DVB Bluebook A038 (Sept 2011) p 76
1780 {
1781  public:
1783  const unsigned char *data, int len = 300) :
1784  MPEGDescriptor(data, len, DescriptorID::multilingual_service_name) { }
1785  // Name bits loc expected value
1786  // descriptor_tag 8 0.0 0x5d
1787  // descriptor_length 8 1.0
1788 
1789  // for (i=0;i<N;i++)
1790  // {
1791  // ISO_639_language_code 24
1792  // service_provider_name_length 8
1793  // for (j=0;j<N;j++) { char 8 }
1794  // service_name_length 8
1795  // for (j=0;j<N;j++) { char 8 }
1796  // }
1797 };
1798 
1799 // DVB Bluebook A038 (Sept 2011) p 76
1801 {
1802  public:
1803  explicit NVODReferenceDescriptor(const unsigned char *data, int len = 300) :
1804  MPEGDescriptor(data, len, DescriptorID::nvod_reference) { }
1805  // Name bits loc expected value
1806  // descriptor_tag 8 0.0 0x4b
1807  // descriptor_length 8 1.0
1808  uint Count(void) const { return DescriptorLength() / 6; }
1809 
1810  // for (i=0;i<N;i++)
1811  // {
1812  // transport_stream_id 16
1814  { return (m_data[i * 6 + 2] << 8) | m_data[i * 6 + 3]; }
1815  // original_network_id 16
1817  { return (m_data[i * 6 + 4] << 8) | m_data[i * 6 + 5]; }
1818  // service_id 16
1820  { return (m_data[i * 6 + 6] << 8) | m_data[i * 6 + 7]; }
1821  // }
1822  QString toString(void) const override; // MPEGDescriptor
1823 };
1824 
1825 // DVB Bluebook A038 (Sept 2011) p 78
1826 // ETSI EN 300 468
1828 {
1829  public:
1830  explicit ParentalRatingDescriptor(const unsigned char *data, int len = 300) :
1831  MPEGDescriptor(data, len, DescriptorID::parental_rating) { }
1832  explicit ParentalRatingDescriptor(const std::vector<uint8_t> &data) :
1833  MPEGDescriptor(data, DescriptorID::parental_rating) { }
1834  // Name bits loc expected value
1835  // descriptor_tag 8 0.0 0x55
1836  // descriptor_length 8 1.0
1837  uint Count(void) const { return DescriptorLength() / 4; }
1838 
1839  // for (i=0; i<N; i++)
1840  // {
1841  // country_code 24
1842  // rating 8
1843  // }
1844  QString CountryCodeString(uint i) const
1845  {
1846  int o = 2 + i*4;
1847  if (i >= Count())
1848  return QString("");
1849  std::array<QChar,3> code
1850  { QChar(m_data[o]), QChar(m_data[o+1]), QChar(m_data[o+2]) };
1851  return QString(code.data(), 3);
1852  }
1853  int Rating(uint i) const
1854  {
1855  if (i >= Count())
1856  {
1857  return -1;
1858  }
1859 
1860  unsigned char rawRating = m_data[2 + 3 + i*4];
1861  if (rawRating == 0)
1862  {
1863  // 0x00 - undefined
1864  return -1;
1865  }
1866  if (rawRating <= 0x0F)
1867  {
1868  // 0x01 to 0x0F - minumum age = rating + 3 years
1869  return rawRating + 3;
1870  }
1871 
1872  // 0x10 to 0xFF - defined by the broadcaster
1873  return -1;
1874  }
1875 };
1876 
1877 // DVB Bluebook A038 (Sept 2011) p 78 (see also ETSI EN 300 231 PDC)
1879 {
1880  public:
1881  explicit PDCDescriptor(const unsigned char *data, int len = 300) :
1882  MPEGDescriptor(data, len, DescriptorID::pdc, 3) { }
1883  // Name bits loc expected value
1884  // descriptor_tag 8 0.0 0x69
1885  // descriptor_length 8 1.0
1886 
1887  // reserved_future_use 4 2.0
1888  // program_id_label 20 2.4
1889  uint ProgramIdLabel(void) const
1890  { return (m_data[2] & 0x0F) << 16 | m_data[3] << 8 | m_data[4]; }
1891  QString toString(void) const override // MPEGDescriptor
1892  {
1893  return QString("PDCDescriptor program_id_label(%1)")
1894  .arg(ProgramIdLabel());
1895  }
1896 };
1897 
1898 // DVB Bluebook A038 (Sept 2011) p 79 (see also ETSI TS 101 162)
1900 {
1901  public:
1902  explicit PrivateDataSpecifierDescriptor(const unsigned char *data, int len = 300) :
1903  MPEGDescriptor(data, len, DescriptorID::private_data_specifier) { }
1904  explicit PrivateDataSpecifierDescriptor(const std::vector<uint8_t> &data) :
1905  MPEGDescriptor(data, DescriptorID::private_data_specifier) { }
1906  // Name bits loc expected value
1907  // descriptor_tag 8 0.0 0x5f
1908  // descriptor_length 8 1.0
1909 
1910  // private_data_specifier 32 2.0
1911  uint32_t PrivateDataSpecifier (void) const
1912  {
1913  return (m_data[2] << 24 | m_data[3] << 16 | m_data[4] << 8 | m_data[5]);
1914  }
1915 };
1916 
1917 // DVB Bluebook A038 (Sept 2011) p 79
1919 {
1920  public:
1921  explicit ScramblingDescriptor(const unsigned char *data, int len = 300) :
1922  MPEGDescriptor(data, len, DescriptorID::scrambling, 1) { }
1923  // Name bits loc expected value
1924  // descriptor_tag 8 0.0 0x65
1925  // descriptor_length 8 1.0
1926 
1927  // scrambling_mode 8 2.0
1928  uint ScramblingMode(void) const { return m_data[2]; }
1929  QString toString(void) const override // MPEGDescriptor
1930  {
1931  return QString("ScramblingDescriptor scrambling_mode(%1)")
1932  .arg(ScramblingMode());
1933  }
1934 };
1935 
1936 // DVB Bluebook A038 (Feb 2019) p 83, Table 89: Service type coding
1938 {
1939  public:
1940  explicit ServiceDescriptorMapping(const uint service_type) { m_serviceType = service_type; }
1941  enum
1942  {
1951  // reserved for future use = 0x09,
1960  // reserved for future use = 0x12 to 0x15
1972  // reserved for future use = 0x21 to 0x7F
1973  // user defined = 0x80 to 0xFE
1974  // reserved for future use = 0xFF
1975  // User Defined descriptors for Dish network
1989 
1990  };
1991  uint ServiceType(void) const { return m_serviceType; }
1992  bool IsDTV(void) const
1993  {
1994  return ((ServiceType() == kServiceTypeDigitalTelevision) ||
1996  IsHDTV() ||
1997  IsUHDTV() ||
2011  }
2012  bool IsDigitalAudio(void) const
2013  {
2014  return
2017  }
2018  bool IsHDTV(void) const
2019  {
2020  return
2024  }
2025  bool IsUHDTV(void) const
2026  {
2027  return
2030  }
2031  bool IsTeletext(void) const
2032  {
2034  }
2035  QString toString(void) const;
2036 
2037  private:
2039 };
2040 
2041 // DVB Bluebook A038 (Feb 2019) p 82
2043 {
2044  public:
2045  explicit ServiceDescriptor(const unsigned char *data, int len = 300) :
2046  MPEGDescriptor(data, len, DescriptorID::service) { }
2047  // Name bits loc expected value
2048  // descriptor_tag 8 0.0 0x48
2049  // descriptor_length 8 1.0
2050 
2051  // service_type 8 2.0
2052  uint ServiceType(void) const { return m_data[2]; }
2053  // svc_provider_name_len 8 3.0
2054  uint ServiceProviderNameLength(void) const { return m_data[3]; }
2055  // for (i=0;i<N;I++) { char 8 }
2056  QString ServiceProviderName(void) const
2058  QString ServiceProviderShortName(void) const
2059  {
2061  }
2062  // service_name_length 8
2064  { return m_data[4 + ServiceProviderNameLength()]; }
2065  // for (i=0;i<N;I++) { char 8 }
2066  QString ServiceName(void) const
2067  {
2069  ServiceNameLength());
2070  }
2071  QString ServiceShortName(void) const
2072  {
2074  ServiceNameLength());
2075  }
2076  bool IsDTV(void) const
2077  { return ServiceDescriptorMapping(ServiceType()).IsDTV(); }
2078  bool IsDigitalAudio(void) const
2080  bool IsHDTV(void) const
2082  bool IsTeletext(void) const
2084 
2085  QString toString(void) const override // MPEGDescriptor
2086  {
2087  return QString("ServiceDescriptor: %1 %2(0x%3)")
2088  .arg(ServiceName(),
2090  .arg(ServiceType(),2,16,QChar('0'));
2091  }
2092 };
2093 
2094 // DVB Bluebook A038 (Feb 2019) p 84
2096 {
2097  public:
2098  explicit ServiceAvailabilityDescriptor(const unsigned char *data, int len = 300) :
2099  MPEGDescriptor(data, len, DescriptorID::service_availability) { }
2100  // Name bits loc expected value
2101  // descriptor_tag 8 0.0 0x72
2102  // descriptor_length 8 1.0
2103 
2104  // availability_flag 1 2.0
2105  // reserved 7 2.1
2106  // for (i=0;i<N;i++) { cell_id 16 }
2107 };
2108 
2109 // DVB Bluebook A038 (Feb 2019) p 84
2111 {
2112  public:
2113  explicit ServiceListDescriptor(const unsigned char *data, int len = 300) :
2114  MPEGDescriptor(data, len, DescriptorID::service_list) { }
2115  // Name bits loc expected value
2116  // descriptor_tag 8 0.0 0x41
2117  // descriptor_length 8 1.0
2118 
2119  // for (i=0;i<N;I++)
2120  // {
2121  // service_id 16 0.0+p
2122  // service_type 8 2.0+p
2123  // }
2124  uint ServiceCount(void) const { return DescriptorLength() / 3; }
2125 
2127  { return (m_data[2+i*3] << 8) | m_data[3+i*3]; }
2128 
2129  uint ServiceType(uint i) const { return m_data[4+i*3]; }
2130 
2131  QString toString(void) const override // MPEGDescriptor
2132  {
2133  QString str = QString("ServiceListDescriptor: %1 Services")
2134  .arg(ServiceCount());
2135  for (uint i=0; i<ServiceCount(); i++)
2136  {
2137  str.append("\n");
2138  str.append(QString(" Service (%1) Type%2 (0x%3)")
2139  .arg(ServiceID(i))
2141  .arg(ServiceType(i),2,16,QChar('0')));
2142  }
2143  return str;
2144  }
2145 };
2146 
2147 // DVB Bluebook A038 (Sept 2011) p 82
2149 {
2150  public:
2151  explicit ServiceMoveDescriptor(const unsigned char *data, int len = 300) :
2152  MPEGDescriptor(data, len, DescriptorID::service_move) { }
2153  // Name bits loc expected value
2154  // descriptor_tag 8 0.0 0x60
2155  // descriptor_length 8 1.0
2156 
2157  // new_original_network_id 16 2.0
2158  // new_transport_stream_id 16 4.0
2159  // new_service_id 16 6.0
2160 };
2161 
2162 // DVB Bluebook A038 (Sept 2011) p 83
2164 {
2165  public:
2166  explicit ShortEventDescriptor(const unsigned char *data, int len = 300) :
2167  MPEGDescriptor(data, len, DescriptorID::short_event) { }
2168  // Name bits loc expected value
2169  // descriptor_tag 8 0.0 0x4d
2170  // descriptor_length 8 1.0
2171 
2172  // ISO_639_language_code 24 2.0
2173  int LanguageKey(void) const
2174  { return iso639_str3_to_key(&m_data[2]); }
2175  QString LanguageString(void) const
2176  { return iso639_key_to_str3(LanguageKey()); }
2177  int CanonicalLanguageKey(void) const
2179  QString CanonicalLanguageString(void) const
2181  // event_name_length 8 5.0
2182  uint EventNameLength(void) const { return m_data[5]; }
2183  // for (i=0;i<event_name_length;i++) { event_name_char 8 }
2184  QString EventName(void) const
2185  { return dvb_decode_text(&m_data[6], m_data[5]); }
2186  QString EventShortName(void) const
2187  { return dvb_decode_short_name(&m_data[6], m_data[5]); }
2188  // text_length 8
2189  uint TextLength(void) const { return m_data[6 + m_data[5]]; }
2190  // for (i=0;i<text_length;i++) { text_char 8 }
2191  QString Text(void) const
2192  { return dvb_decode_text(&m_data[7 + m_data[5]], TextLength()); }
2193 
2194  // HACK beg -- Pro7Sat is missing encoding
2195  QString EventName(const enc_override& encoding_override) const
2196  {
2197  return dvb_decode_text(&m_data[6], m_data[5],
2198  encoding_override);
2199  }
2200 
2201  QString Text(const enc_override& encoding_override) const
2202  {
2203  return dvb_decode_text(&m_data[7 + m_data[5]], TextLength(),
2204  encoding_override);
2205  }
2206  // HACK end -- Pro7Sat is missing encoding
2207 
2208  QString toString(void) const override // MPEGDescriptor
2209  { return LanguageString() + " : " + EventName() + " : " + Text(); }
2210 };
2211 
2212 // DVB Bluebook A038 (Sept 2011) p 84
2214 {
2215  public:
2216  explicit ShortSmoothingBufferDescriptor(const unsigned char *data, int len = 300) :
2217  MPEGDescriptor(data, len, DescriptorID::short_smoothing_buffer) { }
2218  // Name bits loc expected value
2219  // descriptor_tag 8 0.0 0x61
2220  // descriptor_length 8 1.0
2221 
2222  // sb_size 2 2.0
2223  // sb_leak_rate 6 2.2
2224  // for (i=0; i<N; i++)
2225  // { DVB_reserved 8 }
2226 };
2227 
2228 // DVB Bluebook A038 (Sept 2011) p 85
2232 {
2233  public:
2234  explicit StreamIdentifierDescriptor(const unsigned char *data, int len = 300) :
2235  MPEGDescriptor(data, len, DescriptorID::stream_identifier, 1) { }
2236  // Name bits loc expected value
2237  // descriptor_tag 8 0.0 0x52
2238  // descriptor_length 8 1.0 0x01
2239 
2240  // component_tag 8 2.0
2241  uint ComponentTag(void) const { return m_data[2]; }
2242  QString toString(void) const override // MPEGDescriptor
2243  {
2244  return QString("Stream Identifier Descriptor (0x52): ComponentTag=0x%1")
2245  .arg(ComponentTag(),1,16);
2246  }
2247 };
2248 
2249 // DVB Bluebook A038 (Sept 2011) p 86
2251 {
2252  public:
2253  explicit StuffingDescriptor(const unsigned char *data, int len = 300) :
2254  MPEGDescriptor(data, len, DescriptorID::dvb_stuffing) { }
2255  // Name bits loc expected value
2256  // descriptor_tag 8 0.0 0x42
2257  // descriptor_length 8 1.0
2258  // stuffing_byte * 2.0
2259  QString toString(void) const override // MPEGDescriptor
2260  {
2261  return QString("Stuffing Descriptor (0x42) length(%1)")
2262  .arg(DescriptorLength());
2263  }
2264 };
2265 
2266 // DVB Bluebook A038 (Sept 2011) p 86
2268 {
2269  public:
2270  explicit SubtitlingDescriptor(const unsigned char *data, int len = 300) :
2271  MPEGDescriptor(data, len, DescriptorID::subtitling) { }
2272  // Name bits loc expected value
2273  // descriptor_tag 8 0.0 0x59
2274  // descriptor_length 8 1.0
2275 
2276  uint StreamCount(void) const { return DescriptorLength() >> 3; }
2277  // for (i= 0;i<N;I++)
2278  // {
2279  // ISO_639_language_code 24 0.0+(i*8)
2280  int LanguageKey(uint i) const
2281  { return iso639_str3_to_key(&m_data[2 + (i<<3)]); }
2282  QString LanguageString(uint i) const
2283  { return iso639_key_to_str3(LanguageKey(i)); }
2288 
2289  // subtitling_type 8 3.0+(i*8)
2291  { return m_data[5 + (i<<3)]; }
2292  // composition_page_id 16 4.0+(i*8)
2294  { return (m_data[6 + (i<<3)] << 8) | m_data[7 + (i<<3)]; }
2295  // ancillary_page_id 16 6.0+(i*8)
2297  { return (m_data[8 + (i<<3)] << 8) | m_data[9 + (i<<3)]; }
2298  // } 8.0
2299  QString toString(void) const override; // MPEGDescriptor
2300 };
2301 
2302 // DVB Bluebook A038 (Sept 2011) p 87
2304 {
2305  public:
2306  explicit TelephoneDescriptor(const unsigned char *data, int len = 300) :
2307  MPEGDescriptor(data, len, DescriptorID::telephone) { }
2308  // Name bits loc expected value
2309  // descriptor_tag 8 0.0 0x57
2310  // descriptor_length 8 1.0
2311 
2312  // reserved_future_use 2 2.0
2313  // foreign_availability 1 2.2
2314  // connection_type 5 2.3
2315  // reserved_future_use 1 3.0
2316  // country_prefix_length 2 3.1
2317  // i18n_area_code_len 3 3.4
2318  // operator_code_length 2 3.6
2319  // reserved_future_use 1 3.7
2320  // national_area_code_len 3 4.0
2321  // core_number_length 4 4.4
2322  //
2323  // for (i=0; i<N; i++)
2324  // { country_prefix_char 8 }
2325  // for (i=0; i<N; i++)
2326  // { international_area_code_char 8 }
2327  // for (i=0; i<N; i++)
2328  // { operator_code_char 8 }
2329  // for (i=0; i<N; i++)
2330  // { national_area_code_char 8 }
2331  // for (i=0; i<N; i++)
2332  // { core_number_char 8 }
2333 };
2334 
2335 // DVB Bluebook A038 (Sept 2011) p 88
2337 {
2338  public:
2339  explicit TeletextDescriptor(const unsigned char *data, int len = 300) :
2340  MPEGDescriptor(data, len, DescriptorID::teletext) { }
2341  // Name bits loc expected value
2342  // descriptor_tag 8 0.0 0x56
2343  // descriptor_length 8 1.0
2344 
2345  uint StreamCount(void) const { return DescriptorLength() / 5; }
2346 
2347  // for (i=0; i<N; i++)
2348  // {
2349  // ISO_639_language_code 24 0.0
2350  int LanguageKey(uint i) const
2351  { return iso639_str3_to_key(&m_data[2 + (i*5)]); }
2352  QString LanguageString(uint i) const
2353  { return iso639_key_to_str3(LanguageKey(i)); }
2358  // teletext_type 5 3.0
2360  { return m_data[5 + (i*5)] >> 3; }
2361  // teletext_magazine_num 3 3.5
2363  { return m_data[5 + (i*5)] & 0x7; }
2364  // teletext_page_num 8 4.0
2366  { return m_data[6 + (i*5)]; }
2367  // } 5.0
2368  QString toString(void) const override; // MPEGDescriptor
2369 };
2370 
2371 // DVB Bluebook A038 (Sept 2011) p 89
2373 {
2374  public:
2375  explicit TimeShiftedEventDescriptor(const unsigned char *data, int len = 300) :
2376  MPEGDescriptor(data, len, DescriptorID::time_shifted_event) { }
2377  // Name bits loc expected value
2378  // descriptor_tag 8 0.0 0x4f
2379  // descriptor_length 8 1.0
2380 
2381  // reference_service_id 16 2.0
2382  // reference_event_id 16 4.0
2383 };
2384 
2385 // DVB Bluebook A038 (Sept 2011) p 90
2387 {
2388  public:
2389  explicit TimeShiftedServiceDescriptor(const unsigned char *data, int len = 300) :
2390  MPEGDescriptor(data, len, DescriptorID::dvb_time_shifted_service) { }
2391  // Name bits loc expected value
2392  // descriptor_tag 8 0.0 0x4c
2393  // descriptor_length 8 1.0
2394 
2395  // reference_service_id 16 2.0
2396 };
2397 
2398 // DVB Bluebook A038 (Sept 2011) p 90
2400 {
2401  public:
2402  explicit TransportStreamDescriptor(const unsigned char *data, int len = 300) :
2403  MPEGDescriptor(data, len, DescriptorID::transport_stream) { }
2404  // Name bits loc expected value
2405  // descriptor_tag 8 0.0 0x67
2406  // descriptor_length 8 1.0
2407 
2408  // for (i=0; i<N; i++) { byte 8 }
2409  QString Data(void) const
2410  { return dvb_decode_text(&m_data[2], DescriptorLength()); }
2411  QString toString(void) const override // MPEGDescriptor
2412  { return QString("TransportStreamDescriptor data(%1)").arg(Data()); }
2413 };
2414 
2415 // DVB Bluebook A038 (Sept 2011) p 91
2417 {
2418  public:
2419  explicit VBIDataDescriptor(const unsigned char *data, int len = 300) :
2420  MPEGDescriptor(data, len, DescriptorID::vbi_data) { }
2421  // Name bits loc expected value
2422  // descriptor_tag 8 0.0 0x45
2423  // descriptor_length 8 1.0
2424 
2425  // for (i=0; i<N; i++)
2426  // {
2427  // data_service_id 8 0.0+p
2428  // data_service_length 8 1.0+p
2429  // if ((data_service_id&0x7) && data_service_id!=0x3))
2430  // {
2431  // for (i=0; i<N; i++)
2432  // {
2433  // reserved 2 2.0+p2
2434  // field_parity 1 2.2+p2
2435  // line_offset 5 2.3+p2
2436  // }
2437  // }
2438  // else
2439  // {
2440  // for (i=0; i<N; i++) { reserved 8 }
2441  // }
2442  // }
2443 };
2444 
2445 // DVB Bluebook A038 (Sept 2011) p 92
2447 {
2448  public:
2449  explicit VBITeletextDescriptor(const unsigned char *data, int len = 300) :
2450  MPEGDescriptor(data, len, DescriptorID::vbi_teletext) { }
2451  // Name bits loc expected value
2452  // descriptor_tag 8 0.0 0x46
2453  // descriptor_length 8 1.0
2454 
2455  // for (i=0;i<N;i++)
2456  // {
2457  // ISO_639_language_code 24 0.0+p
2458  // teletext_type 5 3.0+p
2459  // teletext_magazine_num 3 3.5+p
2460  // teletext_page_num 8 4.0+p
2461  // } 5.0
2462 };
2463 
2464 // DVB Bluebook A038 (Feb 2019) p 125
2466 {
2467  public:
2468  explicit PartialTransportStreamDescriptor(const unsigned char *data, int len = 300) :
2469  MPEGDescriptor(data, len, DescriptorID::partial_transport_stream) { }
2470  // Name bits loc expected value
2471  // descriptor_tag 8 0.0 0x63
2472  // descriptor_length 8 1.0
2473 
2474  // DVB_reserved_future_use 2 2.0
2475  // peak_rate 22 2.2
2476  uint PeakRate(void) const
2477  { return (m_data[2] & 0x3f) << 16 | m_data[3] << 8 | m_data[4]; }
2478  // DVB_reserved_future_use 2 5.0
2479  // minimum_overall_smoothing_rate 22 5.2
2480  uint SmoothRate(void) const
2481  { return (m_data[5] & 0x3f) << 16 | m_data[6] << 8 | m_data[7]; }
2482  // DVB_reserved_future_use 2 8.0
2483  // maximum_overall_smoothing_buffer 14 8.2
2484  uint SmoothBuf(void) const { return ((m_data[8] & 0x3f) << 8) | m_data[9]; }
2485  QString toString(void) const override; // MPEGDescriptor
2486 };
2487 
2488 
2489 // a_52a.pdf p125 Table A7 (for DVB)
2490 // DVB Bluebook A038 (Feb 2019) p 145
2492 {
2493  public:
2494  explicit AC3Descriptor(const unsigned char *data, int len = 300) :
2495  MPEGDescriptor(data, len, DescriptorID::ac3) { }
2496  // Name bits loc expected value
2497  // descriptor_tag 8 0.0 0x6A
2498  // descriptor_length 8 1.0
2499 
2500  // component_type_flag 1 2.0
2501  bool HasComponentType(void) const { return ( m_data[2] & 0x80 ) != 0; }
2502  // bsid_flag 1 2.1
2503  bool HasBSID(void) const { return ( m_data[2] & 0x40 ) != 0; }
2504  // mainid_flag 1 2.2
2505  bool HasMainID(void) const { return ( m_data[2] & 0x20 ) != 0; }
2506  // asvc_flag 1 2.3
2507  bool HasASVC(void) const { return ( m_data[2] & 0x10 ) != 0; }
2508  // reserved_flags 4 2.4
2509  // if (component_type_flag == 1)
2510  // { component_type 8 uimsbf }
2511  uint ComponentType(void) const { return m_data[3]; }
2512  // if (bsid_flag == 1)
2513  // { bsid 8 uimsbf }
2514  uint BSID(void) const
2515  { return (HasComponentType()) ? m_data[4] : m_data[3]; }
2516  // if (mainid_flag == 1)
2517  // { mainid 8 uimsbf }
2518  uint MainID(void) const
2519  {
2520  int offset = 3;
2521  offset += (HasComponentType()) ? 1 : 0;
2522  offset += (HasBSID()) ? 1 : 0;
2523  return m_data[offset];
2524  }
2525  // if (asvc_flag==1)
2526  // { asvc 8 uimsbf }
2527  uint ASVC(void) const
2528  {
2529  int offset = 3;
2530  offset += (HasComponentType()) ? 1 : 0;
2531  offset += (HasBSID()) ? 1 : 0;
2532  offset += (HasMainID()) ? 1 : 0;
2533  return m_data[offset];
2534  }
2535  // for (I=0;I<N;I++)
2536  // { additional_info[i] N*8 uimsbf }
2537  //};
2538  QString toString(void) const override; // MPEGDescriptor
2539 };
2540 
2541 static QString coderate_inner(uint coderate)
2542 {
2543  switch (coderate)
2544  {
2545  case 0x0: return "auto"; // not actually defined in spec
2546  case 0x1: return "1/2";
2547  case 0x2: return "2/3";
2548  case 0x3: return "3/4";
2549  case 0x4: return "5/6";
2550  case 0x5: return "7/8";
2551  case 0x8: return "8/9";
2552  case 0xf: return "none";
2553  default: return "auto"; // not actually defined in spec
2554  }
2555 }
2556 
2566 {
2567  public:
2568  explicit DVBLogicalChannelDescriptor(const unsigned char *data, int len = 300) :
2569  MPEGDescriptor(data, len, PrivateDescriptorID::dvb_logical_channel_descriptor) { }
2570  // Name bits loc expected value
2571  // descriptor_tag 8 0.0 0x83
2572  // descriptor_length 8 1.0
2573 
2574  uint ChannelCount(void) const { return DescriptorLength() >> 2; }
2575 
2577  { return (m_data[2 + (i<<2)] << 8) | m_data[3 + (i<<2)]; }
2578 
2580  { return ((m_data[4 + (i<<2)] << 8) | m_data[5 + (i<<2)]) & 0x3ff; }
2581 
2582  QString toString(void) const override; // MPEGDescriptor
2583 };
2584 
2594 {
2595  public:
2596  explicit DVBSimulcastChannelDescriptor(const unsigned char *data, int len = 300) :
2597  MPEGDescriptor(data, len, PrivateDescriptorID::dvb_simulcast_channel_descriptor) { }
2598  // Name bits loc expected value
2599  // descriptor_tag 8 0.0 0x88
2600  // descriptor_length 8 1.0
2601 
2602  uint ChannelCount(void) const { return DescriptorLength() >> 2; }
2603 
2605  { return (m_data[2 + (i<<2)] << 8) | m_data[3 + (i<<2)]; }
2606 
2608  { return ((m_data[4 + (i<<2)] << 8) | m_data[5 + (i<<2)]) & 0x3ff; }
2609 
2610  QString toString(void) const override; // MPEGDescriptor
2611 };
2612 
2624 {
2625  public:
2626  explicit FreesatLCNDescriptor(const unsigned char *data, int len = 300) :
2627  MPEGDescriptor(data, len, PrivateDescriptorID::freesat_lcn_table)
2628  {
2630 
2631  const unsigned char *payload = &data[2];
2632 
2633  uint offset = 0;
2634  while ((offset + 5 < DescriptorLength()) &&
2635  (offset + 5 + payload[offset+4] <= DescriptorLength()))
2636  {
2637  m_entries.push_back(&payload[offset]);
2638  offset += 5 + payload[offset+4];
2639  }
2640  }
2641  // Name bits loc expected value
2642  // descriptor_tag 8 0.0 0xd3
2643  // descriptor_length 8 1.0
2644  // for (i=0;i<N;i++) {
2645  // service_id 16 0.0+p
2646  // chan_id 15 2.1+p
2647  // length 8 4.0+p
2648  // for (j=0;j<N;j++) {
2649  // unknown 4 0.0+p2
2650  // logical_channel_number 12 0.4+p2
2651  // region_id 16 2.0+p2
2652  // }
2653  // }
2654 
2655  uint ServiceCount(void) const
2656  { return m_entries.size(); }
2657 
2658  uint ServiceID(int i) const
2659  { return *m_entries[i] << 8 | *(m_entries[i]+1); }
2660 
2661  uint ChanID(int i) const
2662  { return (*(m_entries[i] + 2) << 8 | *(m_entries[i] + 3)) & 0x7FFF; }
2663 
2664  uint LCNCount(int i) const
2665  { return *(m_entries[i] + 4) / 4; }
2666 
2667  uint LogicalChannelNumber(int i, int j) const
2668  { return (*(m_entries[i] + 5 + j*4) << 8 | *(m_entries[i] + 5 + j*4 + 1)) & 0xFFF; }
2669 
2670  uint RegionID(int i, int j) const
2671  { return *(m_entries[i] + 5 + j*4 + 2) << 8 | *(m_entries[i] + 5 + j*4 + 3); }
2672 
2673  QString toString(void) const override; // MPEGDescriptor
2674 
2675  private:
2677 };
2678 
2689 {
2690  public:
2691  explicit FreesatRegionDescriptor(const unsigned char *data, int len = 300) :
2692  MPEGDescriptor(data, len, PrivateDescriptorID::freesat_region_table)
2693  {
2695 
2696  const unsigned char *payload = &data[2];
2697 
2698  uint offset = 0;
2699  while ((offset + 6 < DescriptorLength()) &&
2700  (offset + 6 + payload[offset+5] <= DescriptorLength()))
2701  {
2702  m_entries.push_back(&payload[offset]);
2703  offset += 6 + payload[offset+5];
2704  }
2705  }
2706  // Name bits loc expected value
2707  // descriptor_tag 8 0.0 0xd4
2708  // descriptor_length 8 1.0
2709  // for (i=0;i<N;i++) {
2710  // region_id 16 0.0+p
2711  // language_code 24 2.0+p eng
2712  // text_length 8 5.0+p
2713  // for (j=0;j<N;j++) {
2714  // text_char 8
2715  // }
2716  // }
2717 
2718  uint RegionCount(void) const
2719  { return m_entries.size(); }
2720 
2721  int RegionID(uint i) const
2722  { return *m_entries[i] << 8 | *(m_entries[i]+1); }
2723 
2724  QString Language(uint i) const
2725  { return QString::fromLatin1((char *) m_entries[i] + 2, 3); }
2726 
2727  QString RegionName(uint i) const
2728  { return QString::fromLatin1((char *) m_entries[i] + 6, *(m_entries[i] + 5)); }
2729 
2730  QString toString(void) const override; // MPEGDescriptor
2731 
2732  private:
2734 };
2735 
2744 {
2745  public:
2746  explicit FreesatCallsignDescriptor(const unsigned char *data, int len = 300) :
2747  MPEGDescriptor(data, len, PrivateDescriptorID::freesat_callsign)
2748  {
2750  }
2751 
2752  // Name bits loc expected value
2753  // descriptor_tag 8 0.0 0xd8
2754  // descriptor_length 8 1.0
2755 
2756  // ISO_639_language_code 24 2.0
2757  // callsign_length 8 5.0
2758  // for (j=0;j<N;j++) {
2759  // callsign_char 8
2760 
2761  QString Language(void) const
2762  { return QString::fromLatin1((char *) m_data +2, 3); }
2763 
2764  QString Callsign(void) const
2765  { return dvb_decode_short_name(&m_data[6], m_data[5]); }
2766 
2767  QString toString(void) const override; // MPEGDescriptor
2768 };
2769 
2782 {
2783  public:
2784  explicit SkyLCNDescriptor(const unsigned char *data, int len = 300) :
2785  MPEGDescriptor(data, len, PrivateDescriptorID::sky_lcn_table)
2786  {
2788  }
2789  // Name bits loc expected value
2790  // descriptor_tag 8 0.0 0xd3
2791  // descriptor_length 8 1.0
2792  // region_id 16 2.0
2793  // for (i=0;i<N;i++) {
2794  // service_id 16 0.0+p
2795  // service_type 8 2.0+p
2796  // unknown 16 3.0+p
2797  // logical_channel_number 16 5.0+p2
2798  // unknown 16 7.0+p2
2799  // }
2800 
2801  uint RegionID(void) const
2802  { return (*(m_data + 3) != 0xFF) ? *(m_data + 3) : 0xFFFF;}
2803 
2804  uint RegionRaw(void) const
2805  { return *(m_data + 2) << 8 | *(m_data + 3);}
2806 
2807  uint ServiceCount(void) const
2808  { return (DescriptorLength() - 2) / 9; }
2809 
2810  uint ServiceID(int i) const
2811  { return *(m_data + 4 + i*9) << 8 | *(m_data + 5 + i*9); }
2812 
2813  uint ServiceType(int i) const
2814  { return *(m_data + 6 + i*9); }
2815 
2816  uint ChannelID(int i) const
2817  { return *(m_data + 7 + i*9) << 8 | *(m_data + 8 + i*9); }
2818 
2820  { return *(m_data + 9 + i*9) << 8 | *(m_data + 10 + i*9); }
2821 
2822  uint Flags(int i) const
2823  { return *(m_data + 11 + i*9) << 8 | *(m_data + 12 + i*9); }
2824 
2825  QString toString(void) const override; // MPEGDescriptor
2826 };
2827 
2828 // Descriptor layout similar to SkyLCNDescriptor
2830 {
2831  public:
2832  explicit OpenTVChannelListDescriptor(const unsigned char *data, int len = 300) :
2833  MPEGDescriptor(data, len, PrivateDescriptorID::opentv_channel_list) { }
2834  // Name bits loc expected value
2835  // descriptor_tag 8 0.0 0xB1
2836  // descriptor_length 8 1.0
2837 
2838  uint ChannelCount(void) const { return (DescriptorLength() - 2)/9; }
2839 
2840  uint RegionID() const
2841  { return (m_data[2] << 8) | m_data[3]; }
2842 
2844  { return (m_data[4 + 0 + (i*9)] << 8) | m_data[4 + 1 + (i*9)]; }
2845 
2847  { return m_data[4 + 2 + (i*9)]; }
2848 
2850  { return ((m_data[4 + 3 + (i*9)] << 8) | m_data[4 + 4 + (i*9)]); }
2851 
2853  { return ((m_data[4 + 5 + (i*9)] << 8) | m_data[4 + 6 + (i*9)]); }
2854 
2855  uint Flags(uint i) const
2856  { return ((m_data[4 + 7 + (i*9)] << 8) | m_data[4 + 8 + (i*9)]) & 0xf; }
2857 
2858  QString toString(void) const override; // MPEGDescriptor
2859 };
2860 
2861 // ETSI TS 102 323 (TV Anytime)
2863 {
2864  public:
2865  explicit DVBContentIdentifierDescriptor(const unsigned char *data, int len = 300) :
2866  MPEGDescriptor(data, len, DescriptorID::dvb_content_identifier)
2867  {
2868  size_t count = 0;
2869 
2870  m_crid.fill(nullptr);
2871 
2872  if (IsValid())
2873  {
2874  uint8_t position = 2;
2875  while (m_data[1] >= position)
2876  {
2877  size_t length = m_data[position+1];
2878  m_crid[count] = &m_data[position];
2879  count++;
2880  position+=length+2;
2881  }
2882  }
2883  m_cridCount = count;
2884  }
2885  // Name bits loc expected value
2886  // descriptor_tag 8 0.0 0x76
2887  // descriptor_length 8 1.0
2888 
2889  uint ContentType(size_t n=0) const { return m_crid[n][0] >> 2; }
2890 
2891  uint ContentEncoding(size_t n=0) const { return m_crid[n][0] & 0x03; }
2892 
2893  // A content identifier is a URI. It may contain UTF-8 encoded using %XX.
2894  QString ContentId(size_t n=0) const
2895  {
2896  // Access the array in two steps so cppcheck doesn't get confused.
2897  const uint8_t* cridN = m_crid[n];
2898  int length = cridN[1];
2899  int positionOfHash = length-1;
2900  while (positionOfHash >= 0) {
2901  if (cridN[2 + positionOfHash] == '#') {
2902  length = positionOfHash; /* remove the hash and the following IMI */
2903  break;
2904  }
2905  positionOfHash--;
2906  }
2907  return QString::fromLatin1((const char *)&m_crid[n][2], length);
2908  }
2909 
2910  size_t CRIDCount() const
2911  {
2912  return m_cridCount;
2913  }
2914 
2915  private:
2916  size_t m_cridCount;
2917  std::array<const uint8_t*,8> m_crid {};
2918 };
2919 
2920 // ETSI TS 102 323 (TV Anytime)
2922 {
2923  public:
2924  explicit DefaultAuthorityDescriptor(const unsigned char *data, int len = 300) :
2925  MPEGDescriptor(data, len, DescriptorID::default_authority) { }
2926  // Name bits loc expected value
2927  // descriptor_tag 8 0.0 0x73
2928  // descriptor_length 8 1.0
2929 
2930  QString DefaultAuthority(void) const
2931  {
2932  return QString::fromLatin1((const char *)m_data+2, m_data[1]);
2933  }
2934 
2935  QString toString(void) const override // MPEGDescriptor
2936  {
2937  return QString("DefaultAuthorityDescriptor: Authority(%1)")
2938  .arg(DefaultAuthority());
2939  }
2940 };
2941 
2942 /*
2943  * private UPC Cablecom (Austria) episode descriptor for Horizon middleware
2944  */
2946 {
2947  public:
2948  explicit PrivateUPCCablecomEpisodeTitleDescriptor(const unsigned char *data, int len = 300) :
2949  MPEGDescriptor(data, len, PrivateDescriptorID::upc_event_episode_title) { }
2950  explicit PrivateUPCCablecomEpisodeTitleDescriptor(const std::vector<uint8_t> &data) :
2951  MPEGDescriptor(data, PrivateDescriptorID::upc_event_episode_title) { }
2952  // Name bits loc expected value
2953  // descriptor_tag 8 0.0 0xa7
2954  // descriptor_length 8 1.0
2955 
2956  // ISO_639_language_code 24 2.0
2957  int LanguageKey(void) const
2958  {
2959  return iso639_str3_to_key(&m_data[2]);
2960  }
2961  QString LanguageString(void) const
2962  {
2963  return iso639_key_to_str3(LanguageKey());
2964  }
2965  int CanonicalLanguageKey(void) const
2966  {
2968  }
2969  QString CanonicalLanguageString(void) const
2970  {
2972  }
2973 
2974  uint TextLength(void) const
2975  {
2976  return m_data[1] - 3;
2977  }
2978 
2979  QString Text(void) const
2980  {
2981  return dvb_decode_text(&m_data[5], TextLength());
2982  }
2983 };
2984 
2985 #endif // DVB_DESCRIPTORS_H
AdaptationFieldDataDescriptor::AdaptationFieldDataID
uint AdaptationFieldDataID(void) const
Definition: dvbdescriptors.h:238
DescriptorID
Definition: mpegdescriptors.h:20
ServiceRelocatedDescriptor
Definition: dvbdescriptors.h:1439
ShortEventDescriptor::EventName
QString EventName(const enc_override &encoding_override) const
Definition: dvbdescriptors.h:2195
TeletextDescriptor::TeletextMagazineNum
uint TeletextMagazineNum(uint i) const
Definition: dvbdescriptors.h:2362
ServiceDescriptorMapping
Definition: dvbdescriptors.h:1937
T2DeliverySystemDescriptor::TransmissionMode
uint TransmissionMode(void) const
Definition: dvbdescriptors.h:1203
ServiceDescriptorMapping::kServiceTypeCommonInterface
@ kServiceTypeCommonInterface
Definition: dvbdescriptors.h:1955
CableDeliverySystemDescriptor::kModulationQAM256
@ kModulationQAM256
Definition: dvbdescriptors.h:780
TerrestrialDeliverySystemDescriptor::kBandwidth8Mhz
@ kBandwidth8Mhz
Definition: dvbdescriptors.h:948
SatelliteDeliverySystemDescriptor::OrbitalPositionString
QString OrbitalPositionString(void) const
Definition: dvbdescriptors.h:841
CableDeliverySystemDescriptor::kOuterFEC_RS204_RS188
@ kOuterFEC_RS204_RS188
Definition: dvbdescriptors.h:765
OpenTVChannelListDescriptor::ChannelID
uint ChannelID(uint i) const
Definition: dvbdescriptors.h:2849
DSNGDescriptor::DSNGDescriptor
DSNGDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1539
ParentalRatingDescriptor
Definition: dvbdescriptors.h:1827
TerrestrialDeliverySystemDescriptor::CodeRateLP
uint CodeRateLP(void) const
Definition: dvbdescriptors.h:1026
T2DeliverySystemDescriptor::TransmissionModeString
QString TransmissionModeString(void) const
Definition: dvbdescriptors.h:1204
PrivateDescriptorID::freesat_region_table
@ freesat_region_table
Definition: mpegdescriptors.h:233
LinkageDescriptor::kIP_MACNotificationService
@ kIP_MACNotificationService
Definition: dvbdescriptors.h:141
bool
bool
Definition: pxsup2dast.c:30
iso639_key_to_canonical_key
int iso639_key_to_canonical_key(int iso639_2)
Definition: iso639.cpp:118
TeletextDescriptor::TeletextDescriptor
TeletextDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2339
TerrestrialDeliverySystemDescriptor::kConstellationQAM64
@ kConstellationQAM64
Definition: dvbdescriptors.h:972
LinkageDescriptor::kOriginNIT
@ kOriginNIT
Definition: dvbdescriptors.h:163
TargetRegionNameDescriptor::CountryCodeString
QString CountryCodeString(void) const
Definition: dvbdescriptors.h:1419
TeletextDescriptor::CanonicalLanguageString
QString CanonicalLanguageString(uint i) const
Definition: dvbdescriptors.h:2356
BouquetNameDescriptor::BouquetNameDescriptor
BouquetNameDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:295
T2DeliverySystemDescriptor::kGuardInterval_19_128
@ kGuardInterval_19_128
Definition: dvbdescriptors.h:1182
CableDeliverySystemDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:617
T2DeliverySystemDescriptor::kBandwidth10Mhz
@ kBandwidth10Mhz
Definition: dvbdescriptors.h:1157
MosaicDescriptor::MosaicDescriptor
MosaicDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1692
TerrestrialDeliverySystemDescriptor::HierarchyString
QString HierarchyString(void) const
Definition: dvbdescriptors.h:997
ComponentDescriptor::AudioProperties
uint AudioProperties(void) const
Definition: dvbdescriptors.h:493
ContentDescriptor::GetMythCategory
ProgramInfo::CategoryType GetMythCategory(uint i) const
Definition: dvbdescriptors.cpp:274
TerrestrialDeliverySystemDescriptor::GuardInterval
uint GuardInterval(void) const
Definition: dvbdescriptors.h:1042
T2DeliverySystemDescriptor::GuardIntervalString
QString GuardIntervalString(void) const
Definition: dvbdescriptors.h:1186
LocalTimeOffsetDescriptor::LocalTimeOffsetPolarity
bool LocalTimeOffsetPolarity(uint i) const
-1 if true, +1 if false (behind utc, ahead of utc, resp).
Definition: dvbdescriptors.h:1672
T2DeliverySystemDescriptor::CellIDExtension
uint CellIDExtension(uint i, uint j) const
Definition: dvbdescriptors.h:1228
TransportStreamDescriptor::Data
QString Data(void) const
Definition: dvbdescriptors.h:2409
MPEGDescriptor::DescriptorTag
uint DescriptorTag(void) const
Definition: mpegdescriptors.h:345
ServiceDescriptorMapping::kServiceTypeH264AVCHDNVODTimeShifted
@ kServiceTypeH264AVCHDNVODTimeShifted
Definition: dvbdescriptors.h:1965
TerrestrialDeliverySystemDescriptor::GuardIntervalString
QString GuardIntervalString(void) const
Definition: dvbdescriptors.h:1043
MPEGDescriptor::DescriptorLength
uint DescriptorLength(void) const
Definition: mpegdescriptors.h:346
ServiceDescriptorMapping::kServiceTypeNVODTimeShifted
@ kServiceTypeNVODTimeShifted
Definition: dvbdescriptors.h:1947
T2DeliverySystemDescriptor::OtherFrequencyFlag
uint OtherFrequencyFlag(void) const
Definition: dvbdescriptors.h:1210
ServiceDescriptorMapping::kServiceTypeH264AVCSDNVODReference
@ kServiceTypeH264AVCSDNVODReference
Definition: dvbdescriptors.h:1963
SkyLCNDescriptor::Flags
uint Flags(int i) const
Definition: dvbdescriptors.h:2822
ShortSmoothingBufferDescriptor::ShortSmoothingBufferDescriptor
ShortSmoothingBufferDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2216
ContentDescriptor::Nibble1
uint Nibble1(uint i) const
Definition: dvbdescriptors.h:618
ShortEventDescriptor::ShortEventDescriptor
ShortEventDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2166
CountryAvailabilityDescriptor
Definition: dvbdescriptors.h:645
SatelliteDeliverySystemDescriptor::OrbitalPositionFloat
double OrbitalPositionFloat() const
Definition: dvbdescriptors.h:847
ContentDescriptor::GetDescription
QString GetDescription(uint i) const
Definition: dvbdescriptors.cpp:322
TerrestrialDeliverySystemDescriptor::kCodeRate_3_4
@ kCodeRate_3_4
Definition: dvbdescriptors.h:1013
ParentalRatingDescriptor::Count
uint Count(void) const
Definition: dvbdescriptors.h:1837
TerrestrialDeliverySystemDescriptor::kGuardInterval_1_8
@ kGuardInterval_1_8
Definition: dvbdescriptors.h:1039
ComponentDescriptor::VideoProperties
uint VideoProperties(void) const
Definition: dvbdescriptors.h:430
SatelliteDeliverySystemDescriptor::IsLinearPolarization
bool IsLinearPolarization(void) const
Definition: dvbdescriptors.h:860
TerrestrialDeliverySystemDescriptor::CodeRateHP
uint CodeRateHP(void) const
Definition: dvbdescriptors.h:1017
ServiceDescriptorMapping::kServiceTypeHEVCDigitalTelevision
@ kServiceTypeHEVCDigitalTelevision
Definition: dvbdescriptors.h:1970
MultilingualNetworkNameDescriptor
Definition: dvbdescriptors.h:1760
CableDeliverySystemDescriptor::Modulation
uint Modulation(void) const
Definition: dvbdescriptors.h:782
TerrestrialDeliverySystemDescriptor::OtherFrequencyInUse
bool OtherFrequencyInUse(void) const
Definition: dvbdescriptors.h:1062
ServiceDescriptorMapping::kServiceTypeFMRadio
@ kServiceTypeFMRadio
Definition: dvbdescriptors.h:1949
CableDeliverySystemDescriptor::kInnerFEC_1_2_ConvolutionCodeRate
@ kInnerFEC_1_2_ConvolutionCodeRate
Definition: dvbdescriptors.h:804
ServiceDescriptorMapping::kServiceTypeAdvancedCodecDigitalRadioSound
@ kServiceTypeAdvancedCodecDigitalRadioSound
Definition: dvbdescriptors.h:1952
ImageIconDescriptor::IconID
uint IconID(void) const
Definition: dvbdescriptors.h:1099
mpegdescriptors.h
CableDeliverySystemDescriptor::kModulationQAM64
@ kModulationQAM64
Definition: dvbdescriptors.h:778
ComponentDescriptor::LanguageKey
int LanguageKey(void) const
Definition: dvbdescriptors.h:398
ServiceMoveDescriptor::ServiceMoveDescriptor
ServiceMoveDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2151
ServiceDescriptor::ServiceProviderName
QString ServiceProviderName(void) const
Definition: dvbdescriptors.h:2056
FrequencyListDescriptor
Definition: dvbdescriptors.h:1596
CableDeliverySystemDescriptor::kInnerFEC_7_8_ConvolutionCodeRate
@ kInnerFEC_7_8_ConvolutionCodeRate
Definition: dvbdescriptors.h:808
FreesatLCNDescriptor
Freesat Logical Channel Number descriptor.
Definition: dvbdescriptors.h:2623
FreesatLCNDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:941
ImageIconDescriptor::DescriptorNumber
uint DescriptorNumber(void) const
Definition: dvbdescriptors.h:1087
AC3Descriptor::ASVC
uint ASVC(void) const
Definition: dvbdescriptors.h:2527
TerrestrialDeliverySystemDescriptor::Bandwidth
uint Bandwidth(void) const
Definition: dvbdescriptors.h:953
LocalTimeOffsetDescriptor::NextTimeOffset
uint NextTimeOffset(uint i) const
Definition: dvbdescriptors.h:1682
LinkageDescriptor::kMobileHandOver
@ kMobileHandOver
Definition: dvbdescriptors.h:138
CountryAvailabilityDescriptor::IsAvailable
bool IsAvailable(void) const
Definition: dvbdescriptors.h:657
CableDeliverySystemDescriptor::kInnerFEC_5_6_ConvolutionCodeRate
@ kInnerFEC_5_6_ConvolutionCodeRate
Definition: dvbdescriptors.h:807
ShortEventDescriptor::Text
QString Text(const enc_override &encoding_override) const
Definition: dvbdescriptors.h:2201
LinkageDescriptor::MobileOriginTypeString
QString MobileOriginTypeString(void) const
TerrestrialDeliverySystemDescriptor::kHierarchyInfoAlpha1NativeInterleaver
@ kHierarchyInfoAlpha1NativeInterleaver
Definition: dvbdescriptors.h:986
CableDeliverySystemDescriptor::kModulationQAM128
@ kModulationQAM128
Definition: dvbdescriptors.h:779
ExtendedEventDescriptor::CanonicalLanguageKey
int CanonicalLanguageKey(void) const
Definition: dvbdescriptors.h:1566
CableDeliverySystemDescriptor::FECInner
uint FECInner(void) const
Definition: dvbdescriptors.h:812
OpenTVChannelListDescriptor::Flags
uint Flags(uint i) const
Definition: dvbdescriptors.h:2855
CellListDescriptor
Definition: dvbdescriptors.h:354
ComponentDescriptor::MP2Properties
uint MP2Properties(void) const
Definition: dvbdescriptors.h:508
TimeShiftedServiceDescriptor
Definition: dvbdescriptors.h:2386
SupplementaryAudioDescriptor::ReservedFutureUse
uint ReservedFutureUse(void) const
Definition: dvbdescriptors.h:1292
LinkageDescriptor::kCAReplacementService
@ kCAReplacementService
Definition: dvbdescriptors.h:133
LocalTimeOffsetDescriptor::LocalTimeOffsetWithPolarity
int LocalTimeOffsetWithPolarity(uint i) const
Definition: dvbdescriptors.h:1677
x2
static int x2
Definition: mythsocket.cpp:56
ExtendedEventDescriptor::LanguageString
QString LanguageString(void) const
Definition: dvbdescriptors.h:1564
LinkageDescriptor::HasMobileNetworkID
bool HasMobileNetworkID(void) const
Definition: dvbdescriptors.h:171
ShortEventDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:2208
T2DeliverySystemDescriptor::kTransmissionMode8k
@ kTransmissionMode8k
Definition: dvbdescriptors.h:1197
MessageDescriptor::MessageDescriptor
MessageDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1331
ServiceDescriptorMapping::kServiceTypeDigitalRadioSound
@ kServiceTypeDigitalRadioSound
Definition: dvbdescriptors.h:1944
TerrestrialDeliverySystemDescriptor::kCodeRate_5_6
@ kCodeRate_5_6
Definition: dvbdescriptors.h:1014
TerrestrialDeliverySystemDescriptor::kBandwidth6Mhz
@ kBandwidth6Mhz
Definition: dvbdescriptors.h:950
SatelliteDeliverySystemDescriptor::kModulation8PSK
@ kModulation8PSK
Definition: dvbdescriptors.h:889
DVBContentIdentifierDescriptor::CRIDCount
size_t CRIDCount() const
Definition: dvbdescriptors.h:2910
mythtvexp.h
SatelliteDeliverySystemDescriptor::kInnerFEC_None
@ kInnerFEC_None
Definition: dvbdescriptors.h:918
build_compdb.content
content
Definition: build_compdb.py:38
CellFrequencyLinkDescriptor
Definition: dvbdescriptors.h:332
ServiceDescriptorMapping::kServiceTypeMPEG2HDDigitalTelevision
@ kServiceTypeMPEG2HDDigitalTelevision
Definition: dvbdescriptors.h:1959
ApplicationSignallingDescriptor::ApplicationType
uint ApplicationType(uint i) const
Definition: dvbdescriptors.h:221
DescriptorID::s2x_satellite_delivery_system
@ s2x_satellite_delivery_system
Definition: mpegdescriptors.h:157
ExtendedEventDescriptor::LanguageKey
int LanguageKey(void) const
Definition: dvbdescriptors.h:1562
byteBCDH2int
#define byteBCDH2int(i)
Definition: dvbdescriptors.h:51
ServiceListDescriptor::ServiceListDescriptor
ServiceListDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2113
DescriptorID::target_region
@ target_region
Definition: mpegdescriptors.h:149
CellFrequencyLinkDescriptor::CellFrequencyLinkDescriptor
CellFrequencyLinkDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:335
ComponentDescriptor::StreamContent
uint StreamContent(void) const
Definition: dvbdescriptors.h:392
ServiceMoveDescriptor
Definition: dvbdescriptors.h:2148
DataBroadcastDescriptor::LanguageKey
int LanguageKey(void) const
Definition: dvbdescriptors.h:703
dvb_decode_text
MTV_PUBLIC QString dvb_decode_text(const unsigned char *src, uint length, const enc_override &encoding_override)
Definition: dvbdescriptors.cpp:122
MessageDescriptor::LanguageString
QString LanguageString(void) const
Definition: dvbdescriptors.h:1351
NVODReferenceDescriptor::Count
uint Count(void) const
Definition: dvbdescriptors.h:1808
MessageDescriptor::MessageID
uint MessageID(void) const
Definition: dvbdescriptors.h:1346
T2DeliverySystemDescriptor::Bandwidth
uint Bandwidth(void) const
Definition: dvbdescriptors.h:1160
LinkageDescriptor::kServiceReplacementService
@ kServiceReplacementService
Definition: dvbdescriptors.h:135
ComponentDescriptor::IsAudio
bool IsAudio(void) const
Definition: dvbdescriptors.h:415
DescriptorID::network_change_notify
@ network_change_notify
Definition: mpegdescriptors.h:147
FrequencyListDescriptor::CodingType
uint CodingType(void) const
Definition: dvbdescriptors.h:1614
ServiceDescriptor::IsDTV
bool IsDTV(void) const
Definition: dvbdescriptors.h:2076
MessageDescriptor::Message
QString Message(void) const
Definition: dvbdescriptors.h:1355
ServiceDescriptorMapping::kServiceTypeEchoStarTV3
@ kServiceTypeEchoStarTV3
Definition: dvbdescriptors.h:1978
SubtitlingDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:579
CableDeliverySystemDescriptor
Definition: dvbdescriptors.h:739
ServiceDescriptorMapping::kServiceTypeMosaic
@ kServiceTypeMosaic
Definition: dvbdescriptors.h:1948
FreesatCallsignDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:976
SHDeliverySystemDescriptor
Definition: dvbdescriptors.h:1243
T2DeliverySystemDescriptor::kGuardInterval_1_128
@ kGuardInterval_1_128
Definition: dvbdescriptors.h:1181
DVBSimulcastChannelDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:909
T2DeliverySystemDescriptor::NumCells
uint NumCells(void) const
Definition: dvbdescriptors.h:1214
LinkageDescriptor::m_offset
uint m_offset
Definition: dvbdescriptors.h:202
FrequencyListDescriptor::kCodingTypeSatellite
@ kCodingTypeSatellite
Definition: dvbdescriptors.h:1610
CableDeliverySystemDescriptor::FECOuterString
QString FECOuterString(void) const
Definition: dvbdescriptors.h:768
x3
static int x3
Definition: mythsocket.cpp:57
NVODReferenceDescriptor
Definition: dvbdescriptors.h:1800
MultilingualBouquetNameDescriptor
Definition: dvbdescriptors.h:1741
ScramblingDescriptor
Definition: dvbdescriptors.h:1918
PartialTransportStreamDescriptor::PartialTransportStreamDescriptor
PartialTransportStreamDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2468
TargetRegionDescriptor::CountryCode
uint CountryCode(void) const
Definition: dvbdescriptors.h:1380
TerrestrialDeliverySystemDescriptor::Hierarchy
uint Hierarchy(void) const
Definition: dvbdescriptors.h:994
CAIdentifierDescriptor
Definition: dvbdescriptors.h:314
SatelliteDeliverySystemDescriptor::Modulation
uint Modulation(void) const
Definition: dvbdescriptors.h:892
LinkageDescriptor::kHandOverIdentical
@ kHandOverIdentical
Definition: dvbdescriptors.h:153
FreesatCallsignDescriptor::FreesatCallsignDescriptor
FreesatCallsignDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2746
DescriptorID::sh_delivery_system
@ sh_delivery_system
Definition: mpegdescriptors.h:145
SHDeliverySystemDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:750
DVBLogicalChannelDescriptor
DVB Logical Channel Descriptor.
Definition: dvbdescriptors.h:2565
PartialTransportStreamDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:1073
ComponentDescriptor::AC3Properties
uint AC3Properties(void) const
Definition: dvbdescriptors.h:527
VBIDataDescriptor
Definition: dvbdescriptors.h:2416
FrequencyListDescriptor::FrequencyListDescriptor
FrequencyListDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1599
TerrestrialDeliverySystemDescriptor::NativeInterleaver
bool NativeInterleaver(void) const
Definition: dvbdescriptors.h:1002
SubtitlingDescriptor::LanguageKey
int LanguageKey(uint i) const
Definition: dvbdescriptors.h:2280
T2DeliverySystemDescriptor::kGuardInterval_1_8
@ kGuardInterval_1_8
Definition: dvbdescriptors.h:1179
OpenTVChannelListDescriptor::RegionID
uint RegionID() const
Definition: dvbdescriptors.h:2840
ServiceDescriptorMapping::IsUHDTV
bool IsUHDTV(void) const
Definition: dvbdescriptors.h:2025
ShortEventDescriptor::CanonicalLanguageKey
int CanonicalLanguageKey(void) const
Definition: dvbdescriptors.h:2177
SatelliteDeliverySystemDescriptor::FrequencyRaw
uint FrequencyRaw(void) const
frequency 32 2.0
Definition: dvbdescriptors.h:829
CableDeliverySystemDescriptor::FrequencyHz
unsigned long long FrequencyHz(void) const
Definition: dvbdescriptors.h:754
NVODReferenceDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:1059
T2DeliverySystemDescriptor::SubcellInfoLoopLength
uint SubcellInfoLoopLength(uint i) const
Definition: dvbdescriptors.h:1227
ExtendedEventDescriptor::DescriptorNumber
uint DescriptorNumber(void) const
Definition: dvbdescriptors.h:1558
TeletextDescriptor::LanguageKey
int LanguageKey(uint i) const
Definition: dvbdescriptors.h:2350
PrivateUPCCablecomEpisodeTitleDescriptor::Text
QString Text(void) const
Definition: dvbdescriptors.h:2979
ServiceDescriptorMapping::kServiceTypeH264AVCFrameCompatiblePlanoStereoscopicHDNVODTimeShifted
@ kServiceTypeH264AVCFrameCompatiblePlanoStereoscopicHDNVODTimeShifted
Definition: dvbdescriptors.h:1968
enc_override
std::vector< uint8_t > enc_override
Definition: dvbdescriptors.h:40
SatelliteDeliverySystemDescriptor::kInnerFEC_2_3_ConvolutionCodeRate
@ kInnerFEC_2_3_ConvolutionCodeRate
Definition: dvbdescriptors.h:913
DefaultAuthorityDescriptor::DefaultAuthorityDescriptor
DefaultAuthorityDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2924
LocalTimeOffsetDescriptor::CountryRegionId
uint CountryRegionId(uint i) const
Definition: dvbdescriptors.h:1668
CellListDescriptor::CellListDescriptor
CellListDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:357
ShortEventDescriptor::Text
QString Text(void) const
Definition: dvbdescriptors.h:2191
DescriptorID::target_region_name
@ target_region_name
Definition: mpegdescriptors.h:150
CableDeliverySystemDescriptor::FECInnerString
QString FECInnerString(void) const
Definition: dvbdescriptors.h:813
DataBroadcastDescriptor::LanguageString
QString LanguageString(void) const
Definition: dvbdescriptors.h:705
LinkageDescriptor::kOriginSDT
@ kOriginSDT
Definition: dvbdescriptors.h:164
NetworkNameDescriptor::NetworkNameDescriptor
NetworkNameDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:71
NetworkNameDescriptor::Name
QString Name(void) const
Definition: dvbdescriptors.h:77
CAIdentifierDescriptor::CASystemCount
uint CASystemCount(void) const
Definition: dvbdescriptors.h:323
CountryAvailabilityDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:674
T2DeliverySystemDescriptor::TFSFlag
uint TFSFlag(void) const
Definition: dvbdescriptors.h:1211
DataBroadcastDescriptor::DataBroadcastId
uint DataBroadcastId(void) const
Definition: dvbdescriptors.h:692
ParentalRatingDescriptor::ParentalRatingDescriptor
ParentalRatingDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1830
T2DeliverySystemDescriptor::CentreFrequency
uint CentreFrequency(int i, int j) const
Definition: dvbdescriptors.h:1223
dvb_decode_short_name
QString dvb_decode_short_name(const unsigned char *src, uint raw_length)
Definition: dvbdescriptors.cpp:219
PrivateUPCCablecomEpisodeTitleDescriptor::LanguageKey
int LanguageKey(void) const
Definition: dvbdescriptors.h:2957
DVBContentIdentifierDescriptor::ContentType
uint ContentType(size_t n=0) const
Definition: dvbdescriptors.h:2889
BouquetNameDescriptor
Definition: dvbdescriptors.h:292
CableDeliverySystemDescriptor::kModulationQAM32
@ kModulationQAM32
Definition: dvbdescriptors.h:777
DVBSimulcastChannelDescriptor::ChannelNumber
uint ChannelNumber(uint i) const
Definition: dvbdescriptors.h:2607
FrequencyListDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:546
FreesatLCNDescriptor::LCNCount
uint LCNCount(int i) const
Definition: dvbdescriptors.h:2664
T2DeliverySystemDescriptor::kBandwidth8Mhz
@ kBandwidth8Mhz
Definition: dvbdescriptors.h:1153
ContentDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:343
TerrestrialDeliverySystemDescriptor
Definition: dvbdescriptors.h:927
MultilingualBouquetNameDescriptor::MultilingualBouquetNameDescriptor
MultilingualBouquetNameDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1744
LocalTimeOffsetDescriptor
Definition: dvbdescriptors.h:1643
LinkageDescriptor::PrivateData
const unsigned char * PrivateData(void) const
Definition: dvbdescriptors.h:196
TerrestrialDeliverySystemDescriptor::Alpha
uint Alpha(void) const
Definition: dvbdescriptors.h:1003
ServiceDescriptorMapping::kServiceTypeH264AVCFrameCompatiblePlanoStereoscopicHDNVODReference
@ kServiceTypeH264AVCFrameCompatiblePlanoStereoscopicHDNVODReference
Definition: dvbdescriptors.h:1969
DescriptorID::t2_delivery_system
@ t2_delivery_system
Definition: mpegdescriptors.h:144
ServiceListDescriptor::ServiceType
uint ServiceType(uint i) const
Definition: dvbdescriptors.h:2129
LinkageDescriptor::kTSContainingCompleteNetworkBouquetSI
@ kTSContainingCompleteNetworkBouquetSI
Definition: dvbdescriptors.h:134
T2DeliverySystemDescriptor::kTransmissionMode16k
@ kTransmissionMode16k
Definition: dvbdescriptors.h:1200
ShortEventDescriptor
Definition: dvbdescriptors.h:2163
DataBroadcastDescriptor
Definition: dvbdescriptors.h:682
DataBroadcastDescriptor::DataBroadcastDescriptor
DataBroadcastDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:685
T2DeliverySystemDescriptor::BandwidthString
QString BandwidthString(void) const
Definition: dvbdescriptors.h:1167
CableDeliverySystemDescriptor::kInnerFEC_3_4_ConvolutionCodeRate
@ kInnerFEC_3_4_ConvolutionCodeRate
Definition: dvbdescriptors.h:806
AncillaryDataDescriptor::AncillaryDataDescriptor
AncillaryDataDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:251
AnnouncementSupportDescriptor::AnnouncementSupportDescriptor
AnnouncementSupportDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:270
ServiceDescriptorMapping::m_serviceType
uint m_serviceType
Definition: dvbdescriptors.h:2038
AnnouncementSupportDescriptor
Definition: dvbdescriptors.h:267
ServiceDescriptorMapping::kServiceTypeEchoStarTV1
@ kServiceTypeEchoStarTV1
Definition: dvbdescriptors.h:1976
T2DeliverySystemDescriptor::CentreFrequency
uint CentreFrequency(uint i) const
Definition: dvbdescriptors.h:1218
OpenTVChannelListDescriptor
Definition: dvbdescriptors.h:2829
DVBContentIdentifierDescriptor::ContentEncoding
uint ContentEncoding(size_t n=0) const
Definition: dvbdescriptors.h:2891
ServiceDescriptorMapping::kServiceTypeRCS_Map
@ kServiceTypeRCS_Map
Definition: dvbdescriptors.h:1956
PDCDescriptor::PDCDescriptor
PDCDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1881
ApplicationSignallingDescriptor::ApplicationSignallingDescriptor
ApplicationSignallingDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:209
MPEGDescriptor::IsValid
bool IsValid(void) const
Definition: mpegdescriptors.h:342
ServiceDescriptor::ServiceDescriptor
ServiceDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2045
LinkageDescriptor::kRCSMap
@ kRCSMap
Definition: dvbdescriptors.h:137
OpenTVChannelListDescriptor::ChannelCount
uint ChannelCount(void) const
Definition: dvbdescriptors.h:2838
AdaptationFieldDataDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:239
SubtitlingDescriptor::AncillaryPageID
uint AncillaryPageID(uint i) const
Definition: dvbdescriptors.h:2296
MessageDescriptor::LanguageKey
int LanguageKey(void) const
Definition: dvbdescriptors.h:1349
FrequencyListDescriptor::kCodingTypeTerrestrial
@ kCodingTypeTerrestrial
Definition: dvbdescriptors.h:1612
FreesatRegionDescriptor::RegionCount
uint RegionCount(void) const
Definition: dvbdescriptors.h:2718
LinkageDescriptor::ServiceID
uint ServiceID(void) const
Definition: dvbdescriptors.h:127
ServiceDescriptorMapping::ServiceType
uint ServiceType(void) const
Definition: dvbdescriptors.h:1991
T2DeliverySystemDescriptor::kGuardInterval_1_16
@ kGuardInterval_1_16
Definition: dvbdescriptors.h:1178
NVODReferenceDescriptor::ServiceId
uint ServiceId(uint i) const
Definition: dvbdescriptors.h:1819
ComponentDescriptor::HEVCProperties
uint HEVCProperties(void) const
Definition: dvbdescriptors.h:478
FreesatRegionDescriptor::FreesatRegionDescriptor
FreesatRegionDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2691
ParentalRatingDescriptor::CountryCodeString
QString CountryCodeString(uint i) const
Definition: dvbdescriptors.h:1844
ServiceDescriptor::ServiceName
QString ServiceName(void) const
Definition: dvbdescriptors.h:2066
ContentDescriptor::Count
uint Count(void) const
Definition: dvbdescriptors.h:614
PrivateUPCCablecomEpisodeTitleDescriptor
Definition: dvbdescriptors.h:2945
ServiceDescriptorMapping::kServiceTypeNimiqTV1
@ kServiceTypeNimiqTV1
Definition: dvbdescriptors.h:1980
ContentDescriptor::UserNibble
uint UserNibble(uint i) const
Definition: dvbdescriptors.h:628
PrivateUPCCablecomEpisodeTitleDescriptor::TextLength
uint TextLength(void) const
Definition: dvbdescriptors.h:2974
programinfo.h
ShortEventDescriptor::EventNameLength
uint EventNameLength(void) const
Definition: dvbdescriptors.h:2182
TerrestrialDeliverySystemDescriptor::BandwidthString
QString BandwidthString(void) const
Definition: dvbdescriptors.h:955
LinkageDescriptor::PrivateDataLength
uint PrivateDataLength(void) const
Definition: dvbdescriptors.h:198
ContentDescriptor::s_categoryDesc
static QMap< uint, QString > s_categoryDesc
Definition: dvbdescriptors.h:640
PartialTransportStreamDescriptor::SmoothRate
uint SmoothRate(void) const
Definition: dvbdescriptors.h:2480
LinkageDescriptor::TSID
uint TSID(void) const
Definition: dvbdescriptors.h:123
ServiceDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:2085
DataBroadcastIdDescriptor::DataBroadCastId
uint DataBroadCastId(void) const
Definition: dvbdescriptors.h:733
ContentDescriptor::UserNibble2
uint UserNibble2(uint i) const
Definition: dvbdescriptors.h:627
PrivateUPCCablecomEpisodeTitleDescriptor::PrivateUPCCablecomEpisodeTitleDescriptor
PrivateUPCCablecomEpisodeTitleDescriptor(const std::vector< uint8_t > &data)
Definition: dvbdescriptors.h:2950
SubtitlingDescriptor::CanonicalLanguageKey
int CanonicalLanguageKey(uint i) const
Definition: dvbdescriptors.h:2284
SubtitlingDescriptor::CanonicalLanguageString
QString CanonicalLanguageString(uint i) const
Definition: dvbdescriptors.h:2286
PrivateDataSpecifierDescriptor::PrivateDataSpecifierDescriptor
PrivateDataSpecifierDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1902
S2XSatelliteDeliverySystemDescriptor
Definition: dvbdescriptors.h:1511
AC3Descriptor::HasASVC
bool HasASVC(void) const
Definition: dvbdescriptors.h:2507
AncillaryDataDescriptor
Definition: dvbdescriptors.h:248
C2DeliverySystemDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:869
SatelliteDeliverySystemDescriptor::IsWest
bool IsWest(void) const
Definition: dvbdescriptors.h:851
DVBLogicalChannelDescriptor::ChannelCount
uint ChannelCount(void) const
Definition: dvbdescriptors.h:2574
TerrestrialDeliverySystemDescriptor::Constellation
uint Constellation(void) const
Definition: dvbdescriptors.h:975
ShortEventDescriptor::EventShortName
QString EventShortName(void) const
Definition: dvbdescriptors.h:2186
ComponentDescriptor::IsVideo
bool IsVideo(void) const
Definition: dvbdescriptors.h:409
TerrestrialDeliverySystemDescriptor::kConstellationQAM256
@ kConstellationQAM256
Definition: dvbdescriptors.h:973
ServiceDescriptorMapping::IsTeletext
bool IsTeletext(void) const
Definition: dvbdescriptors.h:2031
ServiceDescriptorMapping::kServiceTypeRCS_FLS
@ kServiceTypeRCS_FLS
Definition: dvbdescriptors.h:1957
T2DeliverySystemDescriptor::kBandwidth5Mhz
@ kBandwidth5Mhz
Definition: dvbdescriptors.h:1156
CableDeliverySystemDescriptor::kModulationQAM16
@ kModulationQAM16
Definition: dvbdescriptors.h:776
FreesatLCNDescriptor::m_entries
desc_list_t m_entries
Definition: dvbdescriptors.h:2676
T2DeliverySystemDescriptor::FrequencyLoopLength
uint FrequencyLoopLength(uint i) const
Definition: dvbdescriptors.h:1216
SatelliteDeliverySystemDescriptor::kRollOff_35
@ kRollOff_35
Definition: dvbdescriptors.h:866
TerrestrialDeliverySystemDescriptor::kConstellationQAM16
@ kConstellationQAM16
Definition: dvbdescriptors.h:971
PDCDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:1891
ImageIconDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:670
CountryAvailabilityDescriptor::CountryAvailabilityDescriptor
CountryAvailabilityDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:648
MPEGDescriptor
Definition: mpegdescriptors.h:302
SupplementaryAudioDescriptor::SupplementaryAudioDescriptor
SupplementaryAudioDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1271
ServiceDescriptor::IsTeletext
bool IsTeletext(void) const
Definition: dvbdescriptors.h:2082
AC3Descriptor::HasMainID
bool HasMainID(void) const
Definition: dvbdescriptors.h:2505
SatelliteDeliverySystemDescriptor::RollOffString
QString RollOffString(void) const
Definition: dvbdescriptors.h:872
TerrestrialDeliverySystemDescriptor::kHierarchyInfoAlpha2InDepthInterleaver
@ kHierarchyInfoAlpha2InDepthInterleaver
Definition: dvbdescriptors.h:991
TerrestrialDeliverySystemDescriptor::kHierarchyInfoNonHierarchicalInDepthInterleaver
@ kHierarchyInfoNonHierarchicalInDepthInterleaver
Definition: dvbdescriptors.h:989
ShortEventDescriptor::TextLength
uint TextLength(void) const
Definition: dvbdescriptors.h:2189
CableDeliverySystemDescriptor::FrequencyRaw
uint FrequencyRaw(void) const
Definition: dvbdescriptors.h:749
SubtitlingDescriptor::StreamCount
uint StreamCount(void) const
Definition: dvbdescriptors.h:2276
TeletextDescriptor::StreamCount
uint StreamCount(void) const
Definition: dvbdescriptors.h:2345
AdaptationFieldDataDescriptor::AdaptationFieldDataDescriptor
AdaptationFieldDataDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:232
ComponentDescriptor::CanonicalLanguageKey
int CanonicalLanguageKey(void) const
Definition: dvbdescriptors.h:402
DVBSimulcastChannelDescriptor::DVBSimulcastChannelDescriptor
DVBSimulcastChannelDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2596
CAIdentifierDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:1010
ParentalRatingDescriptor::Rating
int Rating(uint i) const
Definition: dvbdescriptors.h:1853
TargetRegionDescriptor
Definition: dvbdescriptors.h:1362
T2DeliverySystemDescriptor::kGuardInterval_1_32
@ kGuardInterval_1_32
Definition: dvbdescriptors.h:1177
DVBLogicalChannelDescriptor::DVBLogicalChannelDescriptor
DVBLogicalChannelDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2568
ServiceRelocatedDescriptor::OldServiceID
uint OldServiceID(void) const
Definition: dvbdescriptors.h:1461
ServiceDescriptor::ServiceNameLength
uint ServiceNameLength(void) const
Definition: dvbdescriptors.h:2063
byte2BCD2int
#define byte2BCD2int(i, j)
Definition: dvbdescriptors.h:54
ParentalRatingDescriptor::ParentalRatingDescriptor
ParentalRatingDescriptor(const std::vector< uint8_t > &data)
Definition: dvbdescriptors.h:1832
ServiceDescriptorMapping::kServiceTypeNimiqTV4
@ kServiceTypeNimiqTV4
Definition: dvbdescriptors.h:1983
CableDeliverySystemDescriptor::CableDeliverySystemDescriptor
CableDeliverySystemDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:742
x1
static int x1
Definition: mythsocket.cpp:55
MPEGDescriptor::m_data
const unsigned char * m_data
Definition: mpegdescriptors.h:370
SatelliteDeliverySystemDescriptor::ModulationSystem
uint ModulationSystem(void) const
Definition: dvbdescriptors.h:878
DVBLogicalChannelDescriptor::ChannelNumber
uint ChannelNumber(uint i) const
Definition: dvbdescriptors.h:2579
ServiceDescriptorMapping::kServiceTypeNimiqTV3
@ kServiceTypeNimiqTV3
Definition: dvbdescriptors.h:1982
SatelliteDeliverySystemDescriptor::kInnerFEC_1_2_ConvolutionCodeRate
@ kInnerFEC_1_2_ConvolutionCodeRate
Definition: dvbdescriptors.h:912
ServiceDescriptorMapping::kServiceTypeH264AVCMosaic
@ kServiceTypeH264AVCMosaic
Definition: dvbdescriptors.h:1953
desc_list_t
std::vector< const unsigned char * > desc_list_t
Definition: mpegdescriptors.h:18
ScramblingDescriptor::ScramblingMode
uint ScramblingMode(void) const
Definition: dvbdescriptors.h:1928
SatelliteDeliverySystemDescriptor::kModulationQAM16
@ kModulationQAM16
Definition: dvbdescriptors.h:890
MessageDescriptor
Definition: dvbdescriptors.h:1328
ServiceRelocatedDescriptor::ServiceRelocatedDescriptor
ServiceRelocatedDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1442
TerrestrialDeliverySystemDescriptor::TerrestrialDeliverySystemDescriptor
TerrestrialDeliverySystemDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:930
LinkageDescriptor
Definition: dvbdescriptors.h:86
ExtendedEventDescriptor
Definition: dvbdescriptors.h:1548
ServiceDescriptorMapping::kServiceTypeHEVCUHDDigitalTelevision
@ kServiceTypeHEVCUHDDigitalTelevision
Definition: dvbdescriptors.h:1971
ComponentDescriptor::HEAACProperties
uint HEAACProperties(void) const
Definition: dvbdescriptors.h:556
TerrestrialDeliverySystemDescriptor::ConstellationString
QString ConstellationString(void) const
Definition: dvbdescriptors.h:976
T2DeliverySystemDescriptor::SisoMiso
uint SisoMiso(void) const
Definition: dvbdescriptors.h:1142
ServiceDescriptorMapping::kServiceTypeNimiqTV6
@ kServiceTypeNimiqTV6
Definition: dvbdescriptors.h:1985
byte4BCD2int
#define byte4BCD2int(i, j, k, l)
Definition: dvbdescriptors.h:61
ShortEventDescriptor::CanonicalLanguageString
QString CanonicalLanguageString(void) const
Definition: dvbdescriptors.h:2179
ServiceListDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:2131
T2DeliverySystemDescriptor
Definition: dvbdescriptors.h:1112
ExtendedEventDescriptor::ExtendedEventDescriptor
ExtendedEventDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1551
ExtendedEventDescriptor::TextLength
uint TextLength(void) const
Definition: dvbdescriptors.h:1581
SkyLCNDescriptor
Sky Logical Channel Number descriptor.
Definition: dvbdescriptors.h:2781
LinkageDescriptor::kHandOverAssociatedService
@ kHandOverAssociatedService
Definition: dvbdescriptors.h:155
MultilingualServiceNameDescriptor
Definition: dvbdescriptors.h:1779
SatelliteDeliverySystemDescriptor::FECInnerString
QString FECInnerString(void) const
Definition: dvbdescriptors.h:921
ServiceDescriptor::ServiceProviderShortName
QString ServiceProviderShortName(void) const
Definition: dvbdescriptors.h:2058
LinkageDescriptor::TargetEventID
uint TargetEventID(void) const
Definition: dvbdescriptors.h:187
ServiceDescriptorMapping::kServiceTypeNVODReference
@ kServiceTypeNVODReference
Definition: dvbdescriptors.h:1946
PDCDescriptor
Definition: dvbdescriptors.h:1878
ImageIconDescriptor::ImageIconDescriptor
ImageIconDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1072
NVODReferenceDescriptor::OriginalNetworkId
uint OriginalNetworkId(uint i) const
Definition: dvbdescriptors.h:1816
NetworkNameDescriptor::ShortName
QString ShortName(void) const
Definition: dvbdescriptors.h:79
TerrestrialDeliverySystemDescriptor::Frequency
uint Frequency(void) const
Definition: dvbdescriptors.h:938
TargetRegionNameDescriptor::CountryCode
uint CountryCode(void) const
Definition: dvbdescriptors.h:1415
ComponentDescriptor::LanguageString
QString LanguageString(void) const
Definition: dvbdescriptors.h:400
PrivateDataSpecifierDescriptor::PrivateDataSpecifier
uint32_t PrivateDataSpecifier(void) const
Definition: dvbdescriptors.h:1911
DVBSimulcastChannelDescriptor
DVB HD Simulcast Logical Channel Descriptor.
Definition: dvbdescriptors.h:2593
SubtitlingDescriptor::LanguageString
QString LanguageString(uint i) const
Definition: dvbdescriptors.h:2282
StreamIdentifierDescriptor::ComponentTag
uint ComponentTag(void) const
Definition: dvbdescriptors.h:2241
ServiceDescriptorMapping::kServiceTypeDigitalTelevision
@ kServiceTypeDigitalTelevision
Definition: dvbdescriptors.h:1943
FreesatLCNDescriptor::ServiceID
uint ServiceID(int i) const
Definition: dvbdescriptors.h:2658
CountryAvailabilityDescriptor::CountryCount
uint CountryCount(void) const
Definition: dvbdescriptors.h:654
ComponentDescriptor::IsSubtitle
bool IsSubtitle(void) const
Definition: dvbdescriptors.h:428
T2DeliverySystemDescriptor::m_subCellPtrs
std::vector< const unsigned char * > m_subCellPtrs
Definition: dvbdescriptors.h:1239
BouquetNameDescriptor::BouquetShortName
QString BouquetShortName(void) const
Definition: dvbdescriptors.h:303
LinkageDescriptor::kHandOverLocalVariation
@ kHandOverLocalVariation
Definition: dvbdescriptors.h:154
VBIDataDescriptor::VBIDataDescriptor
VBIDataDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2419
LinkageDescriptor::kEventLinkage
@ kEventLinkage
Definition: dvbdescriptors.h:143
MPEGDescriptor::DescriptorTagExtension
uint DescriptorTagExtension(void) const
Definition: mpegdescriptors.h:347
ApplicationSignallingDescriptor::AITVersionNumber
uint AITVersionNumber(uint i) const
Definition: dvbdescriptors.h:223
C2DeliverySystemDescriptor::Frequency
uint Frequency(void) const
Definition: dvbdescriptors.h:1497
DSNGDescriptor
Definition: dvbdescriptors.h:1536
ServiceDescriptorMapping::kServiceTypeTeletext
@ kServiceTypeTeletext
Definition: dvbdescriptors.h:1945
SupplementaryAudioDescriptor
Definition: dvbdescriptors.h:1268
TargetRegionNameDescriptor::TargetRegionNameDescriptor
TargetRegionNameDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1400
CableDeliverySystemDescriptor::FECOuter
uint FECOuter(void) const
Definition: dvbdescriptors.h:767
ShortSmoothingBufferDescriptor
Definition: dvbdescriptors.h:2213
ContentDescriptor::ContentDescriptor
ContentDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:608
iso639_key_to_str3
static QString iso639_key_to_str3(int code)
Definition: iso639.h:44
uint
unsigned int uint
Definition: compat.h:144
SkyLCNDescriptor::ServiceType
uint ServiceType(int i) const
Definition: dvbdescriptors.h:2813
FrequencyListDescriptor::kCodingTypeNotDefined
@ kCodingTypeNotDefined
Definition: dvbdescriptors.h:1609
ExtendedEventDescriptor::Text
QString Text(const enc_override &encoding_override) const
Definition: dvbdescriptors.h:1587
TransportStreamDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:2411
SupplementaryAudioDescriptor::LanguageCodePresent
uint LanguageCodePresent(void) const
Definition: dvbdescriptors.h:1295
DVBContentIdentifierDescriptor::m_crid
std::array< const uint8_t *, 8 > m_crid
Definition: dvbdescriptors.h:2917
PartialTransportStreamDescriptor::PeakRate
uint PeakRate(void) const
Definition: dvbdescriptors.h:2476
TerrestrialDeliverySystemDescriptor::kTransmissionMode2k
@ kTransmissionMode2k
Definition: dvbdescriptors.h:1051
x5
static int x5
Definition: mythsocket.cpp:59
SkyLCNDescriptor::ChannelID
uint ChannelID(int i) const
Definition: dvbdescriptors.h:2816
PrivateDescriptorID::freesat_lcn_table
@ freesat_lcn_table
Definition: mpegdescriptors.h:232
T2DeliverySystemDescriptor::GuardInterval
uint GuardInterval(void) const
Definition: dvbdescriptors.h:1185
TerrestrialDeliverySystemDescriptor::kHierarchyInfoAlpha4InDepthInterleaver
@ kHierarchyInfoAlpha4InDepthInterleaver
Definition: dvbdescriptors.h:992
CableDeliverySystemDescriptor::kInnerFEC_2_3_ConvolutionCodeRate
@ kInnerFEC_2_3_ConvolutionCodeRate
Definition: dvbdescriptors.h:805
ComponentDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:596
TerrestrialDeliverySystemDescriptor::TransmissionMode
uint TransmissionMode(void) const
Definition: dvbdescriptors.h:1055
TerrestrialDeliverySystemDescriptor::kConstellationQPSK
@ kConstellationQPSK
Definition: dvbdescriptors.h:970
ProgramInfo::CategoryType
CategoryType
Definition: programinfo.h:76
ServiceDescriptor::ServiceType
uint ServiceType(void) const
Definition: dvbdescriptors.h:2052
ContentDescriptor::s_categoryDescExists
static volatile bool s_categoryDescExists
Definition: dvbdescriptors.h:641
S2XSatelliteDeliverySystemDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:884
FreesatCallsignDescriptor
Freesat Channel Callsign descriptor.
Definition: dvbdescriptors.h:2743
ServiceRelocatedDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:852
T2DeliverySystemDescriptor::SisoMisoString
QString SisoMisoString(void) const
Definition: dvbdescriptors.h:1143
DataBroadcastDescriptor::CanonicalLanguageString
QString CanonicalLanguageString(void) const
Definition: dvbdescriptors.h:709
SatelliteDeliverySystemDescriptor::FrequencykHz
unsigned long long FrequencykHz(void) const
Definition: dvbdescriptors.h:834
StuffingDescriptor::StuffingDescriptor
StuffingDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2253
TerrestrialDeliverySystemDescriptor::kGuardInterval_1_16
@ kGuardInterval_1_16
Definition: dvbdescriptors.h:1038
CAIdentifierDescriptor::CAIdentifierDescriptor
CAIdentifierDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:317
PDCDescriptor::ProgramIdLabel
uint ProgramIdLabel(void) const
Definition: dvbdescriptors.h:1889
TerrestrialDeliverySystemDescriptor::kBandwidth7Mhz
@ kBandwidth7Mhz
Definition: dvbdescriptors.h:949
PrivateDescriptorID::sky_lcn_table
@ sky_lcn_table
Definition: mpegdescriptors.h:229
PrivateDataSpecifierDescriptor
Definition: dvbdescriptors.h:1899
TargetRegionNameDescriptor::LanguageString
QString LanguageString(void) const
Definition: dvbdescriptors.h:1429
ContentDescriptor::s_categoryLock
static QMutex s_categoryLock
Definition: dvbdescriptors.h:639
TransportStreamDescriptor::TransportStreamDescriptor
TransportStreamDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2402
ServiceListDescriptor::ServiceCount
uint ServiceCount(void) const
Definition: dvbdescriptors.h:2124
ServiceDescriptorMapping::kServiceTypeEchoStarTV4
@ kServiceTypeEchoStarTV4
Definition: dvbdescriptors.h:1979
SubtitlingDescriptor::SubtitlingDescriptor
SubtitlingDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2270
LinkageDescriptor::MobileInitialServiceID
uint MobileInitialServiceID(void) const
Definition: dvbdescriptors.h:178
TerrestrialDeliverySystemDescriptor::kBandwidth5Mhz
@ kBandwidth5Mhz
Definition: dvbdescriptors.h:951
SkyLCNDescriptor::ServiceID
uint ServiceID(int i) const
Definition: dvbdescriptors.h:2810
T2DeliverySystemDescriptor::kBandwidth1712kHz
@ kBandwidth1712kHz
Definition: dvbdescriptors.h:1158
TerrestrialDeliverySystemDescriptor::kHierarchyInfoAlpha2NativeInterleaver
@ kHierarchyInfoAlpha2NativeInterleaver
Definition: dvbdescriptors.h:987
NVODReferenceDescriptor::TransportStreamId
uint TransportStreamId(uint i) const
Definition: dvbdescriptors.h:1813
ServiceListDescriptor::ServiceID
uint ServiceID(uint i) const
Definition: dvbdescriptors.h:2126
SatelliteDeliverySystemDescriptor::kInnerFEC_7_8_ConvolutionCodeRate
@ kInnerFEC_7_8_ConvolutionCodeRate
Definition: dvbdescriptors.h:916
DataBroadcastDescriptor::Selector
const unsigned char * Selector(void) const
Definition: dvbdescriptors.h:700
MTV_PUBLIC
#define MTV_PUBLIC
Definition: mythtvexp.h:15
LinkageDescriptor::IsEventSimulcast
bool IsEventSimulcast(void) const
Definition: dvbdescriptors.h:191
AC3Descriptor::HasBSID
bool HasBSID(void) const
Definition: dvbdescriptors.h:2503
T2DeliverySystemDescriptor::kTransmissionMode2k
@ kTransmissionMode2k
Definition: dvbdescriptors.h:1196
ServiceDescriptorMapping::kServiceTypeNimiqTV2
@ kServiceTypeNimiqTV2
Definition: dvbdescriptors.h:1981
AC3Descriptor::ComponentType
uint ComponentType(void) const
Definition: dvbdescriptors.h:2511
FreesatLCNDescriptor::RegionID
uint RegionID(int i, int j) const
Definition: dvbdescriptors.h:2670
TelephoneDescriptor
Definition: dvbdescriptors.h:2303
FreesatRegionDescriptor::Language
QString Language(uint i) const
Definition: dvbdescriptors.h:2724
ExtendedEventDescriptor::LengthOfItems
uint LengthOfItems(void) const
Definition: dvbdescriptors.h:1571
LocalTimeOffsetDescriptor::LocalTimeOffsetDescriptor
LocalTimeOffsetDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1646
AC3Descriptor::AC3Descriptor
AC3Descriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2494
TerrestrialDeliverySystemDescriptor::kHierarchyInfoAlpha1InDepthInterleaver
@ kHierarchyInfoAlpha1InDepthInterleaver
Definition: dvbdescriptors.h:990
ApplicationSignallingDescriptor::Count
uint Count() const
Definition: dvbdescriptors.h:220
DataBroadcastIdDescriptor
Definition: dvbdescriptors.h:723
DescriptorID::c2_delivery_system
@ c2_delivery_system
Definition: mpegdescriptors.h:153
TimeShiftedEventDescriptor::TimeShiftedEventDescriptor
TimeShiftedEventDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2375
SupplementaryAudioDescriptor::LanguageString
QString LanguageString(void) const
Definition: dvbdescriptors.h:1300
T2DeliverySystemDescriptor::CellID
uint CellID(uint i) const
Definition: dvbdescriptors.h:1215
SatelliteDeliverySystemDescriptor::Polarization
uint Polarization(void) const
Definition: dvbdescriptors.h:853
LinkageDescriptor::MobileNetworkID
uint MobileNetworkID(void) const
Definition: dvbdescriptors.h:173
T2DeliverySystemDescriptor::BandwidthHz
uint BandwidthHz(void) const
Definition: dvbdescriptors.h:1161
LinkageDescriptor::kEPGService
@ kEPGService
Definition: dvbdescriptors.h:132
DataBroadcastIdDescriptor::DataBroadcastIdDescriptor
DataBroadcastIdDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:726
coderate_inner
static QString coderate_inner(uint coderate)
Definition: dvbdescriptors.h:2541
TerrestrialDeliverySystemDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:651
SatelliteDeliverySystemDescriptor::SymbolRate
uint SymbolRate(void) const
Definition: dvbdescriptors.h:899
ContentDescriptor::UserNibble1
uint UserNibble1(uint i) const
Definition: dvbdescriptors.h:625
TerrestrialDeliverySystemDescriptor::CodeRateLPString
QString CodeRateLPString(void) const
Definition: dvbdescriptors.h:1027
DataBroadcastDescriptor::CanonicalLanguageKey
int CanonicalLanguageKey(void) const
Definition: dvbdescriptors.h:707
LocalTimeOffsetDescriptor::LocalTimeOffset
uint LocalTimeOffset(uint i) const
Definition: dvbdescriptors.h:1675
C2DeliverySystemDescriptor::DataSliceID
uint DataSliceID(void) const
Definition: dvbdescriptors.h:1491
FrequencyListDescriptor::kCodingTypeCable
@ kCodingTypeCable
Definition: dvbdescriptors.h:1611
StreamIdentifierDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:2242
T2DeliverySystemDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:701
ServiceDescriptorMapping::kServiceTypeDVB_SRM
@ kServiceTypeDVB_SRM
Definition: dvbdescriptors.h:1950
T2DeliverySystemDescriptor::m_cellPtrs
std::vector< const unsigned char * > m_cellPtrs
Definition: dvbdescriptors.h:1238
OpenTVChannelListDescriptor::ChannelType
uint ChannelType(uint i) const
Definition: dvbdescriptors.h:2846
ServiceDescriptorMapping::kServiceTypeEchoStarTV2
@ kServiceTypeEchoStarTV2
Definition: dvbdescriptors.h:1977
ServiceDescriptor::ServiceProviderNameLength
uint ServiceProviderNameLength(void) const
Definition: dvbdescriptors.h:2054
TargetRegionDescriptor::CountryCodeString
QString CountryCodeString(void) const
Definition: dvbdescriptors.h:1384
SkyLCNDescriptor::LogicalChannelNumber
uint LogicalChannelNumber(int i) const
Definition: dvbdescriptors.h:2819
FreesatCallsignDescriptor::Callsign
QString Callsign(void) const
Definition: dvbdescriptors.h:2764
ServiceDescriptor::IsHDTV
bool IsHDTV(void) const
Definition: dvbdescriptors.h:2080
ServiceDescriptorMapping::kServiceTypeH264AVCHDNVODReference
@ kServiceTypeH264AVCHDNVODReference
Definition: dvbdescriptors.h:1966
LocalTimeOffsetDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:1042
assert
#define assert(x)
Definition: audiooutputalsa.cpp:18
OpenTVChannelListDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:985
ServiceDescriptorMapping::kServiceTypeDataBroadcast
@ kServiceTypeDataBroadcast
Definition: dvbdescriptors.h:1954
CAIdentifierDescriptor::CASystemId
int CASystemId(uint i) const
Definition: dvbdescriptors.h:326
ComponentDescriptor::ComponentTag
uint ComponentTag(void) const
Definition: dvbdescriptors.h:396
DescriptorID::image_icon
@ image_icon
Definition: mpegdescriptors.h:143
DataBroadcastDescriptor::SelectorLength
uint SelectorLength(void) const
Definition: dvbdescriptors.h:696
DataBroadcastDescriptor::TextLength
uint TextLength(void) const
Definition: dvbdescriptors.h:712
FreesatRegionDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:959
ImageIconDescriptor::LastDescriptorNumber
uint LastDescriptorNumber(void) const
Definition: dvbdescriptors.h:1093
PrivateUPCCablecomEpisodeTitleDescriptor::CanonicalLanguageString
QString CanonicalLanguageString(void) const
Definition: dvbdescriptors.h:2969
FrequencyListDescriptor::Frequency
unsigned long long Frequency(uint i) const
Definition: dvbdescriptors.h:1620
ContentDescriptor
Definition: dvbdescriptors.h:605
ServiceDescriptorMapping::kServiceTypeDVB_MHP
@ kServiceTypeDVB_MHP
Definition: dvbdescriptors.h:1958
SatelliteDeliverySystemDescriptor::IsEast
bool IsEast(void) const
west_east_flag 1 8.0
Definition: dvbdescriptors.h:850
TeletextDescriptor::CanonicalLanguageKey
int CanonicalLanguageKey(uint i) const
Definition: dvbdescriptors.h:2354
LinkageDescriptor::kInformationService
@ kInformationService
Definition: dvbdescriptors.h:131
ComponentDescriptor::CanonicalLanguageString
QString CanonicalLanguageString(void) const
Definition: dvbdescriptors.h:404
ServiceDescriptorMapping::IsHDTV
bool IsHDTV(void) const
Definition: dvbdescriptors.h:2018
TerrestrialDeliverySystemDescriptor::kGuardInterval_1_4
@ kGuardInterval_1_4
Definition: dvbdescriptors.h:1040
AC3Descriptor::MainID
uint MainID(void) const
Definition: dvbdescriptors.h:2518
LocalTimeOffsetDescriptor::CountryCodeString
QString CountryCodeString(uint i) const
Definition: dvbdescriptors.h:1660
ServiceAvailabilityDescriptor
Definition: dvbdescriptors.h:2095
DVBContentIdentifierDescriptor::DVBContentIdentifierDescriptor
DVBContentIdentifierDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2865
ServiceDescriptor::ServiceShortName
QString ServiceShortName(void) const
Definition: dvbdescriptors.h:2071
SHDeliverySystemDescriptor::SHDeliverySystemDescriptor
SHDeliverySystemDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1246
NetworkChangeNotifyDescriptor
Definition: dvbdescriptors.h:1307
PrivateDescriptorID::freesat_callsign
@ freesat_callsign
Definition: mpegdescriptors.h:238
DVBLogicalChannelDescriptor::ServiceID
uint ServiceID(uint i) const
Definition: dvbdescriptors.h:2576
C2DeliverySystemDescriptor::PlpID
uint PlpID(void) const
Definition: dvbdescriptors.h:1485
SubtitlingDescriptor
Definition: dvbdescriptors.h:2267
PartialTransportStreamDescriptor
Definition: dvbdescriptors.h:2465
ServiceDescriptorMapping::ServiceDescriptorMapping
ServiceDescriptorMapping(const uint service_type)
Definition: dvbdescriptors.h:1940
ShortEventDescriptor::LanguageString
QString LanguageString(void) const
Definition: dvbdescriptors.h:2175
SatelliteDeliverySystemDescriptor::OrbitalPosition
uint OrbitalPosition(void) const
orbital_position 16 6.0
Definition: dvbdescriptors.h:839
ShortEventDescriptor::EventName
QString EventName(void) const
Definition: dvbdescriptors.h:2184
ServiceRelocatedDescriptor::OldTransportID
uint OldTransportID(void) const
Definition: dvbdescriptors.h:1460
SupplementaryAudioDescriptor::MixType
uint MixType(void) const
Definition: dvbdescriptors.h:1286
SatelliteDeliverySystemDescriptor::ModulationSystemString
QString ModulationSystemString(void) const
Definition: dvbdescriptors.h:879
LinkageDescriptor::LinkageTypeString
QString LinkageTypeString(void) const
Definition: dvbdescriptors.cpp:302
DefaultAuthorityDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:2935
LinkageDescriptor::kDataBroadcastService
@ kDataBroadcastService
Definition: dvbdescriptors.h:136
StreamIdentifierDescriptor
This is used to label streams so the can be treated differently, for instance each stream may get it'...
Definition: dvbdescriptors.h:2231
PrivateUPCCablecomEpisodeTitleDescriptor::CanonicalLanguageKey
int CanonicalLanguageKey(void) const
Definition: dvbdescriptors.h:2965
CableDeliverySystemDescriptor::ModulationString
QString ModulationString(void) const
Definition: dvbdescriptors.h:783
SatelliteDeliverySystemDescriptor::SymbolRateHz
uint SymbolRateHz(void) const
Definition: dvbdescriptors.h:904
ServiceDescriptorMapping::IsDigitalAudio
bool IsDigitalAudio(void) const
Definition: dvbdescriptors.h:2012
MultilingualServiceNameDescriptor::MultilingualServiceNameDescriptor
MultilingualServiceNameDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1782
AC3Descriptor
Definition: dvbdescriptors.h:2491
TerrestrialDeliverySystemDescriptor::kHierarchyInfoAlpha4NativeInterleaver
@ kHierarchyInfoAlpha4NativeInterleaver
Definition: dvbdescriptors.h:988
CableDeliverySystemDescriptor::kInnerFEC_8_9_ConvolutionCodeRate
@ kInnerFEC_8_9_ConvolutionCodeRate
Definition: dvbdescriptors.h:809
TerrestrialDeliverySystemDescriptor::kCodeRate_1_2
@ kCodeRate_1_2
Definition: dvbdescriptors.h:1011
ScramblingDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:1929
TeletextDescriptor::TeletextPageNum
uint TeletextPageNum(uint i) const
Definition: dvbdescriptors.h:2365
ImageIconDescriptor
Definition: dvbdescriptors.h:1069
ServiceDescriptor
Definition: dvbdescriptors.h:2042
ComponentDescriptor
Definition: dvbdescriptors.h:382
ApplicationSignallingDescriptor
Definition: dvbdescriptors.h:206
ServiceAvailabilityDescriptor::ServiceAvailabilityDescriptor
ServiceAvailabilityDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2098
StuffingDescriptor
Definition: dvbdescriptors.h:2250
SatelliteDeliverySystemDescriptor::IsVerticalRightPolarization
bool IsVerticalRightPolarization(void) const
Definition: dvbdescriptors.h:862
OpenTVChannelListDescriptor::ServiceID
uint ServiceID(uint i) const
Definition: dvbdescriptors.h:2843
ServiceDescriptorMapping::kServiceTypeNimiqTV9
@ kServiceTypeNimiqTV9
Definition: dvbdescriptors.h:1988
DataBroadcastDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:1021
SatelliteDeliverySystemDescriptor::kInnerFEC_3_4_ConvolutionCodeRate
@ kInnerFEC_3_4_ConvolutionCodeRate
Definition: dvbdescriptors.h:914
DVBContentIdentifierDescriptor::m_cridCount
size_t m_cridCount
Definition: dvbdescriptors.h:2916
TerrestrialDeliverySystemDescriptor::FrequencyHz
uint64_t FrequencyHz(void) const
Definition: dvbdescriptors.h:943
MosaicDescriptor
Definition: dvbdescriptors.h:1689
T2DeliverySystemDescriptor::kBandwidth7Mhz
@ kBandwidth7Mhz
Definition: dvbdescriptors.h:1154
DVBSimulcastChannelDescriptor::ChannelCount
uint ChannelCount(void) const
Definition: dvbdescriptors.h:2602
SatelliteDeliverySystemDescriptor::kModulationQPSK_NS
@ kModulationQPSK_NS
Definition: dvbdescriptors.h:886
ServiceDescriptorMapping::kServiceTypeNimiqTV5
@ kServiceTypeNimiqTV5
Definition: dvbdescriptors.h:1984
SatelliteDeliverySystemDescriptor::kInnerFEC_5_6_ConvolutionCodeRate
@ kInnerFEC_5_6_ConvolutionCodeRate
Definition: dvbdescriptors.h:915
SatelliteDeliverySystemDescriptor::kRollOff_Auto
@ kRollOff_Auto
Definition: dvbdescriptors.h:869
TerrestrialDeliverySystemDescriptor::IsMPE_FECUsed
bool IsMPE_FECUsed(void) const
Definition: dvbdescriptors.h:965
BouquetNameDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:306
PrivateUPCCablecomEpisodeTitleDescriptor::PrivateUPCCablecomEpisodeTitleDescriptor
PrivateUPCCablecomEpisodeTitleDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2948
StuffingDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:2259
FreesatCallsignDescriptor::Language
QString Language(void) const
Definition: dvbdescriptors.h:2761
CableDeliverySystemDescriptor::SymbolRateRaw
uint SymbolRateRaw(void) const
Definition: dvbdescriptors.h:791
SatelliteDeliverySystemDescriptor::kModulationQPSK
@ kModulationQPSK
Definition: dvbdescriptors.h:888
LinkageDescriptor::MobileHandOverTypeString
QString MobileHandOverTypeString(void) const
Definition: dvbdescriptors.cpp:311
TerrestrialDeliverySystemDescriptor::TransmissionModeString
QString TransmissionModeString(void) const
Definition: dvbdescriptors.h:1056
LocalTimeOffsetDescriptor::CountryCode
uint CountryCode(uint i) const
Definition: dvbdescriptors.h:1655
T2DeliverySystemDescriptor::kTransmissionMode32k
@ kTransmissionMode32k
Definition: dvbdescriptors.h:1201
SatelliteDeliverySystemDescriptor::kRollOff_20
@ kRollOff_20
Definition: dvbdescriptors.h:867
CableDeliverySystemDescriptor::kOuterFEC_None
@ kOuterFEC_None
Definition: dvbdescriptors.h:764
ExtendedEventDescriptor::LastNumber
uint LastNumber(void) const
Definition: dvbdescriptors.h:1560
FreesatRegionDescriptor::RegionID
int RegionID(uint i) const
Definition: dvbdescriptors.h:2721
NetworkNameDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:81
SatelliteDeliverySystemDescriptor::PolarizationString
QString PolarizationString() const
Definition: dvbdescriptors.h:854
TerrestrialDeliverySystemDescriptor::kTransmissionMode4k
@ kTransmissionMode4k
Definition: dvbdescriptors.h:1053
SkyLCNDescriptor::ServiceCount
uint ServiceCount(void) const
Definition: dvbdescriptors.h:2807
ServiceDescriptorMapping::kServiceTypeH264AVCSDDigitalTelevision
@ kServiceTypeH264AVCSDDigitalTelevision
Definition: dvbdescriptors.h:1961
PrivateUPCCablecomEpisodeTitleDescriptor::LanguageString
QString LanguageString(void) const
Definition: dvbdescriptors.h:2961
TerrestrialDeliverySystemDescriptor::IsTimeSlicingIndicatorUsed
bool IsTimeSlicingIndicatorUsed(void) const
Definition: dvbdescriptors.h:963
T2DeliverySystemDescriptor::kTransmissionMode4k
@ kTransmissionMode4k
Definition: dvbdescriptors.h:1198
SatelliteDeliverySystemDescriptor
Definition: dvbdescriptors.h:818
SatelliteDeliverySystemDescriptor::kRollOff_25
@ kRollOff_25
Definition: dvbdescriptors.h:868
SubtitlingDescriptor::SubtitleType
uint SubtitleType(uint i) const
Definition: dvbdescriptors.h:2290
AncillaryDataDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.h:258
TelephoneDescriptor::TelephoneDescriptor
TelephoneDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2306
ExtendedEventDescriptor::Text
QString Text(void) const
Definition: dvbdescriptors.h:1583
TerrestrialDeliverySystemDescriptor::BandwidthHz
uint BandwidthHz(void) const
Definition: dvbdescriptors.h:954
DVBContentIdentifierDescriptor::ContentId
QString ContentId(size_t n=0) const
Definition: dvbdescriptors.h:2894
FreesatRegionDescriptor
Freesat Region descriptor.
Definition: dvbdescriptors.h:2688
SkyLCNDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:920
LocalTimeOffsetDescriptor::Count
uint Count(void) const
Definition: dvbdescriptors.h:1651
TerrestrialDeliverySystemDescriptor::CodeRateHPString
QString CodeRateHPString(void) const
Definition: dvbdescriptors.h:1018
CableDeliverySystemDescriptor::SymbolRateHz
uint SymbolRateHz(void) const
Definition: dvbdescriptors.h:796
ServiceDescriptorMapping::kServiceTypeH264AVCHDDigitalTelevision
@ kServiceTypeH264AVCHDDigitalTelevision
Definition: dvbdescriptors.h:1964
DataBroadcastDescriptor::DataComponentTag
uint DataComponentTag(void) const
Definition: dvbdescriptors.h:694
ApplicationSignallingDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:996
FreesatRegionDescriptor::m_entries
desc_list_t m_entries
Definition: dvbdescriptors.h:2733
TargetRegionNameDescriptor::LanguageKey
int LanguageKey(void) const
Definition: dvbdescriptors.h:1427
TargetRegionNameDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:834
OpenTVChannelListDescriptor::ChannelNumber
uint ChannelNumber(uint i) const
Definition: dvbdescriptors.h:2852
TargetRegionNameDescriptor
Definition: dvbdescriptors.h:1397
TerrestrialDeliverySystemDescriptor::HighPriority
bool HighPriority(void) const
Definition: dvbdescriptors.h:961
ComponentDescriptor::SubtitleType
uint SubtitleType(void) const
Definition: dvbdescriptors.h:578
SatelliteDeliverySystemDescriptor::RollOff
uint RollOff(void) const
Definition: dvbdescriptors.h:871
FrequencyListDescriptor::FrequencyHz
unsigned long long FrequencyHz(uint i) const
Definition: dvbdescriptors.h:1632
TerrestrialDeliverySystemDescriptor::kCodeRate_2_3
@ kCodeRate_2_3
Definition: dvbdescriptors.h:1012
ComponentDescriptor::AVCProperties
uint AVCProperties(void) const
Definition: dvbdescriptors.h:460
ScramblingDescriptor::ScramblingDescriptor
ScramblingDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1921
LinkageDescriptor::LinkageType
uint LinkageType(void) const
Definition: dvbdescriptors.h:145
MultilingualNetworkNameDescriptor::MultilingualNetworkNameDescriptor
MultilingualNetworkNameDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1763
T2DeliverySystemDescriptor::kGuardInterval_1_4
@ kGuardInterval_1_4
Definition: dvbdescriptors.h:1180
ServiceDescriptorMapping::IsDTV
bool IsDTV(void) const
Definition: dvbdescriptors.h:1992
CableDeliverySystemDescriptor::kInnerFEC_None
@ kInnerFEC_None
Definition: dvbdescriptors.h:810
DataBroadcastDescriptor::Text
QString Text(void) const
Definition: dvbdescriptors.h:714
T2DeliverySystemDescriptor::kGuardInterval_19_256
@ kGuardInterval_19_256
Definition: dvbdescriptors.h:1183
DefaultAuthorityDescriptor
Definition: dvbdescriptors.h:2921
ServiceDescriptorMapping::toString
QString toString(void) const
Definition: dvbdescriptors.cpp:559
LinkageDescriptor::MobileHandOverType
uint MobileHandOverType(void) const
Definition: dvbdescriptors.h:157
StreamIdentifierDescriptor::StreamIdentifierDescriptor
StreamIdentifierDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2234
TerrestrialDeliverySystemDescriptor::kTransmissionMode8k
@ kTransmissionMode8k
Definition: dvbdescriptors.h:1052
NetworkChangeNotifyDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:787
SatelliteDeliverySystemDescriptor::IsHorizontalLeftPolarization
bool IsHorizontalLeftPolarization(void) const
Definition: dvbdescriptors.h:861
AdaptationFieldDataDescriptor
Definition: dvbdescriptors.h:229
SatelliteDeliverySystemDescriptor::FECInner
uint FECInner(void) const
Definition: dvbdescriptors.h:920
ComponentDescriptor::MPEG2Properties
uint MPEG2Properties(void) const
Definition: dvbdescriptors.h:442
ServiceDescriptorMapping::kServiceTypeH264AVCFrameCompatiblePlanoStereoscopicHDDigitalTelevision
@ kServiceTypeH264AVCFrameCompatiblePlanoStereoscopicHDDigitalTelevision
Definition: dvbdescriptors.h:1967
LinkageDescriptor::MobileOriginType
uint MobileOriginType(void) const
Definition: dvbdescriptors.h:166
LinkageDescriptor::HasMobileInitialServiceID
bool HasMobileInitialServiceID(void) const
Definition: dvbdescriptors.h:176
TeletextDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:598
ServiceDescriptorMapping::kServiceTypeH264AVCSDNVODTimeShifted
@ kServiceTypeH264AVCSDNVODTimeShifted
Definition: dvbdescriptors.h:1962
SupplementaryAudioDescriptor::LanguageKey
int LanguageKey(void) const
Definition: dvbdescriptors.h:1298
SkyLCNDescriptor::RegionID
uint RegionID(void) const
Definition: dvbdescriptors.h:2801
DVBContentIdentifierDescriptor
Definition: dvbdescriptors.h:2862
ServiceDescriptorMapping::kServiceTypeNimiqTV8
@ kServiceTypeNimiqTV8
Definition: dvbdescriptors.h:1987
T2DeliverySystemDescriptor::TransposerFrequency
uint TransposerFrequency(uint i, uint j) const
Definition: dvbdescriptors.h:1229
FrequencyListDescriptor::FrequencyCount
uint FrequencyCount() const
Definition: dvbdescriptors.h:1619
LinkageDescriptor::OriginalNetworkID
uint OriginalNetworkID() const
Definition: dvbdescriptors.h:125
FreesatLCNDescriptor::ChanID
uint ChanID(int i) const
Definition: dvbdescriptors.h:2661
iso639_str3_to_key
static int iso639_str3_to_key(const unsigned char *iso639_2)
Definition: iso639.h:59
T2DeliverySystemDescriptor::T2DeliverySystemDescriptor
T2DeliverySystemDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1115
LinkageDescriptor::kTSContaining_INT_BAT_NIT
@ kTSContaining_INT_BAT_NIT
Definition: dvbdescriptors.h:142
T2DeliverySystemDescriptor::PlpID
uint PlpID(void) const
Definition: dvbdescriptors.h:1130
TeletextDescriptor::LanguageString
QString LanguageString(uint i) const
Definition: dvbdescriptors.h:2352
S2XSatelliteDeliverySystemDescriptor::S2XSatelliteDeliverySystemDescriptor
S2XSatelliteDeliverySystemDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1514
MessageDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:799
SatelliteDeliverySystemDescriptor::IsCircularPolarization
bool IsCircularPolarization(void) const
Definition: dvbdescriptors.h:859
NVODReferenceDescriptor::NVODReferenceDescriptor
NVODReferenceDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1803
AC3Descriptor::BSID
uint BSID(void) const
Definition: dvbdescriptors.h:2514
TimeShiftedEventDescriptor
Definition: dvbdescriptors.h:2372
TerrestrialDeliverySystemDescriptor::kHierarchyInfoNonHierarchicalNativeInterleaver
@ kHierarchyInfoNonHierarchicalNativeInterleaver
Definition: dvbdescriptors.h:985
VBITeletextDescriptor::VBITeletextDescriptor
VBITeletextDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2449
SkyLCNDescriptor::RegionRaw
uint RegionRaw(void) const
Definition: dvbdescriptors.h:2804
ExtendedEventDescriptor::CanonicalLanguageString
QString CanonicalLanguageString(void) const
Definition: dvbdescriptors.h:1568
VBITeletextDescriptor
Definition: dvbdescriptors.h:2446
TeletextDescriptor::TeletextType
uint TeletextType(uint i) const
Definition: dvbdescriptors.h:2359
TargetRegionDescriptor::TargetRegionDescriptor
TargetRegionDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1365
ServiceListDescriptor
Definition: dvbdescriptors.h:2110
FreesatLCNDescriptor::FreesatLCNDescriptor
FreesatLCNDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2626
ComponentDescriptor::ComponentType
uint ComponentType(void) const
Definition: dvbdescriptors.h:394
ServiceDescriptorMapping::kServiceTypeNimiqTV7
@ kServiceTypeNimiqTV7
Definition: dvbdescriptors.h:1986
OpenTVChannelListDescriptor::OpenTVChannelListDescriptor
OpenTVChannelListDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2832
PartialTransportStreamDescriptor::SmoothBuf
uint SmoothBuf(void) const
Definition: dvbdescriptors.h:2484
T2DeliverySystemDescriptor::kTransmissionMode1k
@ kTransmissionMode1k
Definition: dvbdescriptors.h:1199
AncillaryDataDescriptor::AncillaryDataID
uint AncillaryDataID(void) const
Definition: dvbdescriptors.h:257
T2DeliverySystemDescriptor::Parse
void Parse(void) const
Definition: dvbdescriptors.cpp:686
ContentDescriptor::Nibble
uint Nibble(uint i) const
Definition: dvbdescriptors.h:622
TerrestrialDeliverySystemDescriptor::kCodeRate_7_8
@ kCodeRate_7_8
Definition: dvbdescriptors.h:1015
DVBLogicalChannelDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:898
TeletextDescriptor
Definition: dvbdescriptors.h:2336
NetworkChangeNotifyDescriptor::NetworkChangeNotifyDescriptor
NetworkChangeNotifyDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1310
T2DeliverySystemDescriptor::T2SystemID
uint T2SystemID(void) const
Definition: dvbdescriptors.h:1136
DescriptorID::service_relocated
@ service_relocated
Definition: mpegdescriptors.h:151
SatelliteDeliverySystemDescriptor::SatelliteDeliverySystemDescriptor
SatelliteDeliverySystemDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:821
FreesatLCNDescriptor::LogicalChannelNumber
uint LogicalChannelNumber(int i, int j) const
Definition: dvbdescriptors.h:2667
AC3Descriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:1080
SupplementaryAudioDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:765
SubtitlingDescriptor::CompositionPageID
uint CompositionPageID(uint i) const
Definition: dvbdescriptors.h:2293
ServiceDescriptor::IsDigitalAudio
bool IsDigitalAudio(void) const
Definition: dvbdescriptors.h:2078
ContentDescriptor::Init
static void Init(void)
Definition: dvbdescriptors.cpp:351
SatelliteDeliverySystemDescriptor::kInnerFEC_8_9_ConvolutionCodeRate
@ kInnerFEC_8_9_ConvolutionCodeRate
Definition: dvbdescriptors.h:917
LinkageDescriptor::kSystemSoftwareUpdateService
@ kSystemSoftwareUpdateService
Definition: dvbdescriptors.h:139
TimeShiftedServiceDescriptor::TimeShiftedServiceDescriptor
TimeShiftedServiceDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2389
DescriptorID::supplementary_audio
@ supplementary_audio
Definition: mpegdescriptors.h:146
C2DeliverySystemDescriptor
Definition: dvbdescriptors.h:1467
LinkageDescriptor::IsTargetListed
bool IsTargetListed(void) const
Definition: dvbdescriptors.h:189
TerrestrialDeliverySystemDescriptor::kGuardInterval_1_32
@ kGuardInterval_1_32
Definition: dvbdescriptors.h:1037
SatelliteDeliverySystemDescriptor::ModulationString
QString ModulationString(void) const
Definition: dvbdescriptors.h:893
SupplementaryAudioDescriptor::EditorialClassification
uint EditorialClassification(void) const
Definition: dvbdescriptors.h:1289
SkyLCNDescriptor::SkyLCNDescriptor
SkyLCNDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:2784
TransportStreamDescriptor
Definition: dvbdescriptors.h:2399
LinkageDescriptor::kTSContaining_SSU_BAT_NIT
@ kTSContaining_SSU_BAT_NIT
Definition: dvbdescriptors.h:140
FreesatRegionDescriptor::RegionName
QString RegionName(uint i) const
Definition: dvbdescriptors.h:2727
AC3Descriptor::HasComponentType
bool HasComponentType(void) const
Definition: dvbdescriptors.h:2501
PrivateDataSpecifierDescriptor::PrivateDataSpecifierDescriptor
PrivateDataSpecifierDescriptor(const std::vector< uint8_t > &data)
Definition: dvbdescriptors.h:1904
DVBSimulcastChannelDescriptor::ServiceID
uint ServiceID(uint i) const
Definition: dvbdescriptors.h:2604
T2DeliverySystemDescriptor::kBandwidth6Mhz
@ kBandwidth6Mhz
Definition: dvbdescriptors.h:1155
FreesatLCNDescriptor::ServiceCount
uint ServiceCount(void) const
Definition: dvbdescriptors.h:2655
SatelliteDeliverySystemDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:633
byte3BCD2int
#define byte3BCD2int(i, j, k)
Definition: dvbdescriptors.h:57
TargetRegionDescriptor::toString
QString toString(void) const override
Definition: dvbdescriptors.cpp:817
LinkageDescriptor::LinkageDescriptor
LinkageDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:89
DefaultAuthorityDescriptor::DefaultAuthority
QString DefaultAuthority(void) const
Definition: dvbdescriptors.h:2930
PrivateDescriptorID
Definition: mpegdescriptors.h:197
BouquetNameDescriptor::BouquetName
QString BouquetName(void) const
Definition: dvbdescriptors.h:301
ComponentDescriptor::ComponentDescriptor
ComponentDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:385
NetworkNameDescriptor
Definition: dvbdescriptors.h:68
ServiceRelocatedDescriptor::OldOriginalNetworkID
uint OldOriginalNetworkID(void) const
Definition: dvbdescriptors.h:1459
CountryAvailabilityDescriptor::CountryNames
QString CountryNames(void) const
Definition: dvbdescriptors.h:662
ShortEventDescriptor::LanguageKey
int LanguageKey(void) const
Definition: dvbdescriptors.h:2173
ContentDescriptor::Nibble2
uint Nibble2(uint i) const
Definition: dvbdescriptors.h:620
C2DeliverySystemDescriptor::C2DeliverySystemDescriptor
C2DeliverySystemDescriptor(const unsigned char *data, int len=300)
Definition: dvbdescriptors.h:1470