MythTV  master
sctetables.cpp
Go to the documentation of this file.
1 // -*- Mode: c++ -*-
22 #include "libmythbase/stringutil.h"
23 #include "sctetables.h"
24 
26 {
27  return QString("CarrierDefinitionSubtable number_of_carriers(%1)")
28  .arg(NumberOfCarriers()) +
29  QString(" descriptors(%1)").arg(DescriptorsCount());
30 }
31 
32 QString CarrierDefinitionSubtable::toStringXML(uint indent_level) const
33 {
34  QString indent_0 = StringUtil::indentSpaces(indent_level);
35  QString indent_1 = StringUtil::indentSpaces(indent_level + 1);
36  QString str = indent_0 +
37  QString("<CarrierDefinition descriptors_count=\"%2\" ")
38  .arg(DescriptorsCount());
39  str += QString("number_of_carriers=\"%1\"").arg(NumberOfCarriers());
40  str += "\n" + indent_1;
41  str += QString(R"(spacing_unit="%1" spacing_unit_hz="%2")")
42  .arg(SpacingUnit()).arg(SpacingUnitHz());
43  str += "\n" + indent_1;
44  str += QString(R"(frequency_spacing="%1" frequency_spacing_hz="%2")")
45  .arg(FrequencySpacing()).arg(FrequencySpacingHz());
46  str += "\n" + indent_1;
47  str += QString(R"(frequency_unit="%1" frequency_unit_hz="%2")")
48  .arg(FrequencyUnit()).arg(FrequencyUnitHz());
49  str += "\n" + indent_1;
50  str += QString("first_carrier_frequency=\"%1\" "
51  "first_carrier_frequency_hz=\"%2\">\n")
52  .arg(FirstCarrierFrequency())
54 
55  std::vector<const unsigned char*> desc =
57  for (auto & d : desc)
58  {
59  str += MPEGDescriptor(d, 300)
60  .toStringXML(indent_level + 1) + "\n";
61  }
62  return str + indent_0 + "</CarrierDefinition>";
63 }
64 
66 {
67  switch (TransmissionSystem())
68  {
69  case kTSUnknown: return "Unknown";
70  case kTSITUAnnexA: return "Annex A (8 Mhz Global QAM)";
71  case kTSITUAnnexB: return "Annex B (6 Mhz US QAM)";
72  case kTSITUQPSK: return "ITU 1211 (QPSK Satelite)";
73  case kTSATSC: return "ATSC";
74  case kTSDigiCipher: return "DigiCipher II";
75  default: return QString("Reserved(%1)").arg(TransmissionSystem());
76  }
77 }
78 
80 {
81  switch (InnerCodingMode())
82  {
83  case kRate5_11Coding: return "5/11";
84  case kRate1_2Coding: return "1/2";
85  case kRate3_5Coding: return "3/5";
86  case kRate2_3Coding: return "2/3";
87  case kRate3_4Coding: return "3/4";
88  case kRate4_5Coding: return "4/5";
89  case kRate5_6Coding: return "5/6";
90  case kRate7_8Coding: return "7/8";
91  case kNone: return "None";
92  default: return QString("Reserved(%1)").arg(InnerCodingMode());
93  }
94 }
95 
97 {
98  switch (ModulationFormat())
99  {
100  case kUnknown: return "Unknown";
101  case kQPSK: return "QPSK";
102  case kBPSK: return "BPSK";
103  case kOQPSK: return "OQPSK";
104  case kVSB8: return "8-VSB";
105  case kVSB16: return "16-VSB";
106  case kQAM16: return "QAM-16";
107  case kQAM32: return "QAM-32";
108  case kQAM64: return "QAM-64";
109  case kQAM80: return "QAM-80";
110  case kQAM96: return "QAM-96";
111  case kQAM112: return "QAM-112";
112  case kQAM128: return "QAM-128";
113  case kQAM160: return "QAM-160";
114  case kQAM192: return "QAM-192";
115  case kQAM224: return "QAM-224";
116  case kQAM256: return "QAM-256";
117  case kQAM320: return "QAM-320";
118  case kQAM384: return "QAM-384";
119  case kQAM448: return "QAM-448";
120  case kQAM512: return "QAM-512";
121  case kQAM640: return "QAM-640";
122  case kQAM768: return "QAM-768";
123  case kQAM896: return "QAM-896";
124  case kQAM1024: return "QAM-1024";
125  default: return QString("Reserved(%1)").arg(ModulationFormat());
126  }
127 }
128 
130 {
131  return "ModulationMode";
132 }
133 
134 QString ModulationModeSubtable::toStringXML(uint indent_level) const
135 {
136  QString indent_0 = StringUtil::indentSpaces(indent_level);
137  QString indent_1 = StringUtil::indentSpaces(indent_level + 1);
138  QString str = indent_0 +
139  QString("<ModulationMode descriptors_count=\"%2\"")
140  .arg(DescriptorsCount());
141  str += "\n" + indent_1;
142  str += QString(R"(transmission_system="%1" transmission_system_desc="%2")")
144  str += "\n" + indent_1;
145  str += QString(R"(inner_coding_mode="%1" inner_coding_mode_desc="%2")")
146  .arg(InnerCodingMode()).arg(InnerCodingModeString());
147  str += "\n" + indent_1;
148  str += QString("split_bitstream_mode=\"%1\" ")
150  str += QString("symbol_rate=\"%1\"").arg(SymbolRate());
151 
152  std::vector<const unsigned char*> desc =
154 
155  if (desc.empty())
156  return str + " />";
157 
158  str += ">\n";
159  for (auto & d : desc)
160  {
161  str += MPEGDescriptor(d, 300)
162  .toStringXML(indent_level + 1) + "\n";
163  }
164 
165  return str + indent_0 + "</ModulationMode>";
166 }
167 
169 {
170  m_ptrs.clear();
171 
174  {
175  uint offset = (kCarrierDefinitionSubtable == TableSubtype()) ? 6 : 7;
176  const unsigned char *next = pesdata() + 7;
177  for (uint i = 0; i < NumberOfRecords(); i++)
178  {
179  m_ptrs.push_back(next);
180  uint desc_count = next[offset-1];
181  next += offset;
182  for (uint j = 0; j < desc_count; j++)
183  {
184  MPEGDescriptor desc(next);
185  if (!desc.IsValid())
186  {
187  m_ptrs.clear();
188  return false;
189  }
190  next += desc.size();
191  }
192  }
193  m_ptrs.push_back(next);
194  return true;
195  }
196 
197  return false;
198 }
199 
201 {
202  QString str = QString("Network Information Section (SCTE) crc(0x%1)\n")
203  .arg(CRC(),8,16,QChar('0'));
204  str += QString("first_index(%1) number_of_records(%2) table_subtype(%3)\n")
205  .arg(FirstIndex()).arg(NumberOfRecords()).arg(TableSubtype());
207  {
208  for (uint i = 0; i < NumberOfRecords(); i++)
209  str += CarrierDefinition(i).toString() + "\n";
210  }
212  {
213  for (uint i = 0; i < NumberOfRecords(); i++)
214  str += ModulationModeSubtable::toString() + "\n";
215  }
216 
217  return str;
218 }
219 
221 {
222  QString indent_0 = StringUtil::indentSpaces(indent_level);
223  QString indent_1 = StringUtil::indentSpaces(indent_level + 1);
224 
225  QString str = indent_0 + "<SCTENetworkInformationSection psip=\"scte\" ";
226  str += QString("transmission_medium=\"%1\" ").arg(TransmissionMedium());
227  str += QString("first_index=\"%1\" ").arg(FirstIndex());
228  str += "\n" + indent_1;
229  str += QString("number_of_records=\"%1\" ").arg(NumberOfRecords());
230  str += QString("table_subtype=\"%1\"").arg(TableSubtype());
231  str += PSIPTable::XMLValues(indent_level + 1) + ">\n";
232 
234  {
235  for (uint i = 0; i < NumberOfRecords(); i++)
236  str += CarrierDefinition(i).toStringXML(indent_level + 1) + "\n";
237  }
239  {
240  for (uint i = 0; i < NumberOfRecords(); i++)
241  str += ModulationMode(i).toStringXML(indent_level + 1) + "\n";
242  }
243 
244  std::vector<const unsigned char*> desc =
246  for (auto & d : desc)
247  {
248  str += MPEGDescriptor(d, 300)
249  .toStringXML(indent_level + 1) + "\n";
250  }
251 
252  return str + indent_0 + "</SCTENetworkInformationSection>";
253 }
254 
256 
257 void NetworkTextTable::Parse(void) const
258 {
259  // TODO
260 }
261 
262 QString NetworkTextTable::toString(void) const
263 {
264  // TODO
265  return QString("Network Text Section crc(0x%1)\n")
266  .arg(CRC(),8,16,QChar('0'));
267 }
268 
269 QString NetworkTextTable::toStringXML(uint indent_level) const
270 {
271  QString indent_0 = StringUtil::indentSpaces(indent_level);
272 
273  QString str = indent_0 + "<NetworkTextSection ";
274  str += QString("iso_639_language_code=\"%1\" ").arg(LanguageString());
275  str += QString("transmission_medium=\"%1\" ").arg(TransmissionMedium());
276  str += QString("table_subtype=\"%1\"").arg(TableSubtype());
277  return str + " />";
278 
279 /*
280  str += ">\n";
281  vector<const unsigned char*> desc =
282  MPEGDescriptor::Parse(Descriptors(), DescriptorsLength());
283  for (uint i = 0; i < desc.size(); i++)
284  {
285  str += MPEGDescriptor(desc[i], 300)
286  .toStringXML(indent_level + 1) + "\n";
287  }
288 
289  return str + indent_0 + "</NetworkTextSection>";
290 */
291 }
292 
294 
296 {
297  m_ptrs.clear();
298 
300  {
301  m_ptrs.push_back(pesdata() + DefinedChannelsMap().Size() + 7);
302  }
303  else if (kVirtualChannelMap == TableSubtype())
304  {
305  bool descriptors_included = (pesdata()[7] & 0x20) != 0;
306  uint number_of_vc_records = pesdata()[13];
307  const unsigned char *next = pesdata() + 14;
308  const unsigned char *end = pesdata()+Length();
309  bool ok = true;
310 
311  if (!descriptors_included)
312  {
313  for (uint i = 0; i < number_of_vc_records && ok; i++)
314  {
315  if (next + 10 >= end)
316  {
317  ok = false;
318  break;
319  }
320  m_ptrs.push_back(next);
321  next += 9;
322  }
323  m_ptrs.push_back(next);
324  }
325  else
326  {
327  for (uint i = 0; i < number_of_vc_records; i++)
328  {
329  m_ptrs.push_back(next);
330  uint desc_count = next[10];
331  next += 10;
332  for (uint j = 0; j < desc_count; j++)
333  {
334  if (next >= end)
335  {
336  ok = false;
337  break;
338  }
339  MPEGDescriptor desc(next, end-next);
340  if (!desc.IsValid())
341  {
342  m_ptrs.clear();
343  return false;
344  }
345  next += desc.size();
346  }
347  }
348  }
349  m_ptrs.push_back(next);
350  if (!ok || next >= end)
351  {
352  m_ptrs.clear();
353  return false;
354  }
355  }
356  else if (kInverseChannelMap == TableSubtype())
357  {
358  m_ptrs.push_back(pesdata() + InverseChannelMap().Size() + 7);
359  }
360  else
361  {
362  return false;
363  }
364 
365  return true;
366 }
367 
369 {
370  QString indent_0 = StringUtil::indentSpaces(indent_level);
371  QString indent_1 = StringUtil::indentSpaces(indent_level + 1);
372  QString str = indent_0 + "<DefinedChannelsMap ";
373  str += QString("first_virtual_channel=\"%1\" ")
374  .arg(FirstVirtualChannel());
375  str += QString("dcm_data_length=\"%1\">\n")
376  .arg(DCMDataLength());
377 
378  for (uint i = 0; i < DCMDataLength(); i++)
379  {
380  str += indent_1 + QString("<Range range_defined=\"%1\"%2 "
381  "channels_count=\"%3\" />\n")
383  RangeDefined(i) ? " " : "",
384  QString::number(ChannelsCount(i)));
385  }
386 
387  return str + indent_0 + "</DefinedChannelsMap>";
388 }
389 
391 {
392  switch (VideoStandard(i))
393  {
394  case kNTSC: return "NTSC";
395  case kPAL625: return "PAL-625";
396  case kPAL525: return "PAL-525";
397  case kSECAM: return "SECAM";
398  case kMAC: return "MAC";
399  default: return QString("Reserved(%1)").arg(VideoStandard(i));
400  }
401 }
402 
403 QString VirtualChannelMapSubtable::toStringXML(uint indent_level) const
404 {
405  QString indent_0 = StringUtil::indentSpaces(indent_level);
406  QString indent_1 = StringUtil::indentSpaces(indent_level + 1);
407  QString indent_2 = StringUtil::indentSpaces(indent_level + 2);
408  QString str = indent_0 + "<DefinedChannelsMap ";
409  str += QString("number_of_vc_records=\"%1\"")
410  .arg(NumberOfVCRecords());
411  str += "\n" + indent_1;
412  str += QString("descriptors_included=\"%1\" ")
414  str += QString("splice=\"%1\" ")
416  str += "\n" + indent_1;
417  str += QString(R"(activation_time="%1" actication_time_desc="%2")")
418  .arg(ActivationTimeRaw())
420  str += ">\n";
421 
422  for (uint i = 0; i < NumberOfVCRecords(); i++)
423  {
424  str += indent_1 + "<Channel ";
425  str += QString("virtual_channel_number=\"%1\" ")
426  .arg(VirtualChannelNumber(i));
427  str += "\n" + indent_2;
428  str += QString("application_virtual_channel=\"%1\" ")
430  str += QString("path_select=\"%1\" ").arg(PathSelect(i));
431  str += "\n" + indent_2;
432  str += QString(R"(transport_type="%1" transport_type_desc="%2" )")
433  .arg(TransportType(i)).arg(TransportTypeString(i));
434  str += "\n" + indent_2;
435  str += QString(R"(channel_type="%1" channel_type_desc="%2" )")
436  .arg(ChannelType(i)).arg(ChannelTypeString(i));
438  str += QString("application_id=\"%1\" ").arg(ApplicationID(i));
439  else
440  str += QString("source_id=\"%1\" ").arg(SourceID(i));
441  str += "\n" + indent_2;
442  if (kMPEG2Transport == TransportType(i))
443  {
444  str += QString("cds_reference=\"%1\" ").arg(CDSReference(i));
445  str += QString("program_number=\"%1\" ").arg(ProgramNumber(i));
446  str += QString("mms_reference=\"%1\" ").arg(MMSReference(i));
447  }
448  else
449  {
450  str += QString("cds_reference=\"%1\" ").arg(CDSReference(i));
451  str += QString("scrampled=\"%1\" ").arg(static_cast<int>(Scrambled(i)));
452  str += "\n" + indent_2;
453  str += QString(R"(video_standard="%1" video_standard_desc="%2" )")
454  .arg(VideoStandard(i)).arg(VideoStandardString(i));
455  }
456  if (!DescriptorsIncluded())
457  {
458  str += "/>\n";
459  continue;
460  }
461 
462  str += "\n" + indent_2;
463  str += QString("descriptors_count=\"%1\"").arg(DescriptorsCount(i));
464  str += ">\n";
465 
466  std::vector<const unsigned char*> desc =
468  for (auto & d : desc)
469  {
470  str += MPEGDescriptor(d, 300)
471  .toStringXML(indent_level + 2) + "\n";
472  }
473  str += indent_1 + "</Channel>";
474  }
475 
476  return str + indent_0 + "</DefinedChannelsMap>";
477 }
478 
479 QString InverseChannelMapSubtable::toStringXML(uint indent_level) const
480 {
481  QString indent_0 = StringUtil::indentSpaces(indent_level);
482  QString indent_1 = StringUtil::indentSpaces(indent_level + 1);
483  QString str = indent_0 + "<InverseChannelMap ";
484  str += QString("first_map_index=\"%1\" ")
485  .arg(FirstMapIndex());
486  str += QString("record_count=\"%1\">\n")
487  .arg(RecordCount());
488 
489  for (uint i = 0; i < RecordCount(); i++)
490  {
491  str += indent_1 + QString("<Map source_id=\"%1\" "
492  "virtual_channel_number=\"%2\" />\n")
493  .arg(SourceID(i)).arg(VirtualChannelNumber(i));
494  }
495 
496  return str + indent_0 + "</InverseChannelMap>";
497 }
498 
500 {
501  switch (TableSubtype())
502  {
503  case kVirtualChannelMap: return "Virtual Channel Map";
504  case kDefinedChannelsMap: return "Defined Channels Map";
505  case kInverseChannelMap: return "Inverse Channel Map";
506  default: return QString("Reserved(%1)").arg(TableSubtype());
507  }
508 }
509 
511 {
512  // TODO
513  return QString("Short Virtual Channel Section ID(%1) crc(0x%2)\n")
514  .arg(ID()).arg(CRC(),8,16,QChar('0'));
515 }
516 
517 QString ShortVirtualChannelTable::toStringXML(uint indent_level) const
518 {
519  QString indent_0 = StringUtil::indentSpaces(indent_level);
520  QString indent_1 = StringUtil::indentSpaces(indent_level + 1);
521  QString str = indent_0 +
522  QString("<ShortVirtualChannelSection vct_id=\"%1\" ").arg(ID());
523  str += QString("transmission_medium=\"%1\" ").arg(TransmissionMedium());
524  str += "\n" + indent_1;
525  str += QString(R"(table_subtype="%1" table_subtype_desc="%2")")
526  .arg(TableSubtype()).arg(TableSubtypeString());
527  str += "\n" + indent_1 + PSIPTable::XMLValues(indent_level + 1) + ">\n";
528 
530  str += DefinedChannelsMap().toStringXML(indent_level + 1) + "\n";
531  else if (kVirtualChannelMap == TableSubtype())
532  str += VirtualChannelMap().toStringXML(indent_level + 1) + "\n";
533  else if (kInverseChannelMap == TableSubtype())
534  str += InverseChannelMap().toStringXML(indent_level + 1) + "\n";
535 
536  std::vector<const unsigned char*> desc =
538  for (auto & d : desc)
539  {
540  str += MPEGDescriptor(d, 300)
541  .toStringXML(indent_level + 1) + "\n";
542  }
543 
544  return str + indent_0 + "</ShortVirtualChannelSection>";
545 }
546 
548 
549 QString SCTESystemTimeTable::toString(void) const
550 {
551  QString str =
552  QString("SystemTimeSection (SCTE) raw(%1) GPS_UTC_Offset(%2) utc(%3_")
553  .arg(SystemTimeRaw()).arg(GPSUTCOffset())
555  return str;
556 }
557 
558 QString SCTESystemTimeTable::toStringXML(uint indent_level) const
559 {
560  QString indent_0 = StringUtil::indentSpaces(indent_level);
561  QString indent_1 = StringUtil::indentSpaces(indent_level + 1);
562  QString str = indent_0 +
563  QString("<SCTESystemTimeSection system_time=\"%1\" "
564  "gps_utc_offset=\"%2\"\n%3utc_time_desc=\"%4\" psip=\"scte\"")
565  .arg(SystemTimeRaw()).arg(GPSUTCOffset())
566  .arg(indent_1,
568 
569  if (!DescriptorsLength())
570  return str + " />";
571 
572  str += ">\n";
573 
574  std::vector<const unsigned char*> desc =
576  for (auto & d : desc)
577  {
578  str += MPEGDescriptor(d, 300)
579  .toStringXML(indent_level + 1) + "\n";
580  }
581 
582  return str + indent_0 + "</SCTESystemTimeSection>";
583 }
584 
586 
588 {
589  // TODO
590  return "Aggregate Data Event Section\n";
591 }
592 
593 QString AggregateDataEventTable::toStringXML(uint /*indent_level*/) const
594 {
595  // TODO
596  return "<AggregateDataEventSection />";
597 }
CarrierDefinitionSubtable::NumberOfCarriers
uint NumberOfCarriers(void) const
Definition: sctetables.h:49
InverseChannelMapSubtable::VirtualChannelNumber
uint VirtualChannelNumber(uint i) const
Definition: sctetables.h:484
VirtualChannelMapSubtable::kMPEG2Transport
@ kMPEG2Transport
Definition: sctetables.h:403
DefinedChannelsMapSubtable::FirstVirtualChannel
uint FirstVirtualChannel(void) const
Definition: sctetables.h:332
SCTESystemTimeTable::SystemTimeRaw
uint32_t SystemTimeRaw(void) const
Definition: sctetables.h:587
MythDate::toString
QString toString(const QDateTime &raw_dt, uint format)
Returns formatted string representing the time.
Definition: mythdate.cpp:84
VirtualChannelMapSubtable::Splice
bool Splice(void) const
Definition: sctetables.h:363
ModulationModeSubtable::kQAM384
@ kQAM384
Definition: sctetables.h:157
ShortVirtualChannelTable::DescriptorsLength
uint DescriptorsLength(void) const
Definition: sctetables.h:548
VirtualChannelMapSubtable::DescriptorsIncluded
bool DescriptorsIncluded(void) const
Definition: sctetables.h:360
DefinedChannelsMapSubtable::toStringXML
QString toStringXML(uint indent_level) const
Definition: sctetables.cpp:368
ShortVirtualChannelTable::toStringXML
QString toStringXML(uint indent_level) const override
Definition: sctetables.cpp:517
VirtualChannelMapSubtable::ApplicationVirtualChannel
bool ApplicationVirtualChannel(uint i) const
Definition: sctetables.h:389
SCTESystemTimeTable::Descriptors
const unsigned char * Descriptors(void) const
Definition: sctetables.h:613
SCTESystemTimeTable::toString
QString toString(void) const override
Definition: sctetables.cpp:549
ModulationModeSubtable::toString
static QString toString(void)
Definition: sctetables.cpp:129
SCTENetworkInformationTable::NumberOfRecords
uint NumberOfRecords(void) const
Definition: sctetables.h:218
VirtualChannelMapSubtable::VideoStandardString
QString VideoStandardString(uint i) const
Definition: sctetables.cpp:390
ModulationModeSubtable::kVSB16
@ kVSB16
Definition: sctetables.h:144
NetworkTextTable::toString
QString toString(void) const override
Definition: sctetables.cpp:262
VirtualChannelMapSubtable::TransportTypeString
QString TransportTypeString(uint i) const
Definition: sctetables.h:407
VirtualChannelMapSubtable::NumberOfVCRecords
uint NumberOfVCRecords(void) const
Definition: sctetables.h:381
ModulationModeSubtable::kQAM16
@ kQAM16
Definition: sctetables.h:145
PESPacket::pesdata
const unsigned char * pesdata() const
Definition: pespacket.h:166
ModulationModeSubtable::kOQPSK
@ kOQPSK
Definition: sctetables.h:142
SCTESystemTimeTable::GPSUTCOffset
uint GPSUTCOffset(void) const
Definition: sctetables.h:609
ModulationModeSubtable::kQAM128
@ kQAM128
Definition: sctetables.h:151
ShortVirtualChannelTable::toString
QString toString(void) const override
Definition: sctetables.cpp:510
CarrierDefinitionSubtable::SpacingUnit
uint SpacingUnit(void) const
Definition: sctetables.h:56
ModulationModeSubtable::ModulationFormat
uint ModulationFormat(void) const
Definition: sctetables.h:166
ModulationModeSubtable::kQAM448
@ kQAM448
Definition: sctetables.h:158
ShortVirtualChannelTable::TransmissionMedium
uint TransmissionMedium(void) const
Definition: sctetables.h:520
SCTENetworkInformationTable::Descriptors
const unsigned char * Descriptors(void) const
Definition: sctetables.h:244
ModulationModeSubtable::ModulationFormatString
QString ModulationFormatString(void) const
Definition: sctetables.cpp:96
VirtualChannelMapSubtable::ProgramNumber
uint ProgramNumber(uint i) const
Definition: sctetables.h:430
ModulationModeSubtable::kQAM640
@ kQAM640
Definition: sctetables.h:160
StringUtil::indentSpaces
QString indentSpaces(unsigned int level, unsigned int size=4)
Definition: stringutil.h:33
ModulationModeSubtable::Descriptors
const unsigned char * Descriptors(void) const
Definition: sctetables.h:181
SCTENetworkInformationTable::Parse
bool Parse(void)
Definition: sctetables.cpp:168
ShortVirtualChannelTable::DefinedChannelsMap
DefinedChannelsMapSubtable DefinedChannelsMap(void) const
Definition: sctetables.h:534
VirtualChannelMapSubtable::ChannelType
uint ChannelType(uint i) const
Definition: sctetables.h:416
CarrierDefinitionSubtable::DescriptorsCount
uint DescriptorsCount(void) const
Definition: sctetables.h:74
ModulationModeSubtable::kNone
@ kNone
Definition: sctetables.h:128
ModulationModeSubtable::kRate1_2Coding
@ kRate1_2Coding
Definition: sctetables.h:114
VirtualChannelMapSubtable::ChannelTypeString
QString ChannelTypeString(uint i) const
Definition: sctetables.h:417
ShortVirtualChannelTable::TableSubtypeString
QString TableSubtypeString(void) const
Definition: sctetables.cpp:499
VirtualChannelMapSubtable::kPAL525
@ kPAL525
Definition: sctetables.h:443
ModulationModeSubtable::kQAM160
@ kQAM160
Definition: sctetables.h:152
ModulationModeSubtable::kQAM768
@ kQAM768
Definition: sctetables.h:161
CarrierDefinitionSubtable::toStringXML
QString toStringXML(uint indent_level) const
Definition: sctetables.cpp:32
ShortVirtualChannelTable::kInverseChannelMap
@ kInverseChannelMap
Definition: sctetables.h:526
VirtualChannelMapSubtable::MMSReference
uint MMSReference(uint i) const
Definition: sctetables.h:432
ModulationModeSubtable::InnerCodingMode
uint InnerCodingMode(void) const
Definition: sctetables.h:131
NetworkTextTable::toStringXML
QString toStringXML(uint indent_level) const override
Definition: sctetables.cpp:269
sctetables.h
MPEGDescriptor::IsValid
bool IsValid(void) const
Definition: mpegdescriptors.h:342
SCTENetworkInformationTable::toString
QString toString(void) const override
Definition: sctetables.cpp:200
VirtualChannelMapSubtable::ActivationTimeUTC
QDateTime ActivationTimeUTC(uint offset=0) const
Definition: sctetables.h:374
ModulationModeSubtable::kQAM32
@ kQAM32
Definition: sctetables.h:146
VirtualChannelMapSubtable::TransportType
uint TransportType(uint i) const
Definition: sctetables.h:406
MPEGDescriptor::toStringXML
virtual QString toStringXML(uint indent_level) const
Returns XML representation of string the TS Reader XML format.
Definition: mpegdescriptors.cpp:708
CarrierDefinitionSubtable::FrequencyUnitHz
uint FrequencyUnitHz(void) const
Definition: sctetables.h:66
ModulationModeSubtable::TransmissionSystem
uint TransmissionSystem(void) const
Definition: sctetables.h:108
ModulationModeSubtable::DescriptorsLength
uint DescriptorsLength(void) const
Definition: sctetables.h:180
ModulationModeSubtable::kQAM256
@ kQAM256
Definition: sctetables.h:155
ModulationModeSubtable::SymbolRate
uint SymbolRate(void) const
Definition: sctetables.h:170
MPEGDescriptor::Parse
static desc_list_t Parse(const unsigned char *data, uint len)
Definition: mpegdescriptors.cpp:17
SCTENetworkInformationTable::FirstIndex
uint FirstIndex(void) const
Definition: sctetables.h:216
SCTENetworkInformationTable::kModulationModeSubtable
@ kModulationModeSubtable
Definition: sctetables.h:226
ShortVirtualChannelTable::Parse
bool Parse(void)
Definition: sctetables.cpp:295
MPEGDescriptor
Definition: mpegdescriptors.h:302
CarrierDefinitionSubtable::FirstCarrierFrequency
uint FirstCarrierFrequency(void) const
Definition: sctetables.h:68
CarrierDefinitionSubtable::FrequencyUnit
uint FrequencyUnit(void) const
Definition: sctetables.h:65
ModulationModeSubtable::toStringXML
QString toStringXML(uint indent_level) const
Definition: sctetables.cpp:134
ModulationModeSubtable::kQAM896
@ kQAM896
Definition: sctetables.h:162
CarrierDefinitionSubtable::FrequencySpacingHz
uint FrequencySpacingHz(void) const
Definition: sctetables.h:62
ShortVirtualChannelTable::VirtualChannelMap
VirtualChannelMapSubtable VirtualChannelMap(void) const
Definition: sctetables.h:538
stringutil.h
ModulationModeSubtable::kQAM80
@ kQAM80
Definition: sctetables.h:148
VirtualChannelMapSubtable::kSECAM
@ kSECAM
Definition: sctetables.h:444
CarrierDefinitionSubtable::SpacingUnitHz
uint SpacingUnitHz(void) const
Definition: sctetables.h:57
DefinedChannelsMapSubtable::RangeDefined
bool RangeDefined(uint i) const
Definition: sctetables.h:339
VirtualChannelMapSubtable::Descriptors
const unsigned char * Descriptors(uint i) const
Definition: sctetables.h:458
ModulationModeSubtable::kBPSK
@ kBPSK
Definition: sctetables.h:141
PESPacket::Length
uint Length() const
Definition: pespacket.h:101
ModulationModeSubtable::kQAM512
@ kQAM512
Definition: sctetables.h:159
VirtualChannelMapSubtable::kNTSC
@ kNTSC
Definition: sctetables.h:441
SCTESystemTimeTable::DescriptorsLength
uint DescriptorsLength(void) const
Definition: sctetables.h:611
ModulationModeSubtable::kTSITUAnnexA
@ kTSITUAnnexA
Specified in Annex A of ITU Rec. J.83.
Definition: sctetables.h:98
VirtualChannelMapSubtable::Scrambled
bool Scrambled(uint i) const
Definition: sctetables.h:436
ModulationModeSubtable::kVSB8
@ kVSB8
Definition: sctetables.h:143
VirtualChannelMapSubtable::kMAC
@ kMAC
Definition: sctetables.h:445
ModulationModeSubtable::kQAM96
@ kQAM96
Definition: sctetables.h:149
VirtualChannelMapSubtable::SourceID
uint SourceID(uint i) const
Definition: sctetables.h:424
CarrierDefinitionSubtable::DescriptorsLength
uint DescriptorsLength(void) const
Definition: sctetables.h:78
uint
unsigned int uint
Definition: compat.h:81
ModulationModeSubtable::kRate3_5Coding
@ kRate3_5Coding
Definition: sctetables.h:116
VirtualChannelMapSubtable::VideoStandard
uint VideoStandard(uint i) const
Definition: sctetables.h:448
SCTENetworkInformationTable::TransmissionMedium
uint TransmissionMedium(void) const
Definition: sctetables.h:220
ModulationModeSubtable::kQAM112
@ kQAM112
Definition: sctetables.h:150
ModulationModeSubtable::kRate5_6Coding
@ kRate5_6Coding
Definition: sctetables.h:122
ModulationModeSubtable::kQAM320
@ kQAM320
Definition: sctetables.h:156
ModulationModeSubtable::kTSUnknown
@ kTSUnknown
Definition: sctetables.h:97
ModulationModeSubtable::kTSATSC
@ kTSATSC
Definition: sctetables.h:101
VirtualChannelMapSubtable::ApplicationID
uint ApplicationID(uint i) const
Definition: sctetables.h:421
ShortVirtualChannelTable::kVirtualChannelMap
@ kVirtualChannelMap
Definition: sctetables.h:524
VirtualChannelMapSubtable::DescriptorsLength
uint DescriptorsLength(uint i) const
Definition: sctetables.h:457
ShortVirtualChannelTable::InverseChannelMap
InverseChannelMapSubtable InverseChannelMap(void) const
Definition: sctetables.h:542
NetworkTextTable::Parse
void Parse(void) const
Definition: sctetables.cpp:257
MPEGDescriptor::size
uint size(void) const
Definition: mpegdescriptors.h:343
DefinedChannelsMapSubtable::DCMDataLength
uint DCMDataLength(void) const
Definition: sctetables.h:336
VirtualChannelMapSubtable::toStringXML
QString toStringXML(uint indent_level) const
Definition: sctetables.cpp:403
InverseChannelMapSubtable::toStringXML
QString toStringXML(uint indent_level) const
Definition: sctetables.cpp:479
ModulationModeSubtable::kRate4_5Coding
@ kRate4_5Coding
Definition: sctetables.h:121
ShortVirtualChannelTable::TableSubtype
uint TableSubtype(void) const
Definition: sctetables.h:529
ModulationModeSubtable::kQAM1024
@ kQAM1024
Definition: sctetables.h:163
ModulationModeSubtable::kQAM64
@ kQAM64
Definition: sctetables.h:147
ModulationModeSubtable::kQAM192
@ kQAM192
Definition: sctetables.h:153
ModulationModeSubtable::kRate5_11Coding
@ kRate5_11Coding
Definition: sctetables.h:113
ModulationModeSubtable::kRate2_3Coding
@ kRate2_3Coding
Definition: sctetables.h:118
VirtualChannelMapSubtable::DescriptorsCount
uint DescriptorsCount(uint i) const
Definition: sctetables.h:454
PESPacket::CRC
uint CRC(void) const
Definition: pespacket.h:191
CarrierDefinitionSubtable::Descriptors
const unsigned char * Descriptors(void) const
Definition: sctetables.h:79
SCTENetworkInformationTable::ModulationMode
ModulationModeSubtable ModulationMode(uint i) const
Definition: sctetables.h:235
CarrierDefinitionSubtable::FrequencySpacing
uint FrequencySpacing(void) const
Definition: sctetables.h:60
VirtualChannelMapSubtable::kPAL625
@ kPAL625
Definition: sctetables.h:442
MythDate::ISODate
@ ISODate
Default UTC.
Definition: mythdate.h:17
ModulationModeSubtable::kRate3_4Coding
@ kRate3_4Coding
Definition: sctetables.h:120
SCTESystemTimeTable::SystemTimeUTC
QDateTime SystemTimeUTC(void) const
Definition: sctetables.h:598
ModulationModeSubtable::kTSDigiCipher
@ kTSDigiCipher
from SCTE 57 – DigiCipher II
Definition: sctetables.h:102
NetworkTextTable::TableSubtype
uint TableSubtype(void) const
Definition: sctetables.h:299
ShortVirtualChannelTable::ID
uint ID(void) const
Definition: sctetables.h:532
DefinedChannelsMapSubtable::ChannelsCount
uint ChannelsCount(uint i) const
Definition: sctetables.h:341
CarrierDefinitionSubtable::FirstCarrierFrequencyHz
uint64_t FirstCarrierFrequencyHz(void) const
Definition: sctetables.h:70
SCTENetworkInformationTable::CarrierDefinition
CarrierDefinitionSubtable CarrierDefinition(uint i) const
Definition: sctetables.h:232
SCTENetworkInformationTable::toStringXML
QString toStringXML(uint indent_level) const override
Definition: sctetables.cpp:220
VirtualChannelMapSubtable::VirtualChannelNumber
uint VirtualChannelNumber(uint i) const
Definition: sctetables.h:386
ShortVirtualChannelTable::m_ptrs
std::vector< const unsigned char * > m_ptrs
Definition: sctetables.h:559
NetworkTextTable::LanguageString
QString LanguageString(void) const
Definition: sctetables.h:284
PSIPTable::XMLValues
QString XMLValues(uint indent_level) const
Definition: mpegtables.cpp:787
ModulationModeSubtable::kTSITUQPSK
@ kTSITUQPSK
ITU-R Rec. BO.1211:1995 (QPSK)
Definition: sctetables.h:100
ShortVirtualChannelTable::kDefinedChannelsMap
@ kDefinedChannelsMap
Definition: sctetables.h:525
SCTESystemTimeTable::toStringXML
QString toStringXML(uint indent_level) const override
Definition: sctetables.cpp:558
ModulationModeSubtable::kQAM224
@ kQAM224
Definition: sctetables.h:154
VirtualChannelMapSubtable::PathSelect
uint PathSelect(uint i) const
Definition: sctetables.h:397
d
static const iso6937table * d
Definition: iso6937tables.cpp:1025
SCTENetworkInformationTable::m_ptrs
std::vector< const unsigned char * > m_ptrs
Definition: sctetables.h:252
InverseChannelMapSubtable::FirstMapIndex
uint FirstMapIndex(void) const
Definition: sctetables.h:475
SCTENetworkInformationTable::DescriptorsLength
uint DescriptorsLength(void) const
Definition: sctetables.h:242
ModulationModeSubtable::kQPSK
@ kQPSK
Definition: sctetables.h:140
ModulationModeSubtable::kTSITUAnnexB
@ kTSITUAnnexB
Specified in Annex B of ITU Rec. J.83.
Definition: sctetables.h:99
CarrierDefinitionSubtable::toString
QString toString(void) const
SCTE System information tables.
Definition: sctetables.cpp:25
StringUtil::bool_to_string
QString bool_to_string(bool val)
This is equivalent to QVariant(bool).toString()
Definition: stringutil.h:41
AggregateDataEventTable::toString
QString toString(void) const override
Definition: sctetables.cpp:587
ModulationModeSubtable::DescriptorsCount
uint DescriptorsCount(void) const
Definition: sctetables.h:176
ModulationModeSubtable::kRate7_8Coding
@ kRate7_8Coding
Definition: sctetables.h:124
VirtualChannelMapSubtable::CDSReference
uint CDSReference(uint i) const
Definition: sctetables.h:428
ModulationModeSubtable::TransmissionSystemString
QString TransmissionSystemString(void) const
Definition: sctetables.cpp:65
ShortVirtualChannelTable::Descriptors
const unsigned char * Descriptors(void) const
Definition: sctetables.h:550
SCTENetworkInformationTable::kCarrierDefinitionSubtable
@ kCarrierDefinitionSubtable
Definition: sctetables.h:225
InverseChannelMapSubtable::RecordCount
uint RecordCount(void) const
Definition: sctetables.h:478
ModulationModeSubtable::SplitBitstreamMode
bool SplitBitstreamMode(void) const
Definition: sctetables.h:134
VirtualChannelMapSubtable::ActivationTimeRaw
uint ActivationTimeRaw(void) const
Definition: sctetables.h:366
InverseChannelMapSubtable::SourceID
uint SourceID(uint i) const
Definition: sctetables.h:481
SCTENetworkInformationTable::TableSubtype
uint TableSubtype(void) const
Definition: sctetables.h:229
ModulationModeSubtable::InnerCodingModeString
QString InnerCodingModeString(void) const
Definition: sctetables.cpp:79
NetworkTextTable::TransmissionMedium
uint TransmissionMedium(void) const
Definition: sctetables.h:291
ModulationModeSubtable::kUnknown
@ kUnknown
Definition: sctetables.h:139
AggregateDataEventTable::toStringXML
QString toStringXML(uint indent_level) const override
Definition: sctetables.cpp:593