TS::Packet classes no longer rely on global PMT tracking

This commit is contained in:
Thulinma 2020-08-29 00:54:28 +02:00
parent 7423868de4
commit 3baa8d1524
5 changed files with 63 additions and 36 deletions

View file

@ -45,7 +45,10 @@ namespace TS{
void clear();
};
class Assembler;
class Stream{
friend class Assembler;
public:
Stream();
~Stream();
@ -78,6 +81,8 @@ namespace TS{
ProgramAssociationTable associationTable;
std::map<size_t, ADTSRemainder> remainders;
std::set<unsigned int> pmtTracks;
std::map<size_t, uint64_t> lastPMT;
std::map<size_t, ProgramMappingTable> mappingTable;
@ -102,14 +107,12 @@ namespace TS{
std::map<size_t, size_t> rolloverCount;
std::map<size_t, unsigned long long> lastms;
std::set<size_t> pmtTracks;
void parsePES(size_t tid, bool finished = false);
};
class Assembler{
public:
bool assemble(Stream & TSStrm, char * ptr, size_t len);
bool assemble(Stream & TSStrm, char * ptr, size_t len, bool parse = false);
private:
Util::ResizeablePointer leftData;
TS::Packet tsBuf;