MythTV
master
|
The Program Association Table lists all the programs in a stream, and is always found on PID 0. More...
#include <libmythtv/mpeg/mpegtables.h>
Public Member Functions | |
ProgramAssociationTable (const ProgramAssociationTable &table) | |
ProgramAssociationTable (const PSIPTable &table) | |
uint | TransportStreamID (void) const |
uint | ProgramCount (void) const |
uint | ProgramNumber (uint i) const |
uint | ProgramPID (uint i) const |
void | SetTranportStreamID (uint gtsid) |
uint | FindPID (uint progNum) const |
uint | FindAnyPID (void) const |
uint | FindProgram (uint pid) const |
QString | toString (void) const override |
QString | toStringXML (uint indent_level) const override |
Public Member Functions inherited from PSIPTable | |
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 |
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 ProgramAssociationTable * | Create (uint tsid, uint version, const std::vector< uint > &pnum, const std::vector< uint > &pid) |
Static Public Member Functions inherited from PSIPTable | |
static PSIPTable | View (const TSPacket &tspacket) |
static PSIPTable | ViewData (const unsigned char *pesdata) |
Static Private Member Functions | |
static ProgramAssociationTable * | CreateBlank (bool smallPacket=true) |
Friends | |
class | TestMPEGTables |
Additional Inherited Members | |
Static Public Attributes inherited from PSIPTable | |
static const uint | kPsipOffset = 8 |
Static Public Attributes inherited from PESPacket | |
static constexpr uint | kMpegCRCSize { 4 } |
Protected Member Functions inherited from PSIPTable | |
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 () |
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 |
The Program Association Table lists all the programs in a stream, and is always found on PID 0.
Based on info in this table and the ProgramMapTable for the program we are interested in we should be able determine which PID to write to the ringbuffer when given the program stream to record.
NOTE: Broadcasters are encouraged to keep the subprogram:PID mapping constant. If we store this data in the channel database, we can branch-predict which PIDs we are looking for, and can thus "tune" the subprogram more quickly.
Definition at line 617 of file mpegtables.h.
|
inline |
Definition at line 620 of file mpegtables.h.
Referenced by CreateBlank().
|
inlineexplicit |
Definition at line 626 of file mpegtables.h.
|
static |
Definition at line 346 of file mpegtables.cpp.
Referenced by MPEGStreamData::CreatePATSingleProgram(), and DTVChannel::SetChannelByString().
|
inline |
Definition at line 636 of file mpegtables.h.
Referenced by MPEGStreamData::CachePAT(), FirewireSignalMonitor::HandlePAT(), DTVSignalMonitor::HandlePAT(), toString(), and toStringXML().
|
inline |
Definition at line 638 of file mpegtables.h.
Referenced by DTVRecorder::HandlePAT(), DTVSignalMonitor::HandlePAT(), ChannelScanSM::HandlePAT(), toString(), and toStringXML().
Definition at line 645 of file mpegtables.h.
Referenced by DTVRecorder::HandlePAT(), DTVSignalMonitor::HandlePAT(), V4L2encRecorder::run(), ExternalRecorder::run(), ASIRecorder::run(), toString(), and toStringXML().
Definition at line 648 of file mpegtables.h.
Referenced by DTVRecorder::HandlePAT(), DTVSignalMonitor::HandlePAT(), ChannelScanSM::HandlePAT(), V4L2encRecorder::run(), ExternalRecorder::run(), ASIRecorder::run(), toString(), and toStringXML().
|
inline |
Definition at line 654 of file mpegtables.h.
Referenced by Create().
Definition at line 657 of file mpegtables.h.
Referenced by MPEGStreamData::CreatePATSingleProgram(), DTVRecorder::HandlePAT(), DTVSignalMonitor::HandlePAT(), MPEGStreamData::ProcessPAT(), and MPEGStreamData::SetDesiredProgram().
|
inline |
Definition at line 664 of file mpegtables.h.
Referenced by MPEGStreamData::CreatePATSingleProgram().
Definition at line 671 of file mpegtables.h.
|
overridevirtual |
Reimplemented from PSIPTable.
Definition at line 815 of file mpegtables.cpp.
Referenced by MPEGStreamData::CreatePATSingleProgram(), DTVSignalMonitor::HandlePAT(), and ChannelScanSM::HandlePAT().
|
overridevirtual |
Reimplemented from PSIPTable.
Definition at line 853 of file mpegtables.cpp.
|
staticprivate |
Definition at line 331 of file mpegtables.cpp.
Referenced by Create().
|
friend |
Definition at line 686 of file mpegtables.h.