MythTV  master
atsctables.h
Go to the documentation of this file.
1 // -*- Mode: c++ -*-
2 // Copyright (c) 2003-2004, Daniel Thor Kristjansson
3 #ifndef ATSC_TABLES_H
4 #define ATSC_TABLES_H
5 
6 #include <cstdint> // uint32_t
7 #include <QString>
8 
9 #include "atscdescriptors.h"
10 #include "mythmiscutil.h" // for xml_indent
11 #include "mpegtables.h"
12 #include "mythtvexp.h"
13 #include "mythdate.h"
14 
15 // Some sample code is in pcHDTV's dtvscan.c,
16 // accum_sect/dequeue_buf/atsc_tables. We should stuff
17 // this data back into the channel's guide data, though if
18 // it's unreliable we will need to be able to prefer the
19 // downloaded XMLTV data.
20 
52 {
53  public:
55  {
56  UNKNOWN = -1,
57  TVCTc = 0,
58  TVCTnc = 1,
59  CVCTc = 2,
60  CVCTnc = 3,
61  ETTc = 4,
62  DCCSCT = 5,
63  EIT = 6,
64  ETTe = 7,
65  DCCT = 8,
66  RRT = 9,
67  };
68 };
69 
75 {
76  public:
78  {
80  Parse();
81  }
82  explicit MasterGuideTable(const PSIPTable& table) : PSIPTable(table)
83  {
85  Parse();
86  }
87  ~MasterGuideTable() override { ; }
88 
89  // Name bits loc expected value
90  // table_id 8 0.0 0xC7
91  // section_syntax_indicator 1 1.0 1
92  // private_indicator 1 1.1 1
93  // reserved 2 1.2 3
94  // table_id_extension 16 3.0 0x0000
95 
96  /* Each Map ID corresponds to one set of channel mappings. Each STB
97  * is expected to ignore any Map ID's other than the one corresponding
98  * to it's head-end.
99  *
100  * Note: This is only defined for SCTE streams, it is always 0 in ATSC streams
101  */
102  uint SCTEMapId() const
103  {
104  return (pesdata()[3]<<8) | pesdata()[4];
105  }
106 
107  // reserved 2 5.0 3
108  // current_next_indicator 1 5.7 1
109  // section_number 8 6.0 0x00
110  // last_section_number 8 7.0 0x00
111  // protocol_version 8 8.0 0x00 for now
112 
113  // tables_defined 16 9.0, 6-370 valid OTA, 2-370 valid w/Cable
114  uint TableCount() const
115  {
116  return (pesdata()[9]<<8) | pesdata()[10];
117  }
118  // for (i=0; i<tableCount(); i++) {
119  // table_type 16 0.0
120  uint TableType(uint i) const
121  {
122  return (m_ptrs[i][0]<<8) | m_ptrs[i][1];
123  }
124  int TableClass(uint i) const;
125  QString TableClassString(uint i) const;
126  // reserved 3 2.0 0x7
127  // table_type_PID 13 2.3
128  uint TablePID(uint i) const
129  {
130  return ((m_ptrs[i][2]<<8) | (m_ptrs[i][3])) & 0x1fff;
131  }
132  // reserved 3 4.0 0x7
133  // table_type_version_number 5 4.3
135  {
136  return (m_ptrs[i][4]) & 0x1f;
137  }
138  // number_bytes for table desc. 32 5.0
140  {
141  return ((m_ptrs[i][5]<<24) | (m_ptrs[i][6]<<16) |
142  (m_ptrs[i][7]<<8) | (m_ptrs[i][8]));
143  }
144  // reserved 4 9.0 0xf
145  // table_type_descriptors_length 12 9.4
147  {
148  return ((m_ptrs[i][9]<<8) | (m_ptrs[i][10])) & 0xfff;
149  }
150 
151  // for (I = 0; I<M; I++)
152  // descriptor = 11 + (offset)
153  // }
154  // }
155  const unsigned char* TableDescriptors(uint i) const
156  {
157  return m_ptrs[i]+11;
158  }
159  // reserved 4 0xf
160  // descriptors_length 12
162  {
163  return ((m_ptrs[TableCount()][0]<<8) |
164  (m_ptrs[TableCount()][1])) & 0xfff;
165  }
166 
167  const unsigned char* GlobalDescriptors() const
168  {
169  return m_ptrs[TableCount()]+2;
170  }
171  // for (I=0; I<N; I++) {
172  // descriptor()
173  // }
174  // CRC_32 32
175 
176  void Parse(void) const;
177  QString toString(void) const override; // PSIPTable
178  QString toStringXML(uint indent_level) const override; // PSIPTable
179  private:
180  mutable vector<unsigned char*> m_ptrs; // used to parse
181 };
182 
190 {
191  public:
193  {
195  Parse();
196  }
197  explicit VirtualChannelTable(const PSIPTable &table) : PSIPTable(table)
198  {
200  Parse();
201  }
202 
203  ~VirtualChannelTable() override { ; }
204 
205  // Name bits loc expected value
206  // table_id 8 0.0 0xC8/0xC9
207  // section_syntax_indicator 1 1.0 1
208  // private_indicator 1 1.1 1
209  // reserved 2 1.2 3
210  // table_id_extension 16 3.0 0x0000
211  // reserved 2 5.0 3
212  // current_next_indicator 1 5.7 1
213  // section_number 8 6.0 0x00
214  // last_section_number 8 7.0 0x00
215  // protocol_version 8 8.0 0x00 for now
216 
217  // transport_stream_id 16 3.0
219 
220  // num_channels_in_section 8 9.0
221  uint ChannelCount() const { return pesdata()[9]; }
222 
223  // for(i=0; i<num_channels_in_section; i++) {
224  // short_name 7*16 0.0 (7 UCS-2 chars padded by 0x0000)
225  QString ShortChannelName(uint i) const
226  {
227  if (i >= ChannelCount())
228  return QString();
229 
230  QString str;
231  const auto* ustr = reinterpret_cast<const unsigned short*>(m_ptrs[i]);
232  for (int j=0; j<7; j++)
233  {
234  QChar c((ustr[j]<<8) | (ustr[j]>>8));
235  if (c != QChar('\0')) str.append(c);
236  }
237  return str.simplified();
238  }
239  // reserved 4 13.0 0xf
240 
241  // major_channel_number 10 13.4
242  // 14 RRRR JJJJ 15 jjjj jjmm 16 MMMM MMMM
243  // JJ JJjj jjjj mm MMMM MMMM
245  {
246  return (((m_ptrs[i][14])<<6)&0x3c0) | (m_ptrs[i][15]>>2);
247  }
248  // minor_channel_number 10 14.6
250  {
251  return (((m_ptrs[i][15])<<8)&0x300) | m_ptrs[i][16];
252  }
253  // modulation_mode 8 16.0
255  {
256  return m_ptrs[i][17];
257  }
258  QString ModulationModeString(uint i) const;
259  // carrier_frequency 32 17.0 deprecated
260  // channel_TSID 16 21.0
262  {
263  return ((m_ptrs[i][22]<<8) | m_ptrs[i][23]);
264  }
265  // program_number 16 23.0
267  {
268  return ((m_ptrs[i][24]<<8) | m_ptrs[i][25]);
269  }
270  // ETM_location 2 25.0
272  {
273  return (m_ptrs[i][26]>>6) & 0x03;
274  }
275  // access_controlled 1 25.2
276  bool IsAccessControlled(uint i) const
277  {
278  return bool(m_ptrs[i][26] & 0x20);
279  }
280  // hidden 1 25.3
281  bool IsHidden(uint i) const
282  {
283  return bool(m_ptrs[i][26] & 0x10);
284  }
285  // reserved 2 25.4 3
286  // hide_guide 1 25.6
287  bool IsHiddenInGuide(uint i) const
288  {
289  return bool(m_ptrs[i][26] & 0x2);
290  }
291  // reserved 6 25.7 0x3f
292  // service_type 6 26.2
294  {
295  return m_ptrs[i][27] & 0x3f;
296  }
297  QString ServiceTypeString(uint i) const;
298  // source_id 16 27.0
299  uint SourceID(uint i) const
300  {
301  return ((m_ptrs[i][28]<<8) | m_ptrs[i][29]);
302  }
303  // reserved 6 29.0 0xfb
304  // descriptors_length 10 29.6
306  {
307  return ((m_ptrs[i][30]<<8) | m_ptrs[i][31]) & 0x03ff;
308  }
309  // for (i=0;i<N;i++) { descriptor() }
310  const unsigned char* Descriptors(uint i) const
311  {
312  return m_ptrs[i]+32;
313  }
314  // }
315  // reserved 6 0xfb
316  // additional_descriptors_length 10
318  {
319  uint i = ChannelCount();
320  return ((m_ptrs[i][0]<<8) | m_ptrs[i][1]) & 0x03ff;
321  }
322  // for (j=0; j<N; j++) { additional_descriptor() }
323  const unsigned char* GlobalDescriptors() const
324  {
325  return m_ptrs[ChannelCount()]+2;
326  }
327  // CRC_32 32
328  void Parse() const;
329  int Find(int major, int minor) const;
330  QString GetExtendedChannelName(uint idx) const;
331  QString toString(void) const override; // PSIPTable
332  virtual QString ChannelString(uint channel) const = 0;
333  QString toStringXML(uint indent_level) const override; // PSIPTable
334  virtual QString ChannelStringXML(uint indent_level, uint channel) const;
335  virtual QString XMLChannelValues(uint indent_level, uint channel) const;
336  protected:
337  mutable vector<unsigned char*> m_ptrs;
338 };
339 
346 {
347  public:
349  : VirtualChannelTable(table)
350  {
352  }
354  : VirtualChannelTable(table)
355  {
357  }
359 
360  // Name bits loc expected value
361  // table_id 8 0.0 0xC8
362  // section_syntax_indicator 1 1.0 1
363  // private_indicator 1 1.1 1
364  // reserved 2 1.2 3
365  // table_id_extension 16 3.0 0x0000
366  // reserved 2 5.0 3
367  // current_next_indicator 1 5.7 1
368  // section_number 8 6.0 0x00
369  // last_section_number 8 7.0 0x00
370  // protocol_version 8 8.0 0x00 for now
371 
372  // transport_stream_id 16 3.0
373  // num_channels_in_section 8 9.0
374 
375  // for (i=0; i<num_channels_in_section; i++)
376  // {
377  // short_name 7*16 0.0 (7 UTF-16 chars padded by 0x0000)
378  // reserved 4 14.0 0xf
379 
380  // major_channel_number 10 14.4
381  // 14 RRRR JJJJ 15 jjjj jjmm 16 MMMM MMMM
382  // JJ JJjj jjjj mm MMMM MMMM
383  // minor_channel_number 10 15.6
384  // modulation_mode 8 17.0
385  // carrier_frequency 32 18.0 deprecated
386  // channel_TSID 16 22.0
387  // program_number 16 24.0
388  // ETM_location 2 26.0
389  // access_controlled 1 26.2
390  // hidden 1 26.3
391  // reserved 2 26.4 3
392  // hide_guide 1 26.6
393  // reserved 6 26.7 0x3f
394  // service_type 6 27.2
395  // source_id 16 28.0
396  // reserved 6 30.0 0xfb
397  // descriptors_length 10 30.6-31
398  // for (i=0;i<N;i++) { descriptor() }
399  // }
400  // reserved 6 0xfb
401  // additional_descriptors_length 10
402  // for (j=0; j<N; j++) { additional_descriptor() }
403  // CRC_32 32
404  QString ChannelString(uint channel) const override; // VirtualChannelTable
405  QString XMLChannelValues(uint indent_level, uint channel) const override; // VirtualChannelTable
406 };
407 
408 
415 {
416  public:
418  : VirtualChannelTable(table)
419  {
421  }
422  explicit CableVirtualChannelTable(const PSIPTable &table)
423  : VirtualChannelTable(table)
424  {
426  }
427  ~CableVirtualChannelTable() override { ; }
428 
429  // Name bits loc expected value
430  // table_id 8 0.0 0xC9
431  // section_syntax_indicator 1 1.0 1
432  // private_indicator 1 1.1 1
433  // reserved 2 1.2 3
434  // table_id_extension 16 3.0 0x0000
435 
436  /* Each Map ID corresponds to one set of channel mappings. Each STB
437  * is expected to ignore any Map ID's other than the one corresponding
438  * to it's head-end.
439  *
440  * Note: This is only defined for SCTE streams,
441  * it is always 0 in ATSC streams.
442  */
443  uint SCTEMapId() const
444  {
445  return (pesdata()[3]<<8) | pesdata()[4];
446  }
447 
448  // reserved 2 5.0 3
449  // current_next_indicator 1 5.7 1
450  // section_number 8 6.0 0x00
451  // last_section_number 8 7.0 0x00
452  // protocol_version 8 8.0 0x00 for now
453 
454  // for (i=0; i<num_channels_in_section; i++)
455  // {
456  // short_name 7*16 0.0 (7 UTF-16 chars padded by 0x0000)
457  // reserved 4 14.0 0xf
458 
459  // major_channel_number 10 14.4
460  // 14 RRRR JJJJ 15 jjjj jjmm 16 MMMM MMMM
461  // JJ JJjj jjjj mm MMMM MMMM
462  // minor_channel_number 10 15.6
463 
465  {
466  return (MajorChannel(i) >> 4) == 0x3f;
467  }
469  {
470  return MajorChannel(i) < 1000;
471  }
472  // Note: In SCTE streams, the channel number is undefined if
473  // the two functions above return false. As of 2002 spec.
474 
476  {
477  if (SCTEIsChannelNumberOnePart(i))
478  return ((MajorChannel(i) & 0xf) << 10) | MinorChannel(i);
479  return 0;
480  }
481 
482  // modulation_mode 8 17.0
483  // carrier_frequency 32 18.0 deprecated
484  // channel_TSID 16 22.0
485  // program_number 16 24.0
486  // ETM_location 2 26.0
487  // access_controlled 1 26.2
488  // hidden 1 26.3
489  // path_select 1 26.4
490  bool IsPathSelect(uint i) const
491  {
492  return bool(m_ptrs[i][26] & 0x8);
493  }
494  // out_of_band 1 26.5
495  bool IsOutOfBand(uint i) const
496  {
497  return bool(m_ptrs[i][26] & 0x4);
498  }
499  // hide_guide 1 26.6
500  // reserved 3 26.7 7
501  // service_type 6 27.2
502  // source_id 16 28.0
503  // reserved 6 30.0 0xfb
504  // descriptors_length 10 30.6-31
505  // for (i=0;i<N;i++) { descriptor() }
506  // }
507  // reserved 6 0xfb
508  // additional_descriptors_length 10
509  // for (j=0; j<N; j++) { additional_descriptor() }
510  // CRC_32 32
511  QString ChannelString(uint channel) const override; // VirtualChannelTable
512  QString XMLChannelValues(uint indent_level, uint channel) const override; // VirtualChannelTable
513 };
514 
521 {
522  public:
524  : PSIPTable(table)
525  {
527  Parse();
528  }
529  explicit EventInformationTable(const PSIPTable &table) : PSIPTable(table)
530  {
532  Parse();
533  }
534  ~EventInformationTable() override { ; }
535 
536  // Name bits loc expected value
537  // table_id 8 0.0 0xCB
538  // section_syntax_indicator 1 1.0 1
539  // private_indicator 1 1.1 1
540  // reserved 2 1.2 3
541  // table_id_extension 16 3.0 0x0000
542  // reserved 2 5.0 3
543  // current_next_indicator 1 5.7 1
544  // section_number 8 6.0 0x00
545  // last_section_number 8 7.0 0x00
546  // protocol_version 8 8.0 0x00 for now
547 
548  // source_id 16 3.0 0x0000
549  uint SourceID() const { return TableIDExtension(); }
550 
551  // num_events_in_section 8 9.0
552  uint EventCount() const { return psipdata()[1]; }
553  // for (j = 0; j< num_events_in_section;j++)
554  // {
555  // reserved 2 0.0 3
556  // event_id 14 0.2
557  uint EventID(uint i) const
558  {
559  return ((m_ptrs[i][0]<<8) | m_ptrs[i][1])&0x3fff;
560  }
561  // start_time 32 2.0
563  {
564  return ((m_ptrs[i][2]<<24) | (m_ptrs[i][3]<<16) |
565  (m_ptrs[i][4]<<8) | (m_ptrs[i][5]));
566  }
567  QDateTime StartTimeGPS(uint i) const
568  {
569  // Time in GPS seconds since 00:00:00 on January 6th, 1980 UTC
570  return MythDate::fromSecsSinceEpoch(GPS_EPOCH + StartTimeRaw(i));
571  }
572  // reserved 2 6.0 3
573  // ETM_location 2 6.2
575  {
576  return (m_ptrs[i][6]>>4)&3;
577  }
578  // length_in_seconds 20 6.4
580  {
581  return ((m_ptrs[i][6]<<16) | (m_ptrs[i][7]<<8) |
582  (m_ptrs[i][8])) & 0xfffff;
583  }
584  // title_length 8 9.0
586  { return m_ptrs[i][9]; }
587  // title_text() var * 10.0
589  {
590  return MultipleStringStructure(m_ptrs[i]+10);
591  }
592  // reserved 4 0xf
593  // descriptors_length 12
595  {
596  unsigned char *desc=m_ptrs[i]+10+TitleLength(i);
597  return ((desc[0]<<8)|(desc[1]))&0xfff;
598  }
599  // for (i=0;i<N;i++)
600  // {
601  // descriptor()
602  const unsigned char* Descriptors(uint i) const
603  {
604  return m_ptrs[i]+12+TitleLength(i);
605  }
606  // }
607  // }
608  // CRC_32 32
609  void Parse() const;
610  QString toString() const override; // PSIPTable
611  private:
612  mutable vector<unsigned char*> m_ptrs;
613 };
614 
621 {
622  public:
624  {
626  }
627  explicit ExtendedTextTable(const PSIPTable &table) : PSIPTable(table)
628  {
630  }
631  ~ExtendedTextTable() override { ; }
632 
633  // Name bits loc expected value
634  // table_id 8 0.0 0xCC
635  // section_syntax_indicator 1 1.0 1
636  // private_indicator 1 1.1 1
637  // reserved 2 1.2 3
638  // section_length 12 1.4
639  // ETT_table_id_extension 16 3.0 unique per pid
640  // reserved 2 5.0 3
641  // current_next_indicator 1 5.7 1
642  // section_number 8 6.0 0x00
643  // last_section_number 8 7.0 0x00
644  // protocol_version 8 8.0 0x00 for now
645 
648  { SetTableIDExtension(id); }
649 
650  // ETM_id 32 10.0
651  // 31..16 15..2 iff 1..0
652  // channel ETM_id source_id 0 00
653  // event ETM_id source_id event_id 10
654  bool IsChannelETM(void) const { return 0 == (psipdata()[4] & 3); }
655  bool IsEventETM(void) const { return 2 == (psipdata()[4] & 3); }
656  uint SourceID(void) const
657  { return (psipdata()[1] << 8) | psipdata()[2]; }
658  uint EventID(void) const
659  { return (psipdata()[3] << 6) | (psipdata()[4] >> 2); }
660 
661  // extended_text_message * 14.0 multiple string structure a/65b p81
663  {
664  return MultipleStringStructure(psipdata() + 5);
665  }
666 
667  QString toString() const override; // PSIPTable
668  // CRC_32 32
669 };
670 
679 {
680  public:
682  {
684  }
685  explicit SystemTimeTable(const PSIPTable &table) : PSIPTable(table)
686  {
688  }
689 
690  // Name bits loc expected value
691  // table_id 8 0.0 0xCD
692  // section_syntax_indicator 1 1.0 1
693  // private_indicator 1 1.1 1
694  // reserved 2 1.2 3
695  // section_length 12 1.4
696  // table_id_extension 16 3.0 0
697  // reserved 2 5.0 3
698  // version_number 5 5.2 0
699  // current_next_indicator 1 5.7 1
700  // section_number 8 6.0 0x00
701  // last_section_number 8 7.0 0x00
702  // protocol_version 8 8.0 0x00 for now
703 
704  // system_time 32 9.0
705  uint32_t GPSRaw(void) const
706  {
707  return ((pesdata()[9] <<24) | (pesdata()[10]<<16) |
708  (pesdata()[11]<< 8) | pesdata()[12]);
709  }
710  QDateTime SystemTimeGPS(void) const
711  {
712  return MythDate::fromSecsSinceEpoch(GPS_EPOCH + GPSRaw());
713  }
714  time_t GPSUnix(void) const
715  { return GPS_EPOCH + GPSRaw(); }
716  time_t UTCUnix(void) const
717  { return GPSUnix() - GPSOffset(); }
718 
719  // GPS_UTC_offset 8 13.0
720  uint GPSOffset() const { return pesdata()[13]; }
721  // daylight_savings 16 14.0
722  // DS_status 1 14.0
723  // reserved 2 14.1 3
724  // DS_day_of_month 5 14.3
725  // DS_hour 8 15.0
726  bool InDaylightSavingsTime() const { return ( pesdata()[14]&0x80 ) != 0; }
727  uint DayDaylightSavingsStarts() const { return pesdata()[14]&0x1f; }
728  uint HourDaylightSavingsStarts() const { return pesdata()[15]; }
729  // for (I = 0;I< N;I++) { descriptor() }
730  // CRC_32 32
731 
732  QString toString(void) const override; // PSIPTable
733  QString toStringXML(uint indent_level) const override; // PSIPTable
734 };
735 
740 {
741  public:
743  {
745  }
746  explicit RatingRegionTable(const PSIPTable &table) : PSIPTable(table)
747  {
749  }
750 };
751 
756 {
757  public:
759  : PSIPTable(table)
760  {
762  }
763  explicit DirectedChannelChangeTable(const PSIPTable &table) : PSIPTable(table)
764  {
766  }
767 };
768 
773 {
774  public:
777  : PSIPTable(table)
778  {
780  }
782  : PSIPTable(table)
783  {
785  }
786 };
787 
790 {
791  public:
793  const AggregateEventInformationTable &table) : PSIPTable(table)
794  {
796  }
797  explicit AggregateEventInformationTable(const PSIPTable &table) : PSIPTable(table)
798  {
800  }
801 
802  QString toString(void) const override // PSIPTable
803  { return "AggregateEventInformationTable\n"; }
804  QString toStringXML(uint /*indent_level*/) const override // PSIPTable
805  { return "<AggregateEventInformationTable />"; }
806 };
807 
810 {
811  public:
813  const AggregateExtendedTextTable &table) : PSIPTable(table)
814  {
816  }
817  explicit AggregateExtendedTextTable(const PSIPTable &table) : PSIPTable(table)
818  {
820  }
821 
822  QString toString(void) const override // PSIPTable
823  { return "AggregateExtendedTextTable\n"; }
824  QString toStringXML(uint /*indent_level*/) const override // PSIPTable
825  { return "<AggregateExtendedTextTable />"; }
826 };
827 
828 #endif // ATSC_TABLES_H
VirtualChannelTable::ETMlocation
uint ETMlocation(uint i) const
Definition: atsctables.h:271
VirtualChannelTable::~VirtualChannelTable
~VirtualChannelTable() override
Definition: atsctables.h:203
TerrestrialVirtualChannelTable::TerrestrialVirtualChannelTable
TerrestrialVirtualChannelTable(const TerrestrialVirtualChannelTable &table)
Definition: atsctables.h:348
CableVirtualChannelTable::CableVirtualChannelTable
CableVirtualChannelTable(const CableVirtualChannelTable &table)
Definition: atsctables.h:417
TableClass::kTableTypes
kTableTypes
Definition: atsctables.h:54
VirtualChannelTable
This table contains information about the channels transmitted on this multiplex.
Definition: atsctables.h:189
EventInformationTable::LengthInSeconds
uint LengthInSeconds(uint i) const
Definition: atsctables.h:579
channel
QDomElement channel
Definition: mythplugins/mytharchive/mytharchivehelper/main.cpp:498
bool
bool
Definition: pxsup2dast.c:30
ExtendedTextTable::SourceID
uint SourceID(void) const
Definition: atsctables.h:656
DirectedChannelChangeTable::DirectedChannelChangeTable
DirectedChannelChangeTable(const DirectedChannelChangeTable &table)
Definition: atsctables.h:758
TableID::TVCT
@ TVCT
Definition: mpegtables.h:339
TableID::CVCT
@ CVCT
Definition: mpegtables.h:340
VirtualChannelTable::IsAccessControlled
bool IsAccessControlled(uint i) const
Definition: atsctables.h:276
AggregateExtendedTextTable::toStringXML
QString toStringXML(uint) const override
Definition: atsctables.h:824
RatingRegionTable::RatingRegionTable
RatingRegionTable(const PSIPTable &table)
Definition: atsctables.h:746
PSIPTable::SetTableIDExtension
void SetTableIDExtension(uint len)
Definition: mpegtables.h:542
DirectedChannelChangeTable
No one has had time to decode this table yet...
Definition: atsctables.h:755
EventInformationTable::EventInformationTable
EventInformationTable(const PSIPTable &table)
Definition: atsctables.h:529
EventInformationTable::TitleLength
uint TitleLength(uint i) const
Definition: atsctables.h:585
MasterGuideTable::SCTEMapId
uint SCTEMapId() const
Definition: atsctables.h:102
TableID::DCCSCT
@ DCCSCT
Definition: mpegtables.h:352
RatingRegionTable
No one has had time to decode this table yet...
Definition: atsctables.h:739
EventInformationTable::DescriptorsLength
uint DescriptorsLength(uint i) const
Definition: atsctables.h:594
VirtualChannelTable::VirtualChannelTable
VirtualChannelTable(const PSIPTable &table)
Definition: atsctables.h:197
x2
static int x2
Definition: mythsocket.cpp:61
ExtendedTextTable::ExtendedTextTableID
uint ExtendedTextTableID() const
Definition: atsctables.h:646
TableID::EIT
@ EIT
Definition: mpegtables.h:342
EventInformationTable::~EventInformationTable
~EventInformationTable() override
Definition: atsctables.h:534
mythtvexp.h
SystemTimeTable::SystemTimeTable
SystemTimeTable(const PSIPTable &table)
Definition: atsctables.h:685
MasterGuideTable::GlobalDescriptorsLength
uint GlobalDescriptorsLength() const
Definition: atsctables.h:161
PESPacket::pesdata
const unsigned char * pesdata() const
Definition: pespacket.h:159
CableVirtualChannelTable::SCTEIsChannelNumberOnePart
bool SCTEIsChannelNumberOnePart(uint i) const
Definition: atsctables.h:464
SystemTimeTable::DayDaylightSavingsStarts
uint DayDaylightSavingsStarts() const
Definition: atsctables.h:727
VirtualChannelTable::ShortChannelName
QString ShortChannelName(uint i) const
Definition: atsctables.h:225
TableClass
Definition: atsctables.h:51
VirtualChannelTable::SourceID
uint SourceID(uint i) const
Definition: atsctables.h:299
AggregateExtendedTextTable::toString
QString toString(void) const override
Definition: atsctables.h:822
AggregateExtendedTextTable::AggregateExtendedTextTable
AggregateExtendedTextTable(const AggregateExtendedTextTable &table)
Definition: atsctables.h:812
CableVirtualChannelTable::SCTEMapId
uint SCTEMapId() const
Definition: atsctables.h:443
EventInformationTable::EventCount
uint EventCount() const
Definition: atsctables.h:552
SystemTimeTable::SystemTimeGPS
QDateTime SystemTimeGPS(void) const
Definition: atsctables.h:710
DirectedChannelChangeSelectionCodeTable
No one has had time to decode this table yet...
Definition: atsctables.h:772
VirtualChannelTable::ProgramNumber
uint ProgramNumber(uint i) const
Definition: atsctables.h:266
MasterGuideTable::TableCount
uint TableCount() const
Definition: atsctables.h:114
CableVirtualChannelTable::~CableVirtualChannelTable
~CableVirtualChannelTable() override
Definition: atsctables.h:427
VirtualChannelTable::IsHiddenInGuide
bool IsHiddenInGuide(uint i) const
Definition: atsctables.h:287
AggregateEventInformationTable::toString
QString toString(void) const override
Definition: atsctables.h:802
VirtualChannelTable::Descriptors
const unsigned char * Descriptors(uint i) const
Definition: atsctables.h:310
atscdescriptors.h
VirtualChannelTable::IsHidden
bool IsHidden(uint i) const
Definition: atsctables.h:281
VirtualChannelTable::m_ptrs
vector< unsigned char * > m_ptrs
Definition: atsctables.h:337
TableID::RRT
@ RRT
Definition: mpegtables.h:341
Parse
Definition: rssparse.h:188
x4
static int x4
Definition: mythsocket.cpp:63
VirtualChannelTable::ChannelTransportStreamID
uint ChannelTransportStreamID(uint i) const
Definition: atsctables.h:261
PSIPTable
A PSIP table is a variant of a PES packet containing an MPEG, ATSC or DVB table.
Definition: mpegtables.h:386
VirtualChannelTable::XMLChannelValues
virtual QString XMLChannelValues(uint indent_level, uint channel) const
Definition: atsctables.cpp:305
PSIPTable::toString
virtual QString toString(void) const
Definition: mpegtables.cpp:762
VirtualChannelTable::MajorChannel
uint MajorChannel(uint i) const
Definition: atsctables.h:244
SystemTimeTable::GPSOffset
uint GPSOffset() const
Definition: atsctables.h:720
MythDate::fromSecsSinceEpoch
MBASE_PUBLIC QDateTime fromSecsSinceEpoch(uint seconds)
This function takes the number of seconds since the start of the epoch and returns a QDateTime with t...
Definition: mythdate.cpp:68
mythdate.h
SystemTimeTable::HourDaylightSavingsStarts
uint HourDaylightSavingsStarts() const
Definition: atsctables.h:728
minor
#define minor(X)
Definition: compat.h:138
ExtendedTextTable::~ExtendedTextTable
~ExtendedTextTable() override
Definition: atsctables.h:631
VirtualChannelTable::VirtualChannelTable
VirtualChannelTable(const VirtualChannelTable &table)
Definition: atsctables.h:192
MasterGuideTable::TablePID
uint TablePID(uint i) const
Definition: atsctables.h:128
TerrestrialVirtualChannelTable::TerrestrialVirtualChannelTable
TerrestrialVirtualChannelTable(const PSIPTable &table)
Definition: atsctables.h:353
SystemTimeTable::SystemTimeTable
SystemTimeTable(const SystemTimeTable &table)
Definition: atsctables.h:681
MasterGuideTable::TableVersion
uint TableVersion(uint i) const
Definition: atsctables.h:134
AggregateExtendedTextTable
SCTE 65 & ATSC/81 0xD7.
Definition: atsctables.h:809
MasterGuideTable::TableDescriptorsBytes
uint TableDescriptorsBytes(uint i) const
Definition: atsctables.h:139
MasterGuideTable::MasterGuideTable
MasterGuideTable(const MasterGuideTable &table)
Definition: atsctables.h:77
MasterGuideTable::MasterGuideTable
MasterGuideTable(const PSIPTable &table)
Definition: atsctables.h:82
VirtualChannelTable::ChannelString
virtual QString ChannelString(uint channel) const =0
PSIPTable::toStringXML
virtual QString toStringXML(uint indent_level) const
Definition: mpegtables.cpp:780
MultipleStringStructure
Definition: atscdescriptors.h:19
mpegtables.h
MasterGuideTable::TableDescriptorsLength
uint TableDescriptorsLength(uint i) const
Definition: atsctables.h:146
EventInformationTable
EventInformationTables contain program titles, start times, and channel information.
Definition: atsctables.h:520
EventInformationTable::StartTimeRaw
uint StartTimeRaw(uint i) const
Definition: atsctables.h:562
CableVirtualChannelTable::CableVirtualChannelTable
CableVirtualChannelTable(const PSIPTable &table)
Definition: atsctables.h:422
uint
unsigned int uint
Definition: compat.h:140
MasterGuideTable::~MasterGuideTable
~MasterGuideTable() override
Definition: atsctables.h:87
EventInformationTable::ETMLocation
uint ETMLocation(uint i) const
Definition: atsctables.h:574
TableID::ETT
@ ETT
Definition: mpegtables.h:343
VirtualChannelTable::GlobalDescriptors
const unsigned char * GlobalDescriptors() const
Definition: atsctables.h:323
SystemTimeTable::GPSUnix
time_t GPSUnix(void) const
Definition: atsctables.h:714
DirectedChannelChangeSelectionCodeTable::DirectedChannelChangeSelectionCodeTable
DirectedChannelChangeSelectionCodeTable(const PSIPTable &table)
Definition: atsctables.h:781
DirectedChannelChangeSelectionCodeTable::DirectedChannelChangeSelectionCodeTable
DirectedChannelChangeSelectionCodeTable(const DirectedChannelChangeSelectionCodeTable &table)
Definition: atsctables.h:775
MTV_PUBLIC
#define MTV_PUBLIC
Definition: mythtvexp.h:15
MasterGuideTable
This table tells the decoder on which PIDs to find other tables, and their sizes and each table's cur...
Definition: atsctables.h:74
VirtualChannelTable::DescriptorsLength
uint DescriptorsLength(uint i) const
Definition: atsctables.h:305
TableID::AEIT
@ AEIT
Definition: mpegtables.h:354
CableVirtualChannelTable::IsPathSelect
bool IsPathSelect(uint i) const
Definition: atsctables.h:490
ExtendedTextTable::SetExtendedTextTableID
void SetExtendedTextTableID(uint id)
Definition: atsctables.h:647
VirtualChannelTable::GlobalDescriptorsLength
uint GlobalDescriptorsLength() const
Definition: atsctables.h:317
TerrestrialVirtualChannelTable::~TerrestrialVirtualChannelTable
~TerrestrialVirtualChannelTable() override
Definition: atsctables.h:358
MasterGuideTable::TableDescriptors
const unsigned char * TableDescriptors(uint i) const
Definition: atsctables.h:155
AggregateEventInformationTable
SCTE 65 & ATSC/81 0xD6.
Definition: atsctables.h:789
assert
#define assert(x)
Definition: audiooutputalsa.cpp:20
DirectedChannelChangeTable::DirectedChannelChangeTable
DirectedChannelChangeTable(const PSIPTable &table)
Definition: atsctables.h:763
mythmiscutil.h
ExtendedTextTable::ExtendedTextTable
ExtendedTextTable(const PSIPTable &table)
Definition: atsctables.h:627
TableID::STT
@ STT
Definition: mpegtables.h:344
TableID::DCCT
@ DCCT
Definition: mpegtables.h:351
VirtualChannelTable::ServiceType
uint ServiceType(uint i) const
Definition: atsctables.h:293
TableID::AETT
@ AETT
Definition: mpegtables.h:355
ExtendedTextTable::IsEventETM
bool IsEventETM(void) const
Definition: atsctables.h:655
ExtendedTextTable::ExtendedTextTable
ExtendedTextTable(const ExtendedTextTable &table)
Definition: atsctables.h:623
PSIPTable::TableID
uint TableID(void) const
Definition: mpegtables.h:489
PSIPTable::TableIDExtension
uint TableIDExtension(void) const
Definition: mpegtables.h:506
RatingRegionTable::RatingRegionTable
RatingRegionTable(const RatingRegionTable &table)
Definition: atsctables.h:742
CableVirtualChannelTable::SCTEIsChannelNumberTwoPart
bool SCTEIsChannelNumberTwoPart(uint i) const
Definition: atsctables.h:468
ExtendedTextTable::ExtendedTextMessage
MultipleStringStructure ExtendedTextMessage() const
Definition: atsctables.h:662
TerrestrialVirtualChannelTable
This table contains information about the terrestrial channels transmitted on this multiplex.
Definition: atsctables.h:345
SystemTimeTable::InDaylightSavingsTime
bool InDaylightSavingsTime() const
Definition: atsctables.h:726
MasterGuideTable::GlobalDescriptors
const unsigned char * GlobalDescriptors() const
Definition: atsctables.h:167
EventInformationTable::StartTimeGPS
QDateTime StartTimeGPS(uint i) const
Definition: atsctables.h:567
SystemTimeTable::GPSRaw
uint32_t GPSRaw(void) const
Definition: atsctables.h:705
EventInformationTable::Descriptors
const unsigned char * Descriptors(uint i) const
Definition: atsctables.h:602
CableVirtualChannelTable::SCTEOnePartChannel
uint SCTEOnePartChannel(uint i) const
Definition: atsctables.h:475
AggregateExtendedTextTable::AggregateExtendedTextTable
AggregateExtendedTextTable(const PSIPTable &table)
Definition: atsctables.h:817
CableVirtualChannelTable
This table contains information about the cable channels transmitted on this multiplex.
Definition: atsctables.h:414
EventInformationTable::EventID
uint EventID(uint i) const
Definition: atsctables.h:557
SystemTimeTable
This table contains the GPS time at the time of transmission.
Definition: atsctables.h:678
AggregateEventInformationTable::AggregateEventInformationTable
AggregateEventInformationTable(const PSIPTable &table)
Definition: atsctables.h:797
ExtendedTextTable
ExtendedTextTable contain additional text not contained in EventInformationTables.
Definition: atsctables.h:620
EventInformationTable::title
MultipleStringStructure title(int i) const
Definition: atsctables.h:588
AggregateEventInformationTable::toStringXML
QString toStringXML(uint) const override
Definition: atsctables.h:804
ExtendedTextTable::IsChannelETM
bool IsChannelETM(void) const
Definition: atsctables.h:654
SystemTimeTable::UTCUnix
time_t UTCUnix(void) const
Definition: atsctables.h:716
VirtualChannelTable::ModulationMode
uint ModulationMode(uint i) const
Definition: atsctables.h:254
MasterGuideTable::TableType
uint TableType(uint i) const
Definition: atsctables.h:120
GPS_EPOCH
#define GPS_EPOCH
Seconds between start of GPS time and the start of UNIX time.
Definition: mpegtables.h:31
VirtualChannelTable::ChannelCount
uint ChannelCount() const
Definition: atsctables.h:221
VirtualChannelTable::TransportStreamID
uint TransportStreamID() const
Definition: atsctables.h:218
EventInformationTable::m_ptrs
vector< unsigned char * > m_ptrs
Definition: atsctables.h:612
ExtendedTextTable::EventID
uint EventID(void) const
Definition: atsctables.h:658
EventInformationTable::EventInformationTable
EventInformationTable(const EventInformationTable &table)
Definition: atsctables.h:523
TableID::MGT
@ MGT
Definition: mpegtables.h:338
AggregateEventInformationTable::AggregateEventInformationTable
AggregateEventInformationTable(const AggregateEventInformationTable &table)
Definition: atsctables.h:792
CableVirtualChannelTable::IsOutOfBand
bool IsOutOfBand(uint i) const
Definition: atsctables.h:495
VirtualChannelTable::MinorChannel
uint MinorChannel(uint i) const
Definition: atsctables.h:249
EventInformationTable::SourceID
uint SourceID() const
Definition: atsctables.h:549
PSIPTable::psipdata
const unsigned char * psipdata(void) const
Definition: mpegtables.h:532
MasterGuideTable::m_ptrs
vector< unsigned char * > m_ptrs
Definition: atsctables.h:180