MythTV  master
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | List of all members
PESPacket Class Reference

Allows us to transform TS packets to PES packets, which are used to hold multimedia streams and very similar to PSIP tables. More...

#include <pespacket.h>

Inheritance diagram for PESPacket:
Inheritance graph
[legend]

Public Member Functions

 PESPacket (const unsigned char *pesdata)
 
 PESPacket (const PESPacket &pkt)
 
virtual ~PESPacket ()
 
bool IsClone () const
 
bool AddTSPacket (const TSPacket *tspacket, bool &broken)
 
bool IsGood () const
 
const TSHeadertsheader () const
 
TSHeadertsheader ()
 
void GetAsTSPackets (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
 

Protected Member Functions

 PESPacket ()
 noop constructor, only for use by derived classes More...
 
void Finalize ()
 

Protected Attributes

unsigned char * _pesdata
 Pointer to PES data in full buffer. More...
 
unsigned char * _fullbuffer
 Pointer to allocated data. More...
 
uint _psiOffset
 AFCOffset + StartOfFieldPointer. More...
 
uint _ccLast
 Continuity counter of last inserted TS Packet. More...
 
uint _pesdataSize
 Number of data bytes (TS header + PES data) More...
 
uint _allocSize
 Total number of bytes we allocated. More...
 
bool _badPacket
 true if a CRC is not good yet More...
 

Static Protected Attributes

static const uint kTheMagicNoCRCCRC = 0xFFFFFFFF
 

Private Member Functions

PESPacketoperator= (const PESPacket &pkt)
 

Detailed Description

Allows us to transform TS packets to PES packets, which are used to hold multimedia streams and very similar to PSIP tables.

See also
PSIPTable, TSPacket

Definition at line 25 of file pespacket.h.

Constructor & Destructor Documentation

◆ PESPacket() [1/3]

PESPacket::PESPacket ( )
inlineprotected

noop constructor, only for use by derived classes

Definition at line 29 of file pespacket.h.

◆ PESPacket() [2/3]

PESPacket::PESPacket ( const unsigned char *  pesdata)
inlineexplicit

Definition at line 36 of file pespacket.h.

◆ PESPacket() [3/3]

PESPacket::PESPacket ( const PESPacket pkt)
inline

Definition at line 51 of file pespacket.h.

◆ ~PESPacket()

virtual PESPacket::~PESPacket ( )
inlinevirtual

Definition at line 73 of file pespacket.h.

Member Function Documentation

◆ operator=()

PESPacket& PESPacket::operator= ( const PESPacket pkt)
private

◆ IsClone()

bool PESPacket::IsClone ( ) const
inline

Definition at line 82 of file pespacket.h.

◆ AddTSPacket()

bool PESPacket::AddTSPacket ( const TSPacket tspacket,
bool broken 
)

Definition at line 21 of file pespacket.cpp.

Referenced by MPEGStreamData::AssemblePSIP().

◆ IsGood()

bool PESPacket::IsGood ( ) const
inline

Definition at line 87 of file pespacket.h.

Referenced by MPEGStreamData::AssemblePSIP(), and MPEGStreamData::HandleTSTables().

◆ tsheader() [1/2]

const TSHeader* PESPacket::tsheader ( ) const
inline

◆ tsheader() [2/2]

TSHeader* PESPacket::tsheader ( )
inline

Definition at line 91 of file pespacket.h.

◆ GetAsTSPackets()

void PESPacket::GetAsTSPackets ( vector< TSPacket > &  output,
uint  cc 
) const

Returns payload only PESPacket as series of TSPackets.

Definition at line 104 of file pespacket.cpp.

Referenced by DTVRecorder::HandleSingleProgramPAT(), and DTVRecorder::HandleSingleProgramPMT().

◆ StreamID()

uint PESPacket::StreamID ( ) const
inline

◆ Length()

uint PESPacket::Length ( void  ) const
inline

◆ ScramblingControl()

uint PESPacket::ScramblingControl ( ) const
inline

Definition at line 102 of file pespacket.h.

◆ HighPriority()

bool PESPacket::HighPriority ( ) const
inline

1 bit Indicates if this is a high priority packet

Definition at line 105 of file pespacket.h.

◆ DataAligned()

bool PESPacket::DataAligned ( ) const
inline

1 bit Data alignment indicator (must be 0 for video)

Definition at line 107 of file pespacket.h.

◆ CopyRight()

bool PESPacket::CopyRight ( ) const
inline

1 bit If true packet may contain copy righted material and is known to have once contained materiale with copy rights.

If false packet may contain copy righted material but is not known to have ever contained materiale with copy rights.

Definition at line 112 of file pespacket.h.

◆ OriginalRecording()

bool PESPacket::OriginalRecording ( ) const
inline

1 bit Original Recording

Definition at line 114 of file pespacket.h.

◆ HasPTS()

bool PESPacket::HasPTS ( ) const
inline

1 bit Presentation Time Stamp field is present

Definition at line 117 of file pespacket.h.

◆ HasDTS()

bool PESPacket::HasDTS ( ) const
inline

1 bit Decoding Time Stamp field is present

Definition at line 119 of file pespacket.h.

◆ HasESCR()

bool PESPacket::HasESCR ( ) const
inline

1 bit Elementary Stream Clock Reference field is present

Definition at line 121 of file pespacket.h.

◆ HasESR()

bool PESPacket::HasESR ( ) const
inline

1 bit Elementary Stream Rate field is present

Definition at line 123 of file pespacket.h.

◆ HasDSM()

bool PESPacket::HasDSM ( ) const
inline

1 bit DSM field present (should always be false for broadcasts)

Definition at line 125 of file pespacket.h.

◆ HasACI()

bool PESPacket::HasACI ( ) const
inline

1 bit Additional Copy Info field is present

Definition at line 127 of file pespacket.h.

◆ HasCRC()

virtual bool PESPacket::HasCRC ( void  ) const
inlinevirtual

1 bit Cyclic Redundancy Check present

Reimplemented in PSIPTable.

Definition at line 129 of file pespacket.h.

Referenced by PESPacket().

◆ HasExtensionFlags()

bool PESPacket::HasExtensionFlags ( ) const
inline

1 bit Extension flags are present

Definition at line 131 of file pespacket.h.

◆ PTS()

uint64_t PESPacket::PTS ( void  ) const
inline

Presentation Time Stamp, present if HasPTS() is true.

Definition at line 134 of file pespacket.h.

◆ DTS()

uint64_t PESPacket::DTS ( void  ) const
inline

Decode Time Stamp, present if HasDTS() is true.

Definition at line 145 of file pespacket.h.

◆ TSSizeInBuffer()

uint PESPacket::TSSizeInBuffer ( ) const
inline

Definition at line 160 of file pespacket.h.

Referenced by MPEGStreamData::AssemblePSIP().

◆ PSIOffset()

uint PESPacket::PSIOffset ( ) const
inline

Definition at line 161 of file pespacket.h.

Referenced by MPEGStreamData::AssemblePSIP().

◆ pesdata() [1/2]

const unsigned char* PESPacket::pesdata ( ) const
inline

Definition at line 163 of file pespacket.h.

Referenced by ProgramMapTable::AppendStream(), MPEGStreamData::AssemblePSIP(), PSIPTable::ATSCProtocolVersion(), VirtualChannelTable::ChannelCount(), SpliceInformationTable::CodeWordIndex(), SystemTimeTable::DayDaylightSavingsStarts(), ShortVirtualChannelTable::DefinedChannelsMap(), SCTESystemTimeTable::Descriptors(), SCTENetworkInformationTable::DescriptorsLength(), ShortVirtualChannelTable::DescriptorsLength(), SpliceInformationTable::EncryptionAlgorithm(), SCTENetworkInformationTable::FirstIndex(), SystemTimeTable::GPSOffset(), SystemTimeTable::GPSRaw(), SCTESystemTimeTable::GPSUTCOffset(), SystemTimeTable::HourDaylightSavingsStarts(), ShortVirtualChannelTable::ID(), SystemTimeTable::InDaylightSavingsTime(), ShortVirtualChannelTable::InverseChannelMap(), PSIPTable::IsCurrent(), SpliceInformationTable::IsEncryptedPacket(), NetworkTextTable::LanguageKey(), PSIPTable::LastSection(), SCTENetworkInformationTable::NumberOfRecords(), NetworkInformationTable::Parse(), ServiceDescriptionTable::Parse(), BouquetAssociationTable::Parse(), SCTENetworkInformationTable::Parse(), DVBEventInformationTable::Parse(), ShortVirtualChannelTable::Parse(), SpliceInformationTable::Parse(), PSIPTable::PrivateIndicator(), PSIPTable::psipdata(), SpliceInformationTable::PTSAdjustment(), MasterGuideTable::SCTEMapId(), CableVirtualChannelTable::SCTEMapId(), PSIPTable::Section(), PSIPTable::SectionSyntaxIndicator(), PSIPTable::SetATSCProtocolVersion(), SpliceInformationTable::SetCodeWordIndex(), PSIPTable::SetCurrent(), SpliceInformationTable::SetEncryptedPacket(), SpliceInformationTable::SetEncryptionAlgorithm(), PSIPTable::SetLastSection(), SpliceInformationTable::SetPTSAdjustment(), PSIPTable::SetSection(), SpliceInformationTable::SetSpliceCommandLength(), SpliceInformationTable::SetSpliceCommandType(), SpliceInformationTable::SetSpliceProtocolVersion(), PSIPTable::SetTableIDExtension(), PSIPTable::SetVersionNumber(), SpliceInformationTable::SpliceCommandLength(), SpliceInformationTable::SpliceCommandType(), SpliceInformationTable::SpliceProtocolVersion(), SCTESystemTimeTable::SystemTimeRaw(), MasterGuideTable::TableCount(), PSIPTable::TableIDExtension(), SCTENetworkInformationTable::TableSubtype(), NetworkTextTable::TableSubtype(), ShortVirtualChannelTable::TableSubtype(), SpliceInformationTable::TimeSignal(), VirtualChannelTable::toString(), VirtualChannelTable::toStringXML(), SCTENetworkInformationTable::TransmissionMedium(), NetworkTextTable::TransmissionMedium(), ShortVirtualChannelTable::TransmissionMedium(), TimeDateTable::UTCdata(), PSIPTable::Version(), and ShortVirtualChannelTable::VirtualChannelMap().

◆ pesdata() [2/2]

unsigned char* PESPacket::pesdata ( )
inline

Definition at line 164 of file pespacket.h.

◆ data() [1/2]

const unsigned char* PESPacket::data ( ) const
inline

Definition at line 166 of file pespacket.h.

◆ data() [2/2]

unsigned char* PESPacket::data ( )
inline

Definition at line 167 of file pespacket.h.

◆ SetStreamID()

void PESPacket::SetStreamID ( uint  id)
inline

Definition at line 169 of file pespacket.h.

Referenced by PSIPTable::SetTableID().

◆ SetLength()

void PESPacket::SetLength ( uint  len)
inline

Definition at line 170 of file pespacket.h.

Referenced by ProgramMapTable::CreateBlank(), and PSIPTable::SetSectionLength().

◆ SetTotalLength()

void PESPacket::SetTotalLength ( uint  len)
inline

◆ SetPSIOffset()

void PESPacket::SetPSIOffset ( uint  offset)
inline

Definition at line 182 of file pespacket.h.

Referenced by MPEGStreamData::AssemblePSIP().

◆ CRC()

uint PESPacket::CRC ( void  ) const
inline

◆ SetCRC()

void PESPacket::SetCRC ( uint  crc)
inline

◆ CalcCRC()

uint PESPacket::CalcCRC ( void  ) const

◆ VerifyCRC()

bool PESPacket::VerifyCRC ( void  ) const

◆ Finalize()

void PESPacket::Finalize ( )
inlineprotected

Definition at line 215 of file pespacket.h.

Member Data Documentation

◆ _pesdata

unsigned char* PESPacket::_pesdata
protected

Pointer to PES data in full buffer.

Definition at line 217 of file pespacket.h.

Referenced by PESPacket(), and PSIPTable::VerifyPSIP().

◆ _fullbuffer

unsigned char* PESPacket::_fullbuffer
protected

Pointer to allocated data.

Definition at line 218 of file pespacket.h.

Referenced by PESPacket(), PSIPTable::PSIPTable(), and PSIPTable::VerifyPSIP().

◆ _psiOffset

uint PESPacket::_psiOffset
protected

AFCOffset + StartOfFieldPointer.

Definition at line 220 of file pespacket.h.

Referenced by PSIPTable::PSIPTable().

◆ _ccLast

uint PESPacket::_ccLast
protected

Continuity counter of last inserted TS Packet.

Definition at line 221 of file pespacket.h.

◆ _pesdataSize

uint PESPacket::_pesdataSize
protected

Number of data bytes (TS header + PES data)

Definition at line 222 of file pespacket.h.

Referenced by PESPacket().

◆ _allocSize

uint PESPacket::_allocSize
protected

Total number of bytes we allocated.

Definition at line 223 of file pespacket.h.

Referenced by PSIPTable::VerifyPSIP().

◆ _badPacket

bool PESPacket::_badPacket
protected

true if a CRC is not good yet

Definition at line 224 of file pespacket.h.

◆ kTheMagicNoCRCCRC

const uint PESPacket::kTheMagicNoCRCCRC = 0xFFFFFFFF
staticprotected

Definition at line 228 of file pespacket.h.


The documentation for this class was generated from the following files: