111 return (pesdata()[3]<<8) | pesdata()[4];
127 return (m_ptrs[i][0]<<8) | m_ptrs[i][1];
130 QString TableClassString(
uint i)
const;
135 return ((m_ptrs[i][2]<<8) | (m_ptrs[i][3])) & 0x1fff;
141 return (m_ptrs[i][4]) & 0x1f;
146 return ((m_ptrs[i][5]<<24) | (m_ptrs[i][6]<<16) |
147 (m_ptrs[i][7]<<8) | (m_ptrs[i][8]));
153 return ((m_ptrs[i][9]<<8) | (m_ptrs[i][10])) & 0xfff;
168 return ((m_ptrs[TableCount()][0]<<8) |
169 (m_ptrs[TableCount()][1])) & 0xfff;
174 return m_ptrs[TableCount()]+2;
181 void Parse(
void)
const;
182 QString
toString(
void)
const override;
183 QString toStringXML(
uint indent_level)
const override;
185 mutable std::vector<unsigned char*>
m_ptrs;
233 if (i >= ChannelCount())
237 const auto* ustr =
reinterpret_cast<const unsigned short*
>(m_ptrs[i]);
238 for (
int j=0; j<7; j++)
240 QChar c(qFromBigEndian(ustr[j]));
241 if (c != QChar(
'\0')) str.append(c);
243 return str.simplified();
252 return (((m_ptrs[i][14])<<6)&0x3c0) | (m_ptrs[i][15]>>2);
257 return (((m_ptrs[i][15])<<8)&0x300) | m_ptrs[i][16];
262 return m_ptrs[i][17];
264 QString ModulationModeString(
uint i)
const;
269 return ((m_ptrs[i][22]<<8) | m_ptrs[i][23]);
274 return ((m_ptrs[i][24]<<8) | m_ptrs[i][25]);
279 return (m_ptrs[i][26]>>6) & 0x03;
284 return ( m_ptrs[i][26] & 0x20 ) != 0;
289 return ( m_ptrs[i][26] & 0x10 ) != 0;
295 return ( m_ptrs[i][26] & 0x02 ) != 0;
301 return m_ptrs[i][27] & 0x3f;
303 QString ServiceTypeString(
uint i)
const;
307 return ((m_ptrs[i][28]<<8) | m_ptrs[i][29]);
313 return ((m_ptrs[i][30]<<8) | m_ptrs[i][31]) & 0x03ff;
325 uint i = ChannelCount();
326 return ((m_ptrs[i][0]<<8) | m_ptrs[i][1]) & 0x03ff;
331 return m_ptrs[ChannelCount()]+2;
335 int Find(
int major,
int minor)
const;
336 QString GetExtendedChannelName(
uint idx)
const;
337 QString
toString(
void)
const override;
339 QString toStringXML(
uint indent_level)
const override;
340 virtual QString ChannelStringXML(
uint indent_level,
uint channel)
const;
341 virtual QString XMLChannelValues(
uint indent_level,
uint channel)
const;
343 mutable std::vector<unsigned char*>
m_ptrs;
410 QString ChannelString(
uint channel)
const override;
411 QString XMLChannelValues(
uint indent_level,
uint channel)
const override;
451 return (pesdata()[3]<<8) | pesdata()[4];
472 return (MajorChannel(i) >> 4) == 0x3f;
476 return MajorChannel(i) < 1000;
483 if (SCTEIsChannelNumberOnePart(i))
484 return ((MajorChannel(i) & 0xf) << 10) | MinorChannel(i);
498 return ( m_ptrs[i][26] & 0x08 ) != 0;
503 return ( m_ptrs[i][26] & 0x04 ) != 0;
517 QString ChannelString(
uint channel)
const override;
518 QString XMLChannelValues(
uint indent_level,
uint channel)
const override;
566 return ((m_ptrs[i][0]<<8) | m_ptrs[i][1])&0x3fff;
571 return ((m_ptrs[i][2]<<24) | (m_ptrs[i][3]<<16) |
572 (m_ptrs[i][4]<<8) | (m_ptrs[i][5]));
583 return (m_ptrs[i][6]>>4)&3;
588 return ((m_ptrs[i][6]<<16) | (m_ptrs[i][7]<<8) |
589 (m_ptrs[i][8])) & 0xfffff;
593 {
return m_ptrs[i][9]; }
603 unsigned char *desc=m_ptrs[i]+10+TitleLength(i);
604 return ((desc[0]<<8)|(desc[1]))&0xfff;
611 return m_ptrs[i]+12+TitleLength(i);
619 mutable std::vector<unsigned char*>
m_ptrs;
655 { SetTableIDExtension(
id); }
662 bool IsEventETM(
void)
const {
return 2 == (psipdata()[4] & 3); }
664 {
return (psipdata()[1] << 8) | psipdata()[2]; }
666 {
return (psipdata()[3] << 6) | (psipdata()[4] >> 2); }
714 return ((pesdata()[9] <<24) | (pesdata()[10]<<16) |
715 (pesdata()[11]<< 8) | pesdata()[12]);
724 {
return GPSUnix() - GPSOffset(); }
739 QString
toString(
void)
const override;
740 QString toStringXML(
uint indent_level)
const override;
905 {
return "AggregateEventInformationTable\n"; }
907 {
return "<AggregateEventInformationTable />"; }
964 {
return "AggregateExtendedTextTable\n"; }
966 {
return "<AggregateExtendedTextTable />"; }
QString toStringXML(uint) const override
QString toString(void) const override
AggregateExtendedTextTable(const AggregateExtendedTextTable &table)
AggregateExtendedTextTable(const PSIPTable &table)
This table contains information about the cable channels transmitted on this multiplex.
bool IsPathSelect(uint i) const
CableVirtualChannelTable(const CableVirtualChannelTable &table)
bool SCTEIsChannelNumberOnePart(uint i) const
CableVirtualChannelTable(const PSIPTable &table)
~CableVirtualChannelTable() override
bool SCTEIsChannelNumberTwoPart(uint i) const
bool IsOutOfBand(uint i) const
uint SCTEOnePartChannel(uint i) const
No one has had time to decode this table yet...
DirectedChannelChangeSelectionCodeTable(const DirectedChannelChangeSelectionCodeTable &table)
DirectedChannelChangeSelectionCodeTable(const PSIPTable &table)
No one has had time to decode this table yet...
DirectedChannelChangeTable(const DirectedChannelChangeTable &table)
DirectedChannelChangeTable(const PSIPTable &table)
ExtendedTextTable contain additional text not contained in EventInformationTables.
uint SourceID(void) const
bool IsEventETM(void) const
void SetExtendedTextTableID(uint id)
ExtendedTextTable(const ExtendedTextTable &table)
~ExtendedTextTable() override
ExtendedTextTable(const PSIPTable &table)
MultipleStringStructure ExtendedTextMessage() const
uint ExtendedTextTableID() const
bool IsChannelETM(void) const
This table tells the decoder on which PIDs to find other tables, and their sizes and each table's cur...
std::vector< unsigned char * > m_ptrs
~MasterGuideTable() override
MasterGuideTable(const MasterGuideTable &table)
const unsigned char * TableDescriptors(uint i) const
uint TableType(uint i) const
uint TableDescriptorsLength(uint i) const
uint GlobalDescriptorsLength() const
MasterGuideTable(const PSIPTable &table)
const unsigned char * GlobalDescriptors() const
uint TableDescriptorsBytes(uint i) const
uint TableCountRaw() const
uint TablePID(uint i) const
uint TableVersion(uint i) const
A PSIP table is a variant of a PES packet containing an MPEG, ATSC or DVB table.
No one has had time to decode this table yet...
RatingRegionTable(const PSIPTable &table)
RatingRegionTable(const RatingRegionTable &table)
Contains listing of Table ID's for various tables (PAT=0,PMT=2,etc).
This table contains information about the terrestrial channels transmitted on this multiplex.
TerrestrialVirtualChannelTable(const PSIPTable &table)
~TerrestrialVirtualChannelTable() override
TerrestrialVirtualChannelTable(const TerrestrialVirtualChannelTable &table)
This table contains information about the channels transmitted on this multiplex.
QString ShortChannelName(uint i) const
bool IsHiddenInGuide(uint i) const
bool IsHidden(uint i) const
uint MajorChannel(uint i) const
const unsigned char * Descriptors(uint i) const
~VirtualChannelTable() override
uint ChannelTransportStreamID(uint i) const
uint TransportStreamID() const
uint MinorChannel(uint i) const
virtual QString ChannelString(uint channel) const =0
uint GlobalDescriptorsLength() const
bool IsAccessControlled(uint i) const
uint ETMlocation(uint i) const
uint ProgramNumber(uint i) const
uint SourceID(uint i) const
uint DescriptorsLength(uint i) const
uint ServiceType(uint i) const
uint ChannelCountRaw() const
VirtualChannelTable(const VirtualChannelTable &table)
uint ModulationMode(uint i) const
std::vector< unsigned char * > m_ptrs
uint ChannelCount() const
VirtualChannelTable(const PSIPTable &table)
const unsigned char * GlobalDescriptors() const
static constexpr qint64 GPS_EPOCH
Seconds between start of GPS time and the start of UNIX time.
MBASE_PUBLIC QDateTime fromSecsSinceEpoch(int64_t seconds)
This function takes the number of seconds since the start of the epoch and returns a QDateTime with t...
QString toString(const QDateTime &raw_dt, uint format)
Returns formatted string representing the time.