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 |
Public Member Functions inherited from PESPacket | |
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... | |
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 Public Attributes inherited from PESPacket | |
static constexpr uint | kMpegCRCSize { 4 } |
Protected Member Functions | |
PSIPTable (const TSPacket &tspacket, bool) | |
QString | XMLValues (uint indent_level) const |
Protected Member Functions inherited from PESPacket | |
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 | |
Protected Attributes inherited from PESPacket | |
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 Protected Attributes inherited from PESPacket | |
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 435 of file mpegtables.h.
|
inline |
Definition at line 448 of file mpegtables.h.
|
inlineexplicit |
Constructor for viewing a section, does not create it's own data.
Definition at line 465 of file mpegtables.h.
|
inlineexplicit |
Definition at line 471 of file mpegtables.h.
|
default |
|
inlineexplicit |
Definition at line 481 of file mpegtables.h.
|
inlineexplicit |
Definition at line 487 of file mpegtables.h.
|
inlineprivate |
Only handles single TS packet PES packets, for PMT/PAT tables basically.
Definition at line 412 of file mpegtables.h.
Definition at line 506 of file mpegtables.h.
Referenced by ProgramAssociationTable::CreateBlank(), and ProgramMapTable::CreateBlank().
|
inlinestatic |
Definition at line 509 of file mpegtables.h.
Referenced by ProgramMapTable::ViewData().
|
inline |
Definition at line 515 of file mpegtables.h.
Referenced by EITHelper::AddEIT(), AggregateDataEventTable::AggregateDataEventTable(), AggregateEventInformationTable::AggregateEventInformationTable(), AggregateExtendedTextTable::AggregateExtendedTextTable(), BouquetAssociationTable::BouquetAssociationTable(), CableVirtualChannelTable::CableVirtualChannelTable(), ConditionalAccessTable::ConditionalAccessTable(), ATSCStreamData::DeleteCachedTable(), DVBStreamData::DeleteCachedTable(), MPEGStreamData::DeleteCachedTable(), DirectedChannelChangeSelectionCodeTable::DirectedChannelChangeSelectionCodeTable(), DirectedChannelChangeTable::DirectedChannelChangeTable(), DVBEventInformationTable::DVBEventInformationTable(), EventInformationTable::EventInformationTable(), ExtendedTextTable::ExtendedTextTable(), ATSCStreamData::HandleTables(), DVBStreamData::HandleTables(), MPEGStreamData::HandleTables(), MPEGStreamData::HandleTSTables(), HasCRC(), HasSectionNumber(), insert_crc(), ATSCStreamData::IsRedundant(), DVBStreamData::IsRedundant(), MPEGStreamData::IsRedundant(), MasterGuideTable::MasterGuideTable(), NetworkInformationTable::Mutate(), ServiceDescriptionTable::Mutate(), NetworkInformationTable::NetworkInformationTable(), NetworkTextTable::NetworkTextTable(), SpliceInformationTable::Parse(), PremiereContentInformationTable::PremiereContentInformationTable(), ProgramAssociationTable::ProgramAssociationTable(), ProgramInformationMessageTable::ProgramInformationMessageTable(), ProgramMapTable::ProgramMapTable(), ProgramNameMessageTable::ProgramNameMessageTable(), RatingRegionTable::RatingRegionTable(), return_4096_block(), SCTENetworkInformationTable::SCTENetworkInformationTable(), SCTESystemTimeTable::SCTESystemTimeTable(), ServiceDescriptionTable::ServiceDescriptionTable(), ShortVirtualChannelTable::ShortVirtualChannelTable(), SpliceInformationTable::SpliceInformationTable(), SystemTimeTable::SystemTimeTable(), TerrestrialVirtualChannelTable::TerrestrialVirtualChannelTable(), TimeDateTable::TimeDateTable(), TimeOffsetTable::TimeOffsetTable(), VirtualChannelTable::toString(), toString(), VirtualChannelTable::toStringXML(), VerifyPSIP(), VirtualChannelTable::VirtualChannelTable(), and XMLValues().
|
inline |
Definition at line 518 of file mpegtables.h.
Referenced by DVBStreamHandler::RunSR().
|
inline |
Definition at line 520 of file mpegtables.h.
|
inline |
Definition at line 526 of file mpegtables.h.
Referenced by SCTENetworkInformationTable::DescriptorsLength(), ShortVirtualChannelTable::DescriptorsLength(), SCTESystemTimeTable::DescriptorsLength(), ConditionalAccessTable::DescriptorsLength(), ProgramAssociationTable::ProgramCount(), and VerifyPSIP().
|
inline |
Definition at line 527 of file mpegtables.h.
|
inline |
Definition at line 534 of file mpegtables.h.
Referenced by BouquetAssociationTable::BouquetID(), MPEGStreamData::CacheCAT(), MPEGStreamData::CreatePATSingleProgram(), DVBStreamData::DeleteCachedTable(), MPEGStreamData::DeleteCachedTable(), ExtendedTextTable::ExtendedTextTableID(), ATSCStreamData::HandleTables(), DVBStreamData::HandleTables(), MPEGStreamData::HandleTables(), ATSCStreamData::IsRedundant(), DVBStreamData::IsRedundant(), MPEGStreamData::IsRedundant(), NetworkInformationTable::NetworkID(), ProgramMapTable::ProgramNumber(), return_4096_block(), DVBEventInformationTable::ServiceID(), EventInformationTable::SourceID(), toString(), VirtualChannelTable::TransportStreamID(), ProgramAssociationTable::TransportStreamID(), ServiceDescriptionTable::TSID(), VerifyPSIP(), and XMLValues().
|
inline |
Definition at line 541 of file mpegtables.h.
Referenced by EITHelper::AddEIT(), MPEGStreamData::CreatePATSingleProgram(), MPEGStreamData::CreatePMTSingleProgram(), ATSCStreamData::HandleTables(), DVBStreamData::HandleTables(), MPEGStreamData::HandleTables(), ATSCStreamData::IsRedundant(), DVBStreamData::IsRedundant(), MPEGStreamData::IsRedundant(), DTVChannel::SetChannelByString(), toString(), MPEGStreamData::VersionPATSingleProgram(), MPEGStreamData::VersionPMTSingleProgram(), and XMLValues().
|
inline |
Definition at line 547 of file mpegtables.h.
Referenced by MPEGStreamData::HandleTSTables(), NetworkInformationTable::toString(), ServiceDescriptionTable::toString(), BouquetAssociationTable::toString(), toString(), and XMLValues().
|
inline |
Definition at line 550 of file mpegtables.h.
Referenced by DVBStreamData::CacheBAT(), MPEGStreamData::CacheCAT(), DVBStreamData::CacheNIT(), MPEGStreamData::CachePAT(), MPEGStreamData::CachePMT(), DVBStreamData::CacheSDT(), DVBStreamData::DeleteCachedTable(), MPEGStreamData::DeleteCachedTable(), ChannelScanSM::HandleBAT(), ChannelScanSM::HandleNIT(), ChannelScanSM::HandleSDT(), ChannelScanSM::HandleSDTo(), ATSCStreamData::HandleTables(), DVBStreamData::HandleTables(), MPEGStreamData::HandleTables(), ATSCStreamData::IsRedundant(), DVBStreamData::IsRedundant(), MPEGStreamData::IsRedundant(), NetworkInformationTable::toString(), ServiceDescriptionTable::toString(), BouquetAssociationTable::toString(), toString(), ChannelScanSM::UpdateScanTransports(), VerifyPSIP(), and XMLValues().
|
inline |
Definition at line 553 of file mpegtables.h.
Referenced by ChannelScanSM::HandleBAT(), ChannelScanSM::HandleNIT(), ChannelScanSM::HandleSDT(), ChannelScanSM::HandleSDTo(), ATSCStreamData::HandleTables(), DVBStreamData::HandleTables(), MPEGStreamData::HandleTables(), NetworkInformationTable::toString(), ServiceDescriptionTable::toString(), BouquetAssociationTable::toString(), toString(), ChannelScanSM::UpdateScanTransports(), VerifyPSIP(), and XMLValues().
|
inline |
Definition at line 557 of file mpegtables.h.
Referenced by toString(), and XMLValues().
|
inline |
Definition at line 560 of file mpegtables.h.
Referenced by ProgramMapTable::AppendStream(), BouquetAssociationTable::BouquetDescriptors(), BouquetAssociationTable::BouquetDescriptorsLength(), PremiereContentInformationTable::ContentID(), PremiereContentInformationTable::Descriptors(), ConditionalAccessTable::Descriptors(), PremiereContentInformationTable::DescriptorsLength(), PremiereContentInformationTable::DurationInSeconds(), EventInformationTable::EventCount(), EventInformationTable::EventCountRaw(), ExtendedTextTable::EventID(), ExtendedTextTable::ExtendedTextMessage(), ExtendedTextTable::IsChannelETM(), ExtendedTextTable::IsEventETM(), DVBEventInformationTable::LastTableID(), NetworkInformationTable::NetworkDescriptors(), NetworkInformationTable::NetworkDescriptorsLength(), ServiceDescriptionTable::OriginalNetworkID(), DVBEventInformationTable::OriginalNetworkID(), MasterGuideTable::Parse(), VirtualChannelTable::Parse(), DVBEventInformationTable::Parse(), EventInformationTable::Parse(), ProgramMapTable::Parse(), ProgramMapTable::PCRPID(), ProgramMapTable::ProgramInfo(), ProgramMapTable::ProgramInfoLength(), ProgramAssociationTable::ProgramNumber(), ProgramAssociationTable::ProgramPID(), ProgramMapTable::RemoveAllStreams(), DVBEventInformationTable::SegmentLastSectionNumber(), ProgramMapTable::SetPCRPID(), ProgramMapTable::SetProgramInfo(), ProgramMapTable::SetProgramInfoLength(), ExtendedTextTable::SourceID(), DVBEventInformationTable::TSID(), and VerifyPSIP().
|
inline |
Definition at line 562 of file mpegtables.h.
|
inline |
Definition at line 566 of file mpegtables.h.
Referenced by NetworkInformationTable::Mutate(), and ServiceDescriptionTable::Mutate().
|
inline |
Definition at line 569 of file mpegtables.h.
|
inline |
Definition at line 570 of file mpegtables.h.
Referenced by ExtendedTextTable::SetExtendedTextTableID(), ProgramMapTable::SetProgramNumber(), and ProgramAssociationTable::SetTranportStreamID().
|
inline |
Definition at line 575 of file mpegtables.h.
Referenced by ProgramAssociationTable::Create(), and ProgramMapTable::Create().
|
inline |
Definition at line 577 of file mpegtables.h.
|
inline |
Definition at line 579 of file mpegtables.h.
|
inline |
Definition at line 580 of file mpegtables.h.
|
inline |
Definition at line 583 of file mpegtables.h.
|
overridevirtual |
1 bit Cyclic Redundancy Check present
Reimplemented from PESPacket.
Definition at line 95 of file mpegtables.cpp.
Referenced by MPEGStreamData::HandleTSTables().
bool PSIPTable::HasSectionNumber | ( | void | ) | const |
Definition at line 211 of file mpegtables.cpp.
Referenced by XMLValues().
Definition at line 237 of file mpegtables.cpp.
Referenced by MPEGStreamData::HandleTSTables().
|
virtual |
Reimplemented in SpliceInformationTable, AggregateExtendedTextTable, AggregateEventInformationTable, ConditionalAccessTable, ProgramMapTable, SystemTimeTable, ProgramAssociationTable, AggregateDataEventTable, ProgramNameMessageTable, ProgramInformationMessageTable, SCTESystemTimeTable, ShortVirtualChannelTable, VirtualChannelTable, NetworkTextTable, SCTENetworkInformationTable, BouquetAssociationTable, MasterGuideTable, ServiceDescriptionTable, NetworkInformationTable, ExtendedTextTable, and EventInformationTable.
Definition at line 763 of file mpegtables.cpp.
Referenced by PrintOutput::Output(), MasterGuideTable::toString(), VirtualChannelTable::toString(), ProgramAssociationTable::toString(), ProgramMapTable::toString(), ConditionalAccessTable::toString(), and SpliceInformationTable::toString().
|
virtual |
Reimplemented in AggregateExtendedTextTable, AggregateEventInformationTable, ProgramNameMessageTable, ProgramInformationMessageTable, SpliceInformationTable, ConditionalAccessTable, ProgramMapTable, SystemTimeTable, ProgramAssociationTable, AggregateDataEventTable, SCTESystemTimeTable, ShortVirtualChannelTable, VirtualChannelTable, NetworkTextTable, SCTENetworkInformationTable, and MasterGuideTable.
Definition at line 781 of file mpegtables.cpp.
Referenced by PrintOutput::Output(), and SpliceInformationTable::toStringXML().
|
protected |
Definition at line 787 of file mpegtables.cpp.
Referenced by MasterGuideTable::toStringXML(), SCTENetworkInformationTable::toStringXML(), VirtualChannelTable::toStringXML(), ShortVirtualChannelTable::toStringXML(), toStringXML(), ProgramAssociationTable::toStringXML(), SystemTimeTable::toStringXML(), ProgramMapTable::toStringXML(), and ConditionalAccessTable::toStringXML().
|
static |
Definition at line 593 of file mpegtables.h.
Referenced by ProgramAssociationTable::Create(), ConditionalAccessTable::DescriptorsLength(), and VerifyPSIP().