Recording, HLS Push, UDP (Multicast) Input, Threaded TS
This commit is contained in:
parent
1c3e143709
commit
c25a533729
29 changed files with 1809 additions and 815 deletions
|
@ -1,9 +1,12 @@
|
|||
#include "ts_packet.h"
|
||||
#include "adts.h"
|
||||
#include <map>
|
||||
#include <set>
|
||||
#include <deque>
|
||||
#include "h265.h"
|
||||
|
||||
#include "shared_memory.h"
|
||||
|
||||
namespace TS {
|
||||
enum codecType {
|
||||
H264 = 0x1B,
|
||||
|
@ -11,32 +14,47 @@ namespace TS {
|
|||
AC3 = 0x81,
|
||||
MP3 = 0x03,
|
||||
HEVC = 0x06,
|
||||
H265 = 0x24
|
||||
H265 = 0x24,
|
||||
ID3 = 0x15
|
||||
};
|
||||
|
||||
class Stream{
|
||||
public:
|
||||
Stream(bool _threaded = false);
|
||||
void add(char * newPack, unsigned long long bytePos = 0);
|
||||
void add(Packet & newPack, unsigned long long bytePos = 0);
|
||||
void parse(Packet & newPack, unsigned long long bytePos);
|
||||
void parse(char * newPack, unsigned long long bytePos);
|
||||
void parse(unsigned long tid);
|
||||
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 initializeMetadata(DTSC::Meta & meta, unsigned long tid = 0);
|
||||
void clear();
|
||||
void eraseTrack(unsigned long tid);
|
||||
bool isDataTrack(unsigned long tid);
|
||||
std::set<unsigned long> getActiveTracks();
|
||||
private:
|
||||
unsigned long long lastPAT;
|
||||
ProgramAssociationTable associationTable;
|
||||
|
||||
std::map<unsigned long, unsigned long long> lastPMT;
|
||||
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;
|
||||
std::map<unsigned long, h265::initData > hevcInfo;
|
||||
std::map<unsigned long, std::string> metaInit;
|
||||
|
||||
mutable IPC::semaphore globalSem;
|
||||
|
||||
bool threaded;
|
||||
|
||||
std::set<unsigned long> pmtTracks;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue