9using uint =
unsigned int;
20static inline QDateTime
dvbdate2qt(
const std::array<uint8_t,5> buf)
77 {
return ((m_tscPtr[0]<<8) | m_tscPtr[1]) & 0xfff; }
79 {
return m_ptrs.size() - 1; }
82 uint TSID(
uint i)
const {
return (m_ptrs[i][0]<<8) | m_ptrs[i][1]; }
85 {
return (m_ptrs[i][2]<<8) | m_ptrs[i][3]; }
89 {
return ((m_ptrs[i][4]<<8) | m_ptrs[i][5]) & 0xfff; }
93 {
return m_ptrs[i]+6; }
99 void Parse(
void)
const;
100 QString
toString(
void)
const override;
101 QString NetworkName(
void)
const;
105 mutable const unsigned char* m_tscPtr {
nullptr};
106 mutable std::vector<const unsigned char*>
m_ptrs;
159 {
return ( m_ptrs[i][2] & 0x01 ) != 0; }
166 {
return ((m_ptrs[i][3]<<8) | (m_ptrs[i][4])) & 0xfff; }
170 {
return m_ptrs[i]+5; }
178 void Parse(
void)
const;
179 QString
toString(
void)
const override;
182 mutable std::vector<const unsigned char*>
m_ptrs;
228 {
return ((m_tscPtr[0]<<8) | m_tscPtr[1]) & 0xfff; }
230 {
return m_ptrs.size() - 1; }
237 {
return (m_ptrs[i][2] << 8) | m_ptrs[i][3]; }
241 {
return ((m_ptrs[i][4]<<8) | m_ptrs[i][5]) & 0xfff; }
245 {
return m_ptrs[i]+6; }
248 void Parse(
void)
const;
249 QString
toString(
void)
const override;
252 mutable const unsigned char* m_tscPtr {
nullptr};
253 mutable std::vector<const unsigned char*>
m_ptrs;
340 {
return (m_ptrs[i][0]<<8) | m_ptrs[i][1]; }
343 {
return m_ptrs[i]+2; }
349 {
return StartTimeUnixUTC(i) + DurationInSeconds(i); }
354 {
return m_ptrs[i]+7; }
367 {
return ((m_ptrs[i][10]<<8) | (m_ptrs[i][11])) & 0xfff; }
371 {
return m_ptrs[i] + 12; }
375 void Parse(
void)
const;
377 static bool IsEIT(
uint table_id);
380 mutable std::vector<const unsigned char*>
m_ptrs;
Tells what channels can be found on each transponder for one bouquet (a bunch of channels from one pr...
BouquetAssociationTable(const PSIPTable &table)
const unsigned char * BouquetDescriptors(void) const
uint TransportDescriptorsLength(uint i) const
const unsigned char * TransportDescriptors(uint i) const
for(j=0;j<N;j++) x 6.0+p { descriptor() }
~BouquetAssociationTable() override
std::vector< const unsigned char * > m_ptrs
uint BouquetDescriptorsLength(void) const
uint TransportStreamDataLength(void) const
uint OriginalNetworkID(uint i) const
uint TransportStreamCount(void) const
const unsigned char * pesdata() const
A PSIP table is a variant of a PES packet containing an MPEG, ATSC or DVB table.
const unsigned char * psipdata(void) const
virtual QString toString(void) const
uint TableIDExtension(void) const
This table tells the decoder on which PIDs to find A/V data.
uint TSID() const
transport_stream_id 16 3.0 0x0000
ServiceDescriptionTable(const PSIPTable &table)
const unsigned char * ServiceDescriptors(uint i) const
for (j=0;j<N;j++) x 5.0+p { descriptor() }
bool HasEITPresentFollowing(uint i) const
std::vector< const unsigned char * > m_ptrs
~ServiceDescriptionTable() override
uint RunningStatus(uint i) const
running_status 3 3.0+p
ServiceDescriptionTable(const ServiceDescriptionTable &table)
bool HasEITSchedule(uint i) const
uint ServiceID(uint i) const
service_id 16 0.0+p
uint ServiceCount() const
Number of services.
uint ServiceDescriptorsLength(uint i) const
desc_loop_length 12 3.4+p
uint OriginalNetworkID() const
original_network_id 16 8.0
bool IsEncrypted(uint i) const
free_CA_mode 1 3.3+p
This table gives the current DVB stream time.
QDateTime UTC(void) const
const unsigned char * UTCdata(void) const
TimeDateTable(const PSIPTable &table)
time_t UTCUnix(void) const
~TimeDateTable() override
This table gives the current DVB stream time, plus descriptors.
TimeOffsetTable(const PSIPTable &table)
QDateTime UTC(void) const
time_t UTCUnix(void) const
~TimeOffsetTable() override
const unsigned char * Descriptors(void) const
const unsigned char * UTCdata(void) const
uint DescriptorsLength(void) const
static constexpr uint8_t byteBCD2int(uint8_t i)
static QDateTime dvbdate2qt(const std::array< uint8_t, 5 > buf)
static time_t dvbdate2unix(const std::array< uint8_t, 5 > buf)
uint32_t dvbdate2key(const unsigned char *buf)