37 lines
1.2 KiB
C++
37 lines
1.2 KiB
C++
#include "ts_packet.h"
|
|
#include "adts.h"
|
|
#include <map>
|
|
#include <deque>
|
|
|
|
namespace TS {
|
|
enum codecType {
|
|
H264 = 0x1B,
|
|
AAC = 0x0F,
|
|
AC3 = 0x81
|
|
};
|
|
|
|
class Stream{
|
|
public:
|
|
void parse(Packet & newPack, unsigned long long bytePos);
|
|
void parse(char * newPack, unsigned long long bytePos);
|
|
bool hasPacketOnEachTrack() const;
|
|
bool hasPacket(unsigned long tid) const;
|
|
void getPacket(unsigned long tid, DTSC::Packet & pack);
|
|
void getEarliestPacket(DTSC::Packet & pack);
|
|
void initializeMetadata(DTSC::Meta & meta);
|
|
void clear();
|
|
private:
|
|
ProgramAssociationTable associationTable;
|
|
std::map<unsigned long, ProgramMappingTable> mappingTable;
|
|
std::map<unsigned long, std::deque<Packet> > pesStreams;
|
|
std::map<unsigned long, std::deque<unsigned long long> > pesPositions;
|
|
std::map<unsigned long, unsigned long> payloadSize;
|
|
std::map<unsigned long, std::deque<DTSC::Packet> > outPackets;
|
|
std::map<unsigned long, unsigned long> pidToCodec;
|
|
std::map<unsigned long, aac::adts > adtsInfo;
|
|
std::map<unsigned long, std::string > spsInfo;
|
|
std::map<unsigned long, std::string > ppsInfo;
|
|
|
|
void parsePES(unsigned long tid);
|
|
};
|
|
}
|