Go to the documentation of this file.
6 #include "libmythbase/mythconfig.h"
126 return (m_ptrs[i][0]<<8) | m_ptrs[i][1];
129 QString TableClassString(
uint i)
const;
134 return ((m_ptrs[i][2]<<8) | (m_ptrs[i][3])) & 0x1fff;
140 return (m_ptrs[i][4]) & 0x1f;
145 return ((m_ptrs[i][5]<<24) | (m_ptrs[i][6]<<16) |
146 (m_ptrs[i][7]<<8) | (m_ptrs[i][8]));
152 return ((m_ptrs[i][9]<<8) | (m_ptrs[i][10])) & 0xfff;
167 return ((m_ptrs[TableCount()][0]<<8) |
168 (m_ptrs[TableCount()][1])) & 0xfff;
173 return m_ptrs[TableCount()]+2;
180 void Parse(
void)
const;
181 QString
toString(
void)
const override;
184 mutable std::vector<unsigned char*>
m_ptrs;
232 if (i >= ChannelCount())
236 const auto* ustr =
reinterpret_cast<const unsigned short*
>(m_ptrs[i]);
237 for (
int j=0; j<7; j++)
239 QChar c(qFromBigEndian(ustr[j]));
240 if (c != QChar(
'\0')) str.append(c);
242 return str.simplified();
251 return (((m_ptrs[i][14])<<6)&0x3c0) | (m_ptrs[i][15]>>2);
256 return (((m_ptrs[i][15])<<8)&0x300) | m_ptrs[i][16];
261 return m_ptrs[i][17];
263 QString ModulationModeString(
uint i)
const;
268 return ((m_ptrs[i][22]<<8) | m_ptrs[i][23]);
273 return ((m_ptrs[i][24]<<8) | m_ptrs[i][25]);
278 return (m_ptrs[i][26]>>6) & 0x03;
283 return ( m_ptrs[i][26] & 0x20 ) != 0;
288 return ( m_ptrs[i][26] & 0x10 ) != 0;
294 return ( m_ptrs[i][26] & 0x02 ) != 0;
300 return m_ptrs[i][27] & 0x3f;
302 QString ServiceTypeString(
uint i)
const;
306 return ((m_ptrs[i][28]<<8) | m_ptrs[i][29]);
312 return ((m_ptrs[i][30]<<8) | m_ptrs[i][31]) & 0x03ff;
324 uint i = ChannelCount();
325 return ((m_ptrs[i][0]<<8) | m_ptrs[i][1]) & 0x03ff;
330 return m_ptrs[ChannelCount()]+2;
334 int Find(
int major,
int minor)
const;
335 QString GetExtendedChannelName(
uint idx)
const;
336 QString
toString(
void)
const override;
337 virtual QString ChannelString(
uint channel)
const = 0;
339 virtual QString ChannelStringXML(
uint indent_level,
uint channel)
const;
340 virtual QString XMLChannelValues(
uint indent_level,
uint channel)
const;
342 mutable std::vector<unsigned char*>
m_ptrs;
482 if (SCTEIsChannelNumberOnePart(i))
497 return ( m_ptrs[i][26] & 0x08 ) != 0;
502 return ( m_ptrs[i][26] & 0x04 ) != 0;
565 return ((m_ptrs[i][0]<<8) | m_ptrs[i][1])&0x3fff;
570 return ((m_ptrs[i][2]<<24) | (m_ptrs[i][3]<<16) |
571 (m_ptrs[i][4]<<8) | (m_ptrs[i][5]));
582 return (m_ptrs[i][6]>>4)&3;
587 return ((m_ptrs[i][6]<<16) | (m_ptrs[i][7]<<8) |
588 (m_ptrs[i][8])) & 0xfffff;
592 {
return m_ptrs[i][9]; }
602 unsigned char *desc=m_ptrs[i]+10+TitleLength(i);
603 return ((desc[0]<<8)|(desc[1]))&0xfff;
610 return m_ptrs[i]+12+TitleLength(i);
618 mutable std::vector<unsigned char*>
m_ptrs;
723 {
return GPSUnix() - GPSOffset(); }
738 QString
toString(
void)
const override;
904 {
return "AggregateEventInformationTable\n"; }
906 {
return "<AggregateEventInformationTable />"; }
963 {
return "AggregateExtendedTextTable\n"; }
965 {
return "<AggregateExtendedTextTable />"; }
995 #endif // ATSC_TABLES_H
uint ETMlocation(uint i) const
~VirtualChannelTable() override
TerrestrialVirtualChannelTable(const TerrestrialVirtualChannelTable &table)
CableVirtualChannelTable(const CableVirtualChannelTable &table)
This table contains information about the channels transmitted on this multiplex.
uint SourceID(void) const
DirectedChannelChangeTable(const DirectedChannelChangeTable &table)
bool IsAccessControlled(uint i) const
QString toStringXML(uint) const override
RatingRegionTable(const PSIPTable &table)
void SetTableIDExtension(uint len)
No one has had time to decode this table yet...
No one has had time to decode this table yet...
VirtualChannelTable(const PSIPTable &table)
uint ExtendedTextTableID() const
uint GlobalDescriptorsLength() const
const unsigned char * pesdata() const
bool SCTEIsChannelNumberOnePart(uint i) const
QString ShortChannelName(uint i) const
uint SourceID(uint i) const
QString toString(void) const override
AggregateExtendedTextTable(const AggregateExtendedTextTable &table)
No one has had time to decode this table yet...
uint ProgramNumber(uint i) const
std::vector< unsigned char * > m_ptrs
~CableVirtualChannelTable() override
bool IsHiddenInGuide(uint i) const
const unsigned char * Descriptors(uint i) const
bool IsHidden(uint i) const
std::vector< unsigned char * > m_ptrs
uint ChannelTransportStreamID(uint i) const
A PSIP table is a variant of a PES packet containing an MPEG, ATSC or DVB table.
virtual QString XMLChannelValues(uint indent_level, uint channel) const
virtual QString toString(void) const
uint MajorChannel(uint i) const
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...
~ExtendedTextTable() override
VirtualChannelTable(const VirtualChannelTable &table)
uint TableCountRaw() const
uint TablePID(uint i) const
TerrestrialVirtualChannelTable(const PSIPTable &table)
uint TableVersion(uint i) const
uint TableDescriptorsBytes(uint i) const
MasterGuideTable(const MasterGuideTable &table)
uint ChannelCountRaw() const
MasterGuideTable(const PSIPTable &table)
virtual QString ChannelString(uint channel) const =0
virtual QString toStringXML(uint indent_level) const
uint TableDescriptorsLength(uint i) const
CableVirtualChannelTable(const PSIPTable &table)
~MasterGuideTable() override
const unsigned char * GlobalDescriptors() const
DirectedChannelChangeSelectionCodeTable(const PSIPTable &table)
DirectedChannelChangeSelectionCodeTable(const DirectedChannelChangeSelectionCodeTable &table)
This table tells the decoder on which PIDs to find other tables, and their sizes and each table's cur...
uint DescriptorsLength(uint i) const
bool IsPathSelect(uint i) const
void SetExtendedTextTableID(uint id)
uint GlobalDescriptorsLength() const
~TerrestrialVirtualChannelTable() override
const unsigned char * TableDescriptors(uint i) const
DirectedChannelChangeTable(const PSIPTable &table)
static constexpr qint64 GPS_EPOCH
Seconds between start of GPS time and the start of UNIX time.
ExtendedTextTable(const PSIPTable &table)
uint ServiceType(uint i) const
bool IsEventETM(void) const
ExtendedTextTable(const ExtendedTextTable &table)
uint TableIDExtension(void) const
RatingRegionTable(const RatingRegionTable &table)
bool SCTEIsChannelNumberTwoPart(uint i) const
MultipleStringStructure ExtendedTextMessage() const
This table contains information about the terrestrial channels transmitted on this multiplex.
const unsigned char * GlobalDescriptors() const
uint SCTEOnePartChannel(uint i) const
AggregateExtendedTextTable(const PSIPTable &table)
This table contains information about the cable channels transmitted on this multiplex.
ExtendedTextTable contain additional text not contained in EventInformationTables.
bool IsChannelETM(void) const
uint ModulationMode(uint i) const
uint TableType(uint i) const
uint ChannelCount() const
uint TransportStreamID() const
bool IsOutOfBand(uint i) const
uint MinorChannel(uint i) const
const unsigned char * psipdata(void) const