52 const unsigned char *beg,
const unsigned char *end) :
53 m_beg(beg), m_end(end) { }
68 {
return ((m_beg[1] & 0x3) << 8) | m_beg[2]; }
70 {
return FrequencySpacing() * SpacingUnitHz(); }
76 {
return ((m_beg[3] & 0x3) << 8) | m_beg[4]; }
78 {
return (uint64_t)FirstCarrierFrequency() * FrequencyUnitHz(); }
86 const unsigned char *
Descriptors(
void)
const {
return m_beg + 6; }
89 QString toStringXML(
uint indent_level)
const;
179 return (((
m_beg[2]&0xf)<<24) | (
m_beg[3]<<16) |
232 kCarrierDefinitionSubtable = 0x1,
233 kModulationModeSubtable = 0x2,
240 {
return {m_ptrs[i], m_ptrs[i+1]}; }
243 {
return {m_ptrs[i], m_ptrs[i+1]}; }
250 {
return SectionLength() - (m_ptrs.back() - pesdata()) - 4; }
251 const unsigned char *
Descriptors(
void)
const {
return m_ptrs.back(); }
255 QString
toString(
void)
const override;
256 QString toStringXML(
uint indent_level)
const override;
259 std::vector<const unsigned char*>
m_ptrs;
303 kSourceNameSubtable = 0x6,
328 void Parse(
void)
const;
329 QString
toString(
void)
const override;
330 QString toStringXML(
uint indent_level)
const override;
340 {
return ((m_data[7]<<8) | m_data[8]) & 0xfff; }
351 QString toStringXML(
uint indent_level)
const;
352 uint Size(
void)
const {
return DCMDataLength() + 3; }
362 const unsigned char *data,
const std::vector<const unsigned char*> &ptrs) :
394 {
return ((
_ptrs[i][0]<<8) |
_ptrs[i][1]) & 0xfff; }
406 {
return PathSelect(i) ?
"Path 2" :
"Path 1"; }
473 const std::vector<const unsigned char*> &
_ptrs;
492 {
return ((m_data[12+(i*4)]<<8) | m_data[13+(i*4)]) & 0xfff; }
495 QString toStringXML(
uint indent_level)
const;
496 uint Size(
void)
const {
return (RecordCount() * 4) + 3; }
531 kVirtualChannelMap = 0x0,
532 kDefinedChannelsMap = 0x1,
533 kInverseChannelMap = 0x2,
537 QString TableSubtypeString(
void)
const;
539 uint ID(
void)
const {
return (pesdata()[5]<<8) | pesdata()[6]; }
546 {
return { pesdata(), m_ptrs}; }
556 {
return SectionLength() - (m_ptrs.back() - pesdata()) - 4; }
557 const unsigned char *
Descriptors(
void)
const {
return m_ptrs.back(); }
562 QString
toString(
void)
const override;
563 QString toStringXML(
uint indent_level)
const override;
566 std::vector<const unsigned char*>
m_ptrs;
596 return ((pesdata()[5] <<24) | (pesdata()[6]<<16) |
597 (pesdata()[7]<< 8) | pesdata()[8]);
602 dt.setSecsSinceEpoch(GPSUnix());
608 dt.setSecsSinceEpoch(UTCUnix());
614 {
return GPSUnix() - GPSUTCOffset(); }
619 {
return SectionLength() - 10 - 4; }
620 const unsigned char *
Descriptors(
void)
const {
return pesdata() + 10; }
624 QString
toString(
void)
const override;
625 QString toStringXML(
uint indent_level)
const override;
643 {
return "Program Information Message\n"; }
645 {
return "<ProgramInformationMessage />"; }
663 {
return "Program Name Message\n"; }
665 {
return "<ProgramNameMessage />"; }
682 QString
toString(
void)
const override;
683 QString toStringXML(
uint indent_level)
const override;
AggregateDataEventTable(const AggregateDataEventTable &table)
AggregateDataEventTable(const PSIPTable &table)
uint FrequencySpacing(void) const
uint DescriptorsCount(void) const
const unsigned char * Descriptors(void) const
uint SpacingUnitHz(void) const
uint DescriptorsLength(void) const
uint FrequencySpacingHz(void) const
uint64_t FirstCarrierFrequencyHz(void) const
const unsigned char * m_end
uint NumberOfCarriers(void) const
const unsigned char * m_beg
uint FrequencyUnitHz(void) const
uint SpacingUnit(void) const
uint FirstCarrierFrequency(void) const
uint FrequencyUnit(void) const
CarrierDefinitionSubtable(const unsigned char *beg, const unsigned char *end)
uint FirstVirtualChannel(void) const
const unsigned char * m_data
DefinedChannelsMapSubtable(const unsigned char *data)
bool RangeDefined(uint i) const
uint ChannelsCount(uint i) const
uint DCMDataLength(void) const
uint SourceID(uint i) const
uint RecordCount(void) const
uint FirstMapIndex(void) const
uint VirtualChannelNumber(uint i) const
const unsigned char * m_data
InverseChannelMapSubtable(const unsigned char *data)
uint TransmissionSystem(void) const
ModulationModeSubtable(const unsigned char *beg, const unsigned char *end)
uint InnerCodingMode(void) const
uint DescriptorsCount(void) const
static QString toString(void)
@ kTSITUAnnexB
Specified in Annex B of ITU Rec. J.83.
@ kTSITUQPSK
ITU-R Rec. BO.1211:1995 (QPSK)
@ kTSDigiCipher
from SCTE 57 – DigiCipher II
@ kTSITUAnnexA
Specified in Annex A of ITU Rec. J.83.
QString InnerCodingModeString(void) const
const unsigned char * m_beg
const unsigned char * Descriptors(void) const
uint ModulationFormat(void) const
uint DescriptorsLength(void) const
uint SymbolRate(void) const
bool SplitBitstreamMode(void) const
QString ModulationFormatString(void) const
QString TransmissionSystemString(void) const
QString toStringXML(uint indent_level) const
const unsigned char * m_end
NetworkTextTable(const NetworkTextTable &table)
int CanonicalLanguageKey(void) const
QString LanguageString(void) const
uint TableSubtype(void) const
int LanguageKey(void) const
QString CanonicalLanguageString(void) const
~NetworkTextTable() override
NetworkTextTable(const PSIPTable &table)
uint TransmissionMedium(void) const
A PSIP table is a variant of a PES packet containing an MPEG, ATSC or DVB table.
QString toStringXML(uint) const override
QString toString(void) const override
ProgramNameMessageTable(const PSIPTable &table)
ProgramNameMessageTable(const ProgramNameMessageTable &table)
ShortVirtualChannelTable(const PSIPTable &table)
DefinedChannelsMapSubtable DefinedChannelsMap(void) const
uint TableSubtype(void) const
VirtualChannelMapSubtable VirtualChannelMap(void) const
ShortVirtualChannelTable(const ShortVirtualChannelTable &table)
InverseChannelMapSubtable InverseChannelMap(void) const
const unsigned char * Descriptors(void) const
uint DescriptorsLength(void) const
~ShortVirtualChannelTable() override
uint TransmissionMedium(void) const
std::vector< const unsigned char * > m_ptrs
Contains listing of Table ID's for various tables (PAT=0,PMT=2,etc).
QDateTime ActivationTimeUTC(uint offset=0) const
uint MMSReference(uint i) const
uint NumberOfVCRecords(void) const
uint ProgramNumber(uint i) const
uint VirtualChannelNumber(uint i) const
uint VideoStandard(uint i) const
uint CDSReference(uint i) const
QString VideoStandardString(uint i) const
uint ApplicationID(uint i) const
bool Scrambled(uint i) const
QString TransportTypeString(uint i) const
uint DescriptorsLength(uint i) const
uint TransportType(uint i) const
VirtualChannelMapSubtable(const unsigned char *data, const std::vector< const unsigned char * > &ptrs)
uint DescriptorsCount(uint i) const
QString PathSelectString(uint i) const
QString ChannelTypeString(uint i) const
uint PathSelect(uint i) const
const std::vector< const unsigned char * > & _ptrs
uint SourceID(uint i) const
uint ChannelType(uint i) const
bool ApplicationVirtualChannel(uint i) const
const unsigned char * m_data
uint ActivationTimeRaw(void) const
const unsigned char * Descriptors(uint i) const
QString toStringXML(uint indent_level) const
bool DescriptorsIncluded(void) const
int iso639_key_to_canonical_key(int iso639_2)
ISO 639-1 and ISO 639-2 support functions.
static QString iso639_key_to_str3(int code)
static int iso639_str3_to_key(const unsigned char *iso639_2)
static constexpr qint64 GPS_EPOCH
Seconds between start of GPS time and the start of UNIX time.
QString toString(const QDateTime &raw_dt, uint format)
Returns formatted string representing the time.