MistServer  2.5.3-Pro-19-gf5e75b1 ( Generic_64)
Public Member Functions | Private Member Functions | Private Attributes
TS::Stream Class Reference

#include <ts_stream.h>

Public Member Functions

 Stream (bool _threaded=false)
 
 Stream (bool _threaded=false)
 
void add (char *newPack, unsigned long long bytePos=0)
 
void add (char *newPack, unsigned long long bytePos=0)
 
void add (Packet &newPack, unsigned long long bytePos=0)
 
void add (Packet &newPack, unsigned long long bytePos=0)
 
void clear ()
 
void clear ()
 
void eraseTrack (unsigned long tid)
 
void eraseTrack (unsigned long tid)
 
std::set< unsigned long > getActiveTracks ()
 
std::set< unsigned long > getActiveTracks ()
 
void getEarliestPacket (DTSC::Packet &pack)
 
void getEarliestPacket (DTSC::Packet &pack)
 
void getPacket (unsigned long tid, DTSC::Packet &pack)
 
void getPacket (unsigned long tid, DTSC::Packet &pack)
 
bool hasPacket (unsigned long tid) const
 
bool hasPacket (unsigned long tid) const
 
bool hasPacketOnEachTrack () const
 
bool hasPacketOnEachTrack () const
 
void initializeMetadata (DTSC::Meta &meta, unsigned long tid=0)
 
void initializeMetadata (DTSC::Meta &meta, unsigned long tid=0)
 
bool isDataTrack (unsigned long tid)
 
bool isDataTrack (unsigned long tid)
 
void parse (Packet &newPack, unsigned long long bytePos)
 
void parse (Packet &newPack, unsigned long long bytePos)
 
void parse (char *newPack, unsigned long long bytePos)
 
void parse (char *newPack, unsigned long long bytePos)
 
void parse (unsigned long tid)
 
void parse (unsigned long tid)
 

Private Member Functions

void parsePES (unsigned long tid)
 
void parsePES (unsigned long tid)
 

Private Attributes

std::map< unsigned long, aac::adtsadtsInfo
 
ProgramAssociationTable associationTable
 
IPC::semaphore globalSem
 
std::map< unsigned long, h265::initDatahevcInfo
 
unsigned long long lastPAT
 
std::map< unsigned long, unsigned long long > lastPMT
 
std::map< unsigned long, ProgramMappingTablemappingTable
 
std::map< unsigned long, std::string > metaInit
 
std::map< unsigned long, std::deque< DTSC::Packet > > outPackets
 
std::map< unsigned long, std::deque< unsigned long long > > pesPositions
 
std::map< unsigned long, std::deque< Packet > > pesStreams
 
std::map< unsigned long, unsigned long > pidToCodec
 
std::set< unsigned long > pmtTracks
 
std::map< unsigned long, std::string > ppsInfo
 
std::map< unsigned long, std::string > spsInfo
 
bool threaded
 

Constructor & Destructor Documentation

TS::Stream::Stream ( bool  _threaded = false)
TS::Stream::Stream ( bool  _threaded = false)

Member Function Documentation

void TS::Stream::add ( char *  newPack,
unsigned long long  bytePos = 0 
)
void TS::Stream::add ( char *  newPack,
unsigned long long  bytePos = 0 
)
void TS::Stream::add ( Packet newPack,
unsigned long long  bytePos = 0 
)
void TS::Stream::add ( Packet newPack,
unsigned long long  bytePos = 0 
)
void TS::Stream::clear ( )
void TS::Stream::clear ( )
void TS::Stream::eraseTrack ( unsigned long  tid)
void TS::Stream::eraseTrack ( unsigned long  tid)
std::set< unsigned long > TS::Stream::getActiveTracks ( )
std::set<unsigned long> TS::Stream::getActiveTracks ( )
void TS::Stream::getEarliestPacket ( DTSC::Packet pack)
void TS::Stream::getEarliestPacket ( DTSC::Packet pack)
void TS::Stream::getPacket ( unsigned long  tid,
DTSC::Packet pack 
)
void TS::Stream::getPacket ( unsigned long  tid,
DTSC::Packet pack 
)
bool TS::Stream::hasPacket ( unsigned long  tid) const
bool TS::Stream::hasPacket ( unsigned long  tid) const
bool TS::Stream::hasPacketOnEachTrack ( ) const
bool TS::Stream::hasPacketOnEachTrack ( ) const
void TS::Stream::initializeMetadata ( DTSC::Meta meta,
unsigned long  tid = 0 
)
Todo:
Fix these 2 values
void TS::Stream::initializeMetadata ( DTSC::Meta meta,
unsigned long  tid = 0 
)
bool TS::Stream::isDataTrack ( unsigned long  tid)
bool TS::Stream::isDataTrack ( unsigned long  tid)
void TS::Stream::parse ( Packet newPack,
unsigned long long  bytePos 
)
void TS::Stream::parse ( Packet newPack,
unsigned long long  bytePos 
)
void TS::Stream::parse ( char *  newPack,
unsigned long long  bytePos 
)
void TS::Stream::parse ( char *  newPack,
unsigned long long  bytePos 
)
void TS::Stream::parse ( unsigned long  tid)
void TS::Stream::parse ( unsigned long  tid)
Todo:
Keep track of updates in PAT instead of keeping only the last PAT as a reference
Todo:
Keep track of updates in PMT instead of keeping only the last PMT per program as a reference
void TS::Stream::parsePES ( unsigned long  tid)
private
void TS::Stream::parsePES ( unsigned long  tid)
private
Todo:
Determine keyframe-ness

Field Documentation

std::map< unsigned long, aac::adts > TS::Stream::adtsInfo
private
ProgramAssociationTable TS::Stream::associationTable
private
IPC::semaphore TS::Stream::globalSem
mutableprivate
std::map< unsigned long, h265::initData > TS::Stream::hevcInfo
private
unsigned long long TS::Stream::lastPAT
private
std::map< unsigned long, unsigned long long > TS::Stream::lastPMT
private
std::map< unsigned long, ProgramMappingTable > TS::Stream::mappingTable
private
std::map< unsigned long, std::string > TS::Stream::metaInit
private
std::map< unsigned long, std::deque< DTSC::Packet > > TS::Stream::outPackets
private
std::map< unsigned long, std::deque< unsigned long long > > TS::Stream::pesPositions
private
std::map< unsigned long, std::deque< Packet > > TS::Stream::pesStreams
private
std::map< unsigned long, unsigned long > TS::Stream::pidToCodec
private
std::set< unsigned long > TS::Stream::pmtTracks
private
std::map< unsigned long, std::string > TS::Stream::ppsInfo
private
std::map< unsigned long, std::string > TS::Stream::spsInfo
private
bool TS::Stream::threaded
private

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