MythTV master
|
A PSIP table is a variant of a PES packet containing an MPEG, ATSC or DVB table. More...
#include <libmythtv/mpeg/mpegtables.h>
Public Member Functions | |
PSIPTable (const TSPacket &tspacket, const unsigned char *pesdata, uint pes_size) | |
PSIPTable (const unsigned char *pesdata) | |
Constructor for viewing a section, does not create it's own data. More... | |
PSIPTable (const std::vector< uint8_t > &pesdata) | |
PSIPTable (const PSIPTable &)=default | |
PSIPTable (const PESPacket &table) | |
PSIPTable (const TSPacket &table) | |
uint | TableID (void) const |
bool | SectionSyntaxIndicator (void) const |
bool | PrivateIndicator (void) const |
uint | SectionLength (void) const |
uint | SectionLengthRaw (void) const |
uint | TableIDExtension (void) const |
uint | Version (void) const |
bool | IsCurrent (void) const |
uint | Section (void) const |
uint | LastSection (void) const |
uint | ATSCProtocolVersion (void) const |
const unsigned char * | psipdata (void) const |
unsigned char * | psipdata (void) |
void | SetTableID (uint id) |
void | SetSectionLength (uint length) |
void | SetTableIDExtension (uint len) |
void | SetVersionNumber (uint ver) |
void | SetCurrent (bool cur) |
void | SetSection (uint num) |
void | SetLastSection (uint num) |
void | SetATSCProtocolVersion (int ver) |
bool | HasCRC (void) const override |
1 bit Cyclic Redundancy Check present More... | |
bool | HasSectionNumber (void) const |
bool | VerifyPSIP (bool verify_crc) const |
virtual QString | toString (void) const |
virtual QString | toStringXML (uint indent_level) const |
![]() | |
PESPacket (const unsigned char *pesdata) | |
PESPacket (const std::vector< uint8_t > &pesdata) | |
PESPacket & | operator= (const PESPacket &pkt)=delete |
PESPacket (const PESPacket &pkt) | |
virtual | ~PESPacket () |
bool | IsClone () const |
bool | AddTSPacket (const TSPacket *tspacket, int cardid, bool &broken) |
bool | IsGood () const |
const TSHeader * | tsheader () const |
TSHeader * | tsheader () |
void | GetAsTSPackets (std::vector< TSPacket > &output, uint cc) const |
Returns payload only PESPacket as series of TSPackets. More... | |
uint | StreamID () const |
uint | Length () const |
uint | ScramblingControl () const |
bool | HighPriority () const |
1 bit Indicates if this is a high priority packet More... | |
bool | DataAligned () const |
1 bit Data alignment indicator (must be 0 for video) More... | |
bool | CopyRight () const |
1 bit If true packet may contain copy righted material and is known to have once contained materiale with copy rights. More... | |
bool | OriginalRecording () const |
1 bit Original Recording More... | |
bool | HasPTS () const |
1 bit Presentation Time Stamp field is present More... | |
bool | HasDTS () const |
1 bit Decoding Time Stamp field is present More... | |
bool | HasESCR () const |
1 bit Elementary Stream Clock Reference field is present More... | |
bool | HasESR () const |
1 bit Elementary Stream Rate field is present More... | |
bool | HasDSM () const |
1 bit DSM field present (should always be false for broadcasts) More... | |
bool | HasACI () const |
1 bit Additional Copy Info field is present More... | |
virtual bool | HasCRC () const |
1 bit Cyclic Redundancy Check present More... | |
bool | HasExtensionFlags () const |
1 bit Extension flags are present More... | |
uint64_t | PTS (void) const |
Presentation Time Stamp, present if HasPTS() is true. More... | |
uint64_t | DTS (void) const |
Decode Time Stamp, present if HasDTS() is true. More... | |
uint | TSSizeInBuffer () const |
uint | PSIOffset () const |
const unsigned char * | pesdata () const |
unsigned char * | pesdata () |
const unsigned char * | data () const |
unsigned char * | data () |
void | SetStreamID (uint id) |
void | SetLength (uint len) |
void | SetTotalLength (uint len) |
void | SetPSIOffset (uint offset) |
uint | CRC (void) const |
void | SetCRC (uint crc) |
uint | CalcCRC (void) const |
bool | VerifyCRC (void) const |
bool | VerifyCRC (int cardid, int pid) const |
Static Public Member Functions | |
static PSIPTable | View (const TSPacket &tspacket) |
static PSIPTable | ViewData (const unsigned char *pesdata) |
Static Public Attributes | |
static const uint | kPsipOffset = 8 |
![]() | |
static constexpr uint | kMpegCRCSize { 4 } |
Protected Member Functions | |
PSIPTable (const TSPacket &tspacket, bool) | |
QString | XMLValues (uint indent_level) const |
![]() | |
PESPacket ()=default | |
noop constructor, only for use by derived classes More... | |
void | Finalize () |
Private Member Functions | |
void | InitPESPacket (TSPacket &tspacket) |
Only handles single TS packet PES packets, for PMT/PAT tables basically. More... | |
Additional Inherited Members | |
![]() | |
unsigned char * | m_pesData { nullptr } |
Pointer to PES data in full buffer. More... | |
unsigned char * | m_fullBuffer { nullptr } |
Pointer to allocated data. More... | |
uint | m_psiOffset { 0 } |
AFCOffset + StartOfFieldPointer. More... | |
uint | m_ccLast { 255 } |
Continuity counter of last inserted TS Packet. More... | |
uint | m_pesDataSize { 0 } |
Number of data bytes (TS header + PES data) More... | |
uint | m_allocSize { 0 } |
Total number of bytes we allocated. More... | |
bool | m_badPacket { false } |
true if a CRC is not good yet More... | |
![]() | |
static const uint | kTheMagicNoCRCCRC = 0xFFFFFFFF |
A PSIP table is a variant of a PES packet containing an MPEG, ATSC or DVB table.
Definition at line 409 of file mpegtables.h.
Definition at line 416 of file mpegtables.h.
|
inline |
Definition at line 429 of file mpegtables.h.
|
inlineexplicit |
Constructor for viewing a section, does not create it's own data.
Definition at line 446 of file mpegtables.h.
|
inlineexplicit |
Definition at line 452 of file mpegtables.h.
|
default |
|
inlineexplicit |
Definition at line 462 of file mpegtables.h.
|
inlineexplicit |
Definition at line 468 of file mpegtables.h.
|
inline |
Definition at line 538 of file mpegtables.h.
Referenced by toString(), and XMLValues().
|
overridevirtual |
1 bit Cyclic Redundancy Check present
Reimplemented from PESPacket.
Definition at line 100 of file mpegtables.cpp.
Referenced by MPEGStreamData::HandleTSTables().
bool PSIPTable::HasSectionNumber | ( | void | ) | const |
Definition at line 216 of file mpegtables.cpp.
Referenced by XMLValues().
|
private |
Only handles single TS packet PES packets, for PMT/PAT tables basically.
Definition at line 768 of file mpegtables.cpp.
|
inline |
Definition at line 528 of file mpegtables.h.
Referenced by MPEGStreamData::HandleTSTables(), toString(), NetworkInformationTable::toString(), ServiceDescriptionTable::toString(), BouquetAssociationTable::toString(), and XMLValues().
|
inline |
Definition at line 534 of file mpegtables.h.
Referenced by ChannelScanSM::HandleBAT(), ChannelScanSM::HandleNIT(), ChannelScanSM::HandleSDT(), ChannelScanSM::HandleSDTo(), MPEGStreamData::HandleTables(), ATSCStreamData::HandleTables(), DVBStreamData::HandleTables(), toString(), NetworkInformationTable::toString(), ServiceDescriptionTable::toString(), BouquetAssociationTable::toString(), ChannelScanSM::UpdateScanTransports(), VerifyPSIP(), and XMLValues().
|
inline |
Definition at line 501 of file mpegtables.h.
|
inline |
Definition at line 543 of file mpegtables.h.
|
inline |
Definition at line 541 of file mpegtables.h.
Referenced by ProgramMapTable::AppendStream(), BouquetAssociationTable::BouquetDescriptors(), BouquetAssociationTable::BouquetDescriptorsLength(), PremiereContentInformationTable::ContentID(), PremiereContentInformationTable::Descriptors(), PremiereContentInformationTable::DescriptorsLength(), PremiereContentInformationTable::DurationInSeconds(), DVBEventInformationTable::LastTableID(), NetworkInformationTable::NetworkDescriptors(), NetworkInformationTable::NetworkDescriptorsLength(), ServiceDescriptionTable::OriginalNetworkID(), DVBEventInformationTable::OriginalNetworkID(), VirtualChannelTable::Parse(), EventInformationTable::Parse(), MasterGuideTable::Parse(), DVBEventInformationTable::Parse(), ProgramMapTable::Parse(), DVBEventInformationTable::SegmentLastSectionNumber(), DVBEventInformationTable::TSID(), and VerifyPSIP().
|
inline |
Definition at line 531 of file mpegtables.h.
Referenced by DVBStreamData::CacheBAT(), MPEGStreamData::CacheCAT(), DVBStreamData::CacheNIT(), MPEGStreamData::CachePAT(), MPEGStreamData::CachePMT(), DVBStreamData::CacheSDT(), MPEGStreamData::DeleteCachedTable(), DVBStreamData::DeleteCachedTable(), ChannelScanSM::HandleBAT(), ChannelScanSM::HandleNIT(), ChannelScanSM::HandleSDT(), ChannelScanSM::HandleSDTo(), MPEGStreamData::HandleTables(), ATSCStreamData::HandleTables(), DVBStreamData::HandleTables(), MPEGStreamData::IsRedundant(), ATSCStreamData::IsRedundant(), DVBStreamData::IsRedundant(), toString(), NetworkInformationTable::toString(), ServiceDescriptionTable::toString(), BouquetAssociationTable::toString(), ChannelScanSM::UpdateScanTransports(), VerifyPSIP(), and XMLValues().
|
inline |
Definition at line 507 of file mpegtables.h.
Referenced by VerifyPSIP().
|
inline |
Definition at line 508 of file mpegtables.h.
|
inline |
Definition at line 499 of file mpegtables.h.
Referenced by DVBStreamHandler::RunSR().
|
inline |
Definition at line 564 of file mpegtables.h.
|
inline |
Definition at line 558 of file mpegtables.h.
|
inline |
Definition at line 561 of file mpegtables.h.
|
inline |
Definition at line 560 of file mpegtables.h.
|
inline |
Definition at line 550 of file mpegtables.h.
|
inline |
Definition at line 547 of file mpegtables.h.
Referenced by NetworkInformationTable::Mutate(), and ServiceDescriptionTable::Mutate().
|
inline |
Definition at line 551 of file mpegtables.h.
|
inline |
Definition at line 556 of file mpegtables.h.
Referenced by ProgramMapTable::Create(), and ProgramAssociationTable::Create().
|
inline |
Definition at line 496 of file mpegtables.h.
Referenced by BouquetAssociationTable::BouquetAssociationTable(), MPEGStreamData::DeleteCachedTable(), ATSCStreamData::DeleteCachedTable(), DVBStreamData::DeleteCachedTable(), DVBEventInformationTable::DVBEventInformationTable(), MPEGStreamData::HandleTables(), ATSCStreamData::HandleTables(), DVBStreamData::HandleTables(), MPEGStreamData::HandleTSTables(), HasCRC(), HasSectionNumber(), insert_crc(), MPEGStreamData::IsRedundant(), ATSCStreamData::IsRedundant(), DVBStreamData::IsRedundant(), NetworkInformationTable::Mutate(), ServiceDescriptionTable::Mutate(), NetworkInformationTable::NetworkInformationTable(), SpliceInformationTable::Parse(), PremiereContentInformationTable::PremiereContentInformationTable(), return_4096_block(), ServiceDescriptionTable::ServiceDescriptionTable(), TimeDateTable::TimeDateTable(), TimeOffsetTable::TimeOffsetTable(), toString(), VirtualChannelTable::toString(), VirtualChannelTable::toStringXML(), VerifyPSIP(), and XMLValues().
|
inline |
Definition at line 515 of file mpegtables.h.
Referenced by BouquetAssociationTable::BouquetID(), MPEGStreamData::CacheCAT(), MPEGStreamData::CreatePATSingleProgram(), MPEGStreamData::DeleteCachedTable(), DVBStreamData::DeleteCachedTable(), MPEGStreamData::HandleTables(), ATSCStreamData::HandleTables(), DVBStreamData::HandleTables(), MPEGStreamData::IsRedundant(), ATSCStreamData::IsRedundant(), DVBStreamData::IsRedundant(), NetworkInformationTable::NetworkID(), return_4096_block(), DVBEventInformationTable::ServiceID(), toString(), ServiceDescriptionTable::TSID(), VerifyPSIP(), and XMLValues().
|
virtual |
Reimplemented in EventInformationTable, ExtendedTextTable, MasterGuideTable, VirtualChannelTable, SystemTimeTable, AggregateEventInformationTable, AggregateExtendedTextTable, NetworkInformationTable, ServiceDescriptionTable, BouquetAssociationTable, ProgramAssociationTable, ProgramMapTable, ConditionalAccessTable, SpliceInformationTable, SCTENetworkInformationTable, NetworkTextTable, ShortVirtualChannelTable, SCTESystemTimeTable, ProgramInformationMessageTable, ProgramNameMessageTable, and AggregateDataEventTable.
Definition at line 789 of file mpegtables.cpp.
Referenced by PrintOutput::Output(), MasterGuideTable::toString(), VirtualChannelTable::toString(), ProgramAssociationTable::toString(), ProgramMapTable::toString(), and ConditionalAccessTable::toString().
|
virtual |
Reimplemented in MasterGuideTable, VirtualChannelTable, SystemTimeTable, ProgramAssociationTable, ProgramMapTable, ConditionalAccessTable, SpliceInformationTable, SCTENetworkInformationTable, NetworkTextTable, ShortVirtualChannelTable, SCTESystemTimeTable, AggregateDataEventTable, AggregateEventInformationTable, AggregateExtendedTextTable, ProgramInformationMessageTable, and ProgramNameMessageTable.
Definition at line 807 of file mpegtables.cpp.
Referenced by PrintOutput::Output().
Definition at line 242 of file mpegtables.cpp.
Referenced by MPEGStreamData::HandleTSTables().
|
inline |
Definition at line 522 of file mpegtables.h.
Referenced by MPEGStreamData::CreatePATSingleProgram(), MPEGStreamData::CreatePMTSingleProgram(), MPEGStreamData::HandleTables(), ATSCStreamData::HandleTables(), DVBStreamData::HandleTables(), MPEGStreamData::IsRedundant(), ATSCStreamData::IsRedundant(), DVBStreamData::IsRedundant(), DTVChannel::SetChannelByString(), toString(), MPEGStreamData::VersionPATSingleProgram(), MPEGStreamData::VersionPMTSingleProgram(), and XMLValues().
Definition at line 487 of file mpegtables.h.
Referenced by ProgramAssociationTable::CreateBlank(), and ProgramMapTable::CreateBlank().
|
inlinestatic |
Definition at line 490 of file mpegtables.h.
Referenced by ProgramMapTable::ViewData().
|
protected |
Definition at line 813 of file mpegtables.cpp.
Referenced by toStringXML(), MasterGuideTable::toStringXML(), VirtualChannelTable::toStringXML(), SystemTimeTable::toStringXML(), ProgramAssociationTable::toStringXML(), ProgramMapTable::toStringXML(), ConditionalAccessTable::toStringXML(), SCTENetworkInformationTable::toStringXML(), and ShortVirtualChannelTable::toStringXML().
|
static |
Definition at line 574 of file mpegtables.h.
Referenced by ProgramAssociationTable::Create(), and VerifyPSIP().