MythTV  master
dvbtables.h
Go to the documentation of this file.
1 // -*- Mode: c++ -*-
2 // Copyright (c) 2005, Daniel Thor Kristjansson
3 #ifndef DVB_TABLES_H
4 #define DVB_TABLES_H
5 
6 #include <QString>
7 #include <cstdint> // uint32_t
8 
11 #include "libmythtv/mythtvexp.h"
12 
13 uint32_t dvbdate2key(const unsigned char *buf);
14 
15 static inline QDateTime dvbdate2qt(const std::array<uint8_t,5> buf)
16 {
17  return dvbdate2qt(buf.data());
18 }
19 static inline time_t dvbdate2unix(const std::array<uint8_t,5> buf)
20 {
21  return dvbdate2unix(buf.data());
22 }
23 
29 {
30  public:
32  : PSIPTable(table)
33  {
35  Parse();
36  }
37  explicit NetworkInformationTable(const PSIPTable& table)
38  : PSIPTable(table)
39  {
41  Parse();
42  }
43  ~NetworkInformationTable() override { ; }
44 
45  // table_id 8 0.0 0x40/0x41
46  // section_syntax_indicator 1 1.0 1
47  // reserved_future_use 1 1.1 1
48  // reserved 2 1.2 3
49  // section_length 12 1.4 0
50  // reserved 2 5.0 3
51  // version_number 5 5.2 0
52  // current_next_indicator 1 5.7 1
53  // section_number 8 6.0 0x00
54  // last_section_number 8 7.0 0x00
55 
57  uint NetworkID(void) const { return TableIDExtension(); }
58 
59  // reserved_future_use 4 8.0 0xf
62  { return ((psipdata()[0]<<8) | psipdata()[1]) & 0xfff; }
63 
66  const unsigned char* NetworkDescriptors(void) const
67  { return psipdata() + 2; }
68 
69  // reserved_future_use 4 0.0+ndl 0xf
72  { return ((m_tscPtr[0]<<8) | m_tscPtr[1]) & 0xfff; }
74  { return m_ptrs.size() - 1; }
75  // for(i=0; i<N; i++) {
77  uint TSID(uint i) const { return (m_ptrs[i][0]<<8) | m_ptrs[i][1]; }
80  { return (m_ptrs[i][2]<<8) | m_ptrs[i][3]; }
81  // reserved_future_use 4 4.0+p
84  { return ((m_ptrs[i][4]<<8) | m_ptrs[i][5]) & 0xfff; }
87  const unsigned char* TransportDescriptors(uint i) const
88  { return m_ptrs[i]+6; }
89  // }
90 
92  bool Mutate(void);
93 
94  void Parse(void) const;
95  QString toString(void) const override; // PSIPTable
96  QString NetworkName(void) const;
97 
98  private:
99  mutable QString m_cachedNetworkName;
100  mutable const unsigned char* m_tscPtr {nullptr};
101  mutable std::vector<const unsigned char*> m_ptrs; // used to parse
102 };
103 
109 {
110  public:
112  : PSIPTable(table)
113  {
115  Parse();
116  }
117  explicit ServiceDescriptionTable(const PSIPTable& table) : PSIPTable(table)
118  {
120  Parse();
121  }
122  ~ServiceDescriptionTable() override { ; }
123 
124  // table_id 8 0.0 0x42/0x46
125  // section_syntax_indicator 1 1.0 1
126  // reserved_future_use 1 1.1 1
127  // reserved 2 1.2 3
128  // section_length 12 1.4 0
129  // reserved 2 5.0 3
130  // version_number 5 5.2 0
131  // current_next_indicator 1 5.7 1
132  // section_number 8 6.0 0x00
133  // last_section_number 8 7.0 0x00
134 
136  uint TSID() const { return TableIDExtension(); }
137 
140  { return (psipdata()[0]<<8) | psipdata()[1]; }
141 
143  uint ServiceCount() const { return m_ptrs.size()-1; }
144 
145  // reserved_future_use 8 10.0
146  // for (i=0;i<N;i++) {
148  uint ServiceID(uint i) const { return (m_ptrs[i][0]<<8) | (m_ptrs[i][1]); }
149  // reserved_future_use 6 2.0+p
150  // EIT_schedule_flag 1 2.6+p
151  bool HasEITSchedule(uint i) const { return ( m_ptrs[i][2] & 0x02 ) != 0; }
152  // EIT_present_following 1 2.7+p
154  { return ( m_ptrs[i][2] & 0x01 ) != 0; }
156  uint RunningStatus(uint i) const { return (m_ptrs[i][3] & 0xE0) >> 5; }
158  bool IsEncrypted(uint i) const { return ( m_ptrs[i][3] & 0x10 ) != 0; }
161  { return ((m_ptrs[i][3]<<8) | (m_ptrs[i][4])) & 0xfff; }
164  const unsigned char* ServiceDescriptors(uint i) const
165  { return m_ptrs[i]+5; }
166  // }
167  ServiceDescriptor *GetServiceDescriptor(uint i) const;
168  ServiceRelocatedDescriptor *GetServiceRelocatedDescriptor(uint i) const;
169 
171  bool Mutate(void);
172 
173  void Parse(void) const;
174  QString toString(void) const override; // PSIPTable
175 
176  private:
177  mutable std::vector<const unsigned char*> m_ptrs; // used to parse
178 };
179 
188 {
189  public:
190  explicit BouquetAssociationTable(const PSIPTable& table) : PSIPTable(table)
191  {
193  Parse();
194  }
195  ~BouquetAssociationTable() override { ; }
196 
197  // table_id 8 0.0 0x4a
198  // section_syntax_indicator 1 1.0 1
199  // reserved_future_use 1 1.1 1
200  // reserved 2 1.2 3
201  // section_length 12 1.4 0
202  // Bouquet ID 16 3.0 0
203  uint BouquetID() const { return TableIDExtension(); }
204 
205  // reserved 2 5.0 3
206  // version_number 5 5.2 0
207  // current_next_indicator 1 5.7 1
208  // section_number 8 6.0 0x00
209  // last_section_number 8 7.0 0x00
210  // reserved 4 8 0x0d
212  { return ((psipdata()[0]<<8) | psipdata()[1]) & 0xfff; }
213 
214  // Bouquet descriptors len 12 8.4
215  // for (i=0;i<N;i++)
216  // Descriptor();
217  const unsigned char* BouquetDescriptors(void) const
218  { return psipdata() + 2; }
219  // reserved 4 10+N.0
220 
221  // Transport stream loop len 12
223  { return ((m_tscPtr[0]<<8) | m_tscPtr[1]) & 0xfff; }
225  { return m_ptrs.size() - 1; }
226 
227  // for (i=0;i<N;i++) {
228  // transport_stream_id 16
229  uint TSID(uint i) const { return (m_ptrs[i][0] << 8) | m_ptrs[i][1]; }
230  // original_network_id 16
232  { return (m_ptrs[i][2] << 8) | m_ptrs[i][3]; }
233  // reserved 4
234  // transport descriptor len 12
236  { return ((m_ptrs[i][4]<<8) | m_ptrs[i][5]) & 0xfff; }
239  const unsigned char* TransportDescriptors(uint i) const
240  { return m_ptrs[i]+6; }
241  // }
242 
243  void Parse(void) const;
244  QString toString(void) const override; // PSIPTable
245 
246  private:
247  mutable const unsigned char* m_tscPtr {nullptr};
248  mutable std::vector<const unsigned char*> m_ptrs;
249 };
250 
252 {
253  explicit DiscontinuityInformationTable(const PSIPTable& table) : PSIPTable(table)
254  { ; }
255  // table_id 8
256  // section_syntax_indicator 1
257  // reserved_future_use 1
258  // reserved 2
259  // section_length 12
260  // transition_flag 1
261  // reserved_future_use 7
262 };
263 
265 {
266  explicit SelectionInformationTable(const PSIPTable& table) : PSIPTable(table)
267  { ; }
268  // table_id 8
269  // section_syntax_indicator 1
270  // DVB_reserved_future_use 1
271  // ISO_reserved 2
272  // section_length 12
273  // DVB_reserved_future_use 16
274  // ISO_reserved 2
275  // version_number 5
276  // current_next_indicator 1
277  // section_number 8
278  // last_section_number 8
279  // DVB_reserved_for_future_use 4
280  // transmission_info_loop_length 12
281  // for (i =0;i<N;i++) { descriptor() }
282  // for (i=0;i<N;i++)
283  // {
284  // service_id 16
285  // DVB_reserved_future_use 1
286  // running_status 3
287  // service_loop_length 12
288  // for(j=0;j<N;j++) { descriptor() }
289  // }
290  // CRC_32 32 rpchof
291 };
292 
294 {
295  public:
296  explicit DVBEventInformationTable(const PSIPTable& table) : PSIPTable(table)
297  {
298  // table_id 8 0.0 0xC7
299  assert(IsEIT(TableID()));
300  // section_syntax_indicator 1 1.0 1
301  // private_indicator 1 1.1 1
302  // reserved 2 1.2 3
303  // section_length 12 1.4
304  // reserved 2 5.0 3
305  // version_number 5 5.2
306  // current_next_indicator 1 5.7 1
307  // section_number 8 6.0
308  // last_section_number 8 7.0
309  Parse();
310  }
311 
312  // service_id 16 3.0
313  uint ServiceID(void) const { return TableIDExtension(); }
314 
315  // transport_stream_id 16 8.0
316  uint TSID(void) const
317  { return (psipdata()[0]<<8) | psipdata()[1]; }
318 
319  // original_network_id 16 10.0
321  { return (psipdata()[2]<<8) | psipdata()[3]; }
322 
323  // segment_last_section_num 8 12.0
325  { return psipdata()[4]; }
326  // last_table_id 8 13.0
327  uint LastTableID(void) const
328  { return psipdata()[5]; }
329 
330  uint EventCount() const { return m_ptrs.size()-1; }
331 
332  // for(i=0;i<N;i++) {
333  // event_id 16 0.0+x
334  uint EventID(uint i) const
335  { return (m_ptrs[i][0]<<8) | m_ptrs[i][1]; }
336  // start_time 40 2.0+x
337  const unsigned char *StartTime(uint i) const
338  { return m_ptrs[i]+2; }
339  QDateTime StartTimeUTC(uint i) const
340  { return dvbdate2qt(StartTime(i)); }
341  time_t StartTimeUnixUTC(uint i) const
342  { return dvbdate2unix(StartTime(i)); }
343  time_t EndTimeUnixUTC(uint i) const
344  { return StartTimeUnixUTC(i) + DurationInSeconds(i); }
345  uint32_t StartTimeKey(uint i) const
346  { return dvbdate2key(StartTime(i)); }
347  // duration 24 7.0+x
348  const unsigned char *Duration(uint i) const
349  { return m_ptrs[i]+7; }
351  {
352  return ((byteBCD2int(Duration(i)[0]) * 3600) +
353  (byteBCD2int(Duration(i)[1]) * 60) +
354  (byteBCD2int(Duration(i)[2])));
355  }
356  // running_status 3 10.0+x
357  uint RunningStatus(uint i) const { return m_ptrs[i][10] >> 5; }
358  // free_CA_mode 1 10.3+x
359  bool IsScrambled(uint i) const { return ( m_ptrs[i][10] & 0x10 ) != 0; }
360  // descriptors_loop_len 12 10.4+x
362  { return ((m_ptrs[i][10]<<8) | (m_ptrs[i][11])) & 0xfff; }
363  // for(i=0;i<N;i++) y 12.0+x
364  // { descriptor() }
365  const unsigned char* Descriptors(uint i) const
366  { return m_ptrs[i] + 12; }
367  // }
368  //CRC_32 32 rpchof
369 
370  void Parse(void) const;
371 
372  static bool IsEIT(uint table_id);
373 
374  private:
375  mutable std::vector<const unsigned char*> m_ptrs; // used to parse
376 };
377 
382 {
383  public:
384  explicit TimeDateTable(const PSIPTable& table)
385  : PSIPTable(table)
386  {
388  }
389  ~TimeDateTable() override { ; }
390 
391  // table_id 8 0.0 0x70
392  // section_syntax_indicator 1 1.0 0
393  // reserved_future_use 1 1.1 1
394  // reserved 2 1.2 3
395  // section_length 12 1.4 40
396  // UTC_time 40 3.0 0
397  const unsigned char *UTCdata(void) const
398  { return pesdata() + 3; }
399 
400  QDateTime UTC(void) const { return dvbdate2qt(UTCdata()); }
401  time_t UTCUnix(void) const { return dvbdate2unix(UTCdata()); }
402 };
403 
408 {
409  public:
410  explicit TimeOffsetTable(const PSIPTable& table)
411  : PSIPTable(table)
412  {
414  }
415  ~TimeOffsetTable() override { ; }
416 
417  // table_id 8 0.0 0x70
418  // section_syntax_indicator 1 1.0 0
419  // reserved_future_use 1 1.1 1
420  // reserved 2 1.2 3
421  // section_length 12 1.4 40
422  // UTC_time 40 3.0 0
423  const unsigned char *UTCdata(void) const
424  { return pesdata() + 3; }
425 
426  QDateTime UTC(void) const { return dvbdate2qt(UTCdata()); }
427  time_t UTCUnix(void) const { return dvbdate2unix(UTCdata()); }
428 
429  // Reserved 4 8.0 0x0F
430  // Descriptors Length 12 8.4 0
432  { return ((pesdata()[8]<<8) | pesdata()[9]) & 0x0fff; }
433  // for (i=0;i<N;i++)
434  // Descriptor();
435  const unsigned char* Descriptors(void) const
436  { return pesdata() + 10; }
437 };
438 
439 #endif // DVB_TABLES_H
ServiceRelocatedDescriptor
Definition: dvbdescriptors.h:1454
NetworkInformationTable::TransportDescriptorsLength
uint TransportDescriptorsLength(uint i) const
trans_desc_length 12 4.4+p
Definition: dvbtables.h:83
TimeDateTable::UTCdata
const unsigned char * UTCdata(void) const
Definition: dvbtables.h:397
DiscontinuityInformationTable::DiscontinuityInformationTable
DiscontinuityInformationTable(const PSIPTable &table)
Definition: dvbtables.h:253
TableID::SDTo
@ SDTo
Definition: mpegtables.h:277
DVBEventInformationTable::EventID
uint EventID(uint i) const
Definition: dvbtables.h:334
DVBEventInformationTable::DurationInSeconds
uint DurationInSeconds(uint i) const
Definition: dvbtables.h:350
DVBEventInformationTable::IsScrambled
bool IsScrambled(uint i) const
Definition: dvbtables.h:359
NetworkInformationTable::NetworkInformationTable
NetworkInformationTable(const NetworkInformationTable &table)
Definition: dvbtables.h:31
DVBEventInformationTable
Definition: dvbtables.h:293
NetworkInformationTable::TSID
uint TSID(uint i) const
transport_stream_id 16 0.0+p
Definition: dvbtables.h:77
NetworkInformationTable::NetworkDescriptorsLength
uint NetworkDescriptorsLength(void) const
network_desc_length 12 8.4 0
Definition: dvbtables.h:61
DVBEventInformationTable::RunningStatus
uint RunningStatus(uint i) const
Definition: dvbtables.h:357
TimeDateTable
This table gives the current DVB stream time.
Definition: dvbtables.h:381
DVBEventInformationTable::m_ptrs
std::vector< const unsigned char * > m_ptrs
Definition: dvbtables.h:375
NetworkInformationTable::NetworkID
uint NetworkID(void) const
network_id 16 3.0 0x0000
Definition: dvbtables.h:57
NetworkInformationTable::NetworkInformationTable
NetworkInformationTable(const PSIPTable &table)
Definition: dvbtables.h:37
DVBEventInformationTable::Descriptors
const unsigned char * Descriptors(uint i) const
Definition: dvbtables.h:365
TimeOffsetTable::Descriptors
const unsigned char * Descriptors(void) const
Definition: dvbtables.h:435
BouquetAssociationTable::BouquetID
uint BouquetID() const
Definition: dvbtables.h:203
NetworkInformationTable::TransportDescriptors
const unsigned char * TransportDescriptors(uint i) const
for(j=0;j<N;j++) x 6.0+p { descriptor() }
Definition: dvbtables.h:87
BouquetAssociationTable::TransportDescriptors
const unsigned char * TransportDescriptors(uint i) const
for(j=0;j<N;j++) x 6.0+p { descriptor() }
Definition: dvbtables.h:239
mythtvexp.h
PESPacket::pesdata
const unsigned char * pesdata() const
Definition: pespacket.h:166
BouquetAssociationTable::TransportDescriptorsLength
uint TransportDescriptorsLength(uint i) const
Definition: dvbtables.h:235
BouquetAssociationTable::BouquetDescriptorsLength
uint BouquetDescriptorsLength(void) const
Definition: dvbtables.h:211
ServiceDescriptionTable::ServiceID
uint ServiceID(uint i) const
service_id 16 0.0+p
Definition: dvbtables.h:148
BouquetAssociationTable::BouquetAssociationTable
BouquetAssociationTable(const PSIPTable &table)
Definition: dvbtables.h:190
NetworkInformationTable::m_ptrs
std::vector< const unsigned char * > m_ptrs
Definition: dvbtables.h:101
DVBEventInformationTable::OriginalNetworkID
uint OriginalNetworkID(void) const
Definition: dvbtables.h:320
dvbdate2qt
static QDateTime dvbdate2qt(const std::array< uint8_t, 5 > buf)
Definition: dvbtables.h:15
NetworkInformationTable::TransportStreamDataLength
uint TransportStreamDataLength(void) const
trans_stream_loop_len 12 0.4+ndl
Definition: dvbtables.h:71
DVBEventInformationTable::TSID
uint TSID(void) const
Definition: dvbtables.h:316
BouquetAssociationTable::TSID
uint TSID(uint i) const
Definition: dvbtables.h:229
dvbdate2unix
static time_t dvbdate2unix(const std::array< uint8_t, 5 > buf)
Definition: dvbtables.h:19
BouquetAssociationTable::m_ptrs
std::vector< const unsigned char * > m_ptrs
Definition: dvbtables.h:248
TimeOffsetTable::UTCdata
const unsigned char * UTCdata(void) const
Definition: dvbtables.h:423
TimeOffsetTable::TimeOffsetTable
TimeOffsetTable(const PSIPTable &table)
Definition: dvbtables.h:410
DVBEventInformationTable::EventCount
uint EventCount() const
Definition: dvbtables.h:330
Parse
Definition: rssparse.h:188
TimeDateTable::~TimeDateTable
~TimeDateTable() override
Definition: dvbtables.h:389
PSIPTable
A PSIP table is a variant of a PES packet containing an MPEG, ATSC or DVB table.
Definition: mpegtables.h:409
BouquetAssociationTable::BouquetDescriptors
const unsigned char * BouquetDescriptors(void) const
Definition: dvbtables.h:217
PSIPTable::toString
virtual QString toString(void) const
Definition: mpegtables.cpp:763
ServiceDescriptionTable::ServiceCount
uint ServiceCount() const
Number of services.
Definition: dvbtables.h:143
DiscontinuityInformationTable
Definition: dvbtables.h:251
DVBEventInformationTable::StartTimeKey
uint32_t StartTimeKey(uint i) const
Definition: dvbtables.h:345
DVBEventInformationTable::DescriptorsLength
uint DescriptorsLength(uint i) const
Definition: dvbtables.h:361
ServiceDescriptionTable::OriginalNetworkID
uint OriginalNetworkID() const
original_network_id 16 8.0
Definition: dvbtables.h:139
ServiceDescriptionTable::RunningStatus
uint RunningStatus(uint i) const
running_status 3 3.0+p
Definition: dvbtables.h:156
TimeDateTable::TimeDateTable
TimeDateTable(const PSIPTable &table)
Definition: dvbtables.h:384
BouquetAssociationTable::TransportStreamDataLength
uint TransportStreamDataLength(void) const
Definition: dvbtables.h:222
TableID::BAT
@ BAT
Definition: mpegtables.h:278
BouquetAssociationTable::OriginalNetworkID
uint OriginalNetworkID(uint i) const
Definition: dvbtables.h:231
byteBCD2int
static constexpr uint8_t byteBCD2int(uint8_t i)
Definition: dvbdescriptors.h:56
TableID::NITo
@ NITo
Definition: mpegtables.h:276
TimeDateTable::UTCUnix
time_t UTCUnix(void) const
Definition: dvbtables.h:401
DVBEventInformationTable::ServiceID
uint ServiceID(void) const
Definition: dvbtables.h:313
ServiceDescriptionTable
This table tells the decoder on which PIDs to find A/V data.
Definition: dvbtables.h:108
TableID::NIT
@ NIT
Definition: mpegtables.h:270
SelectionInformationTable
Definition: dvbtables.h:264
ServiceDescriptionTable::ServiceDescriptionTable
ServiceDescriptionTable(const ServiceDescriptionTable &table)
Definition: dvbtables.h:111
mpegtables.h
DVBEventInformationTable::StartTime
const unsigned char * StartTime(uint i) const
Definition: dvbtables.h:337
NetworkInformationTable::OriginalNetworkID
uint OriginalNetworkID(uint i) const
original_network_id 16 2.0+p
Definition: dvbtables.h:79
uint
unsigned int uint
Definition: compat.h:81
TimeOffsetTable
This table gives the current DVB stream time, plus descriptors.
Definition: dvbtables.h:407
dvbdate2key
uint32_t dvbdate2key(const unsigned char *buf)
Definition: dvbtables.cpp:363
TimeOffsetTable::~TimeOffsetTable
~TimeOffsetTable() override
Definition: dvbtables.h:415
ServiceDescriptionTable::IsEncrypted
bool IsEncrypted(uint i) const
free_CA_mode 1 3.3+p
Definition: dvbtables.h:158
MTV_PUBLIC
#define MTV_PUBLIC
Definition: mythtvexp.h:15
ServiceDescriptionTable::m_ptrs
std::vector< const unsigned char * > m_ptrs
Definition: dvbtables.h:177
DVBEventInformationTable::LastTableID
uint LastTableID(void) const
Definition: dvbtables.h:327
BouquetAssociationTable::TransportStreamCount
uint TransportStreamCount(void) const
Definition: dvbtables.h:224
BouquetAssociationTable
Tells what channels can be found on each transponder for one bouquet (a bunch of channels from one pr...
Definition: dvbtables.h:187
DVBEventInformationTable::SegmentLastSectionNumber
uint SegmentLastSectionNumber(void) const
Definition: dvbtables.h:324
ServiceDescriptionTable::HasEITPresentFollowing
bool HasEITPresentFollowing(uint i) const
Definition: dvbtables.h:153
assert
#define assert(x)
Definition: audiooutputalsa.cpp:16
TimeDateTable::UTC
QDateTime UTC(void) const
Definition: dvbtables.h:400
TableID::TOT
@ TOT
Definition: mpegtables.h:286
ServiceDescriptionTable::~ServiceDescriptionTable
~ServiceDescriptionTable() override
Definition: dvbtables.h:122
DVBEventInformationTable::Duration
const unsigned char * Duration(uint i) const
Definition: dvbtables.h:348
PSIPTable::TableID
uint TableID(void) const
Definition: mpegtables.h:515
ServiceDescriptionTable::ServiceDescriptionTable
ServiceDescriptionTable(const PSIPTable &table)
Definition: dvbtables.h:117
PSIPTable::TableIDExtension
uint TableIDExtension(void) const
Definition: mpegtables.h:534
ServiceDescriptor
Definition: dvbdescriptors.h:2064
NetworkInformationTable::NetworkDescriptors
const unsigned char * NetworkDescriptors(void) const
for(i=0; i<N; i++) x 10.0 { descriptor() }
Definition: dvbtables.h:66
TableID::SDT
@ SDT
Definition: mpegtables.h:271
TableID::TDT
@ TDT
Definition: mpegtables.h:273
ServiceDescriptionTable::ServiceDescriptorsLength
uint ServiceDescriptorsLength(uint i) const
desc_loop_length 12 3.4+p
Definition: dvbtables.h:160
TimeOffsetTable::DescriptorsLength
uint DescriptorsLength(void) const
Definition: dvbtables.h:431
TimeOffsetTable::UTC
QDateTime UTC(void) const
Definition: dvbtables.h:426
NetworkInformationTable::m_cachedNetworkName
QString m_cachedNetworkName
Definition: dvbtables.h:99
BouquetAssociationTable::~BouquetAssociationTable
~BouquetAssociationTable() override
Definition: dvbtables.h:195
DVBEventInformationTable::DVBEventInformationTable
DVBEventInformationTable(const PSIPTable &table)
Definition: dvbtables.h:296
ServiceDescriptionTable::HasEITSchedule
bool HasEITSchedule(uint i) const
Definition: dvbtables.h:151
SelectionInformationTable::SelectionInformationTable
SelectionInformationTable(const PSIPTable &table)
Definition: dvbtables.h:266
NetworkInformationTable::TransportStreamCount
uint TransportStreamCount(void) const
Definition: dvbtables.h:73
TimeOffsetTable::UTCUnix
time_t UTCUnix(void) const
Definition: dvbtables.h:427
DVBEventInformationTable::StartTimeUnixUTC
time_t StartTimeUnixUTC(uint i) const
Definition: dvbtables.h:341
ServiceDescriptionTable::ServiceDescriptors
const unsigned char * ServiceDescriptors(uint i) const
for (j=0;j<N;j++) x 5.0+p { descriptor() }
Definition: dvbtables.h:164
NetworkInformationTable::~NetworkInformationTable
~NetworkInformationTable() override
Definition: dvbtables.h:43
ServiceDescriptionTable::TSID
uint TSID() const
transport_stream_id 16 3.0 0x0000
Definition: dvbtables.h:136
PSIPTable::psipdata
const unsigned char * psipdata(void) const
Definition: mpegtables.h:560
dvbdescriptors.h
DVBEventInformationTable::StartTimeUTC
QDateTime StartTimeUTC(uint i) const
Definition: dvbtables.h:339
NetworkInformationTable
This table tells the decoder on which PIDs to find other tables.
Definition: dvbtables.h:28
DVBEventInformationTable::EndTimeUnixUTC
time_t EndTimeUnixUTC(uint i) const
Definition: dvbtables.h:343