HLS input cleanup/restructure

This commit is contained in:
Erik Zandvliet 2017-05-12 12:34:14 +02:00 committed by Thulinma
parent a9c5334833
commit 2db54b38fc
2 changed files with 625 additions and 841 deletions

File diff suppressed because it is too large Load diff

View file

@ -28,31 +28,34 @@ namespace Mist {
class Playlist { class Playlist {
public: public:
Playlist(); Playlist(const std::string & uriSrc = "");
std::string codecs; bool atEnd() const;
std::string video; bool isUrl() const;
std::string audio; bool reload();
std::string uri; void addEntry(const std::string & filename, float duration, uint64_t & totalBytes);
std::string uri_root; bool loadURL(const std::string & loadUrl);
std::string source; std::string uri;
const char *packetPtr; std::string uri_root;
int id; std::string source;
bool playlistEnd; const char *packetPtr;
int noChangeCount;
int version; int id;
int targetDuration; bool initDone;
uint64_t media_sequence; bool playlistEnd;
int lastFileIndex; int noChangeCount;
int waitTime; int version;
bool vodLive; uint64_t media_sequence;
PlaylistType playlistType; int lastFileIndex;
std::deque<playListEntries> entries;
int entryCount;
int programId; int waitTime;
int bandwidth; PlaylistType playlistType;
unsigned int lastTimestamp; std::deque<playListEntries> entries;
int entryCount;
unsigned int lastTimestamp;
unsigned int startTime;
}; };
@ -79,9 +82,6 @@ namespace Mist {
int media_sequence; int media_sequence;
bool endPlaylist; bool endPlaylist;
int currentPlaylist; int currentPlaylist;
bool initDone;
std::string init_source;
//std::vector<playListEntries> entries; //std::vector<playListEntries> entries;
std::vector<Playlist> playlists; std::vector<Playlist> playlists;
@ -89,28 +89,21 @@ namespace Mist {
std::map<int,int> pidMapping; std::map<int,int> pidMapping;
std::map<int,int> pidMappingR; std::map<int,int> pidMappingR;
std::string playlistFile;
std::string playlistRootPath;
std::vector<int> reloadNext; std::vector<int> reloadNext;
bool liveStream;
int currentIndex; int currentIndex;
std::string currentFile; std::string currentFile;
std::ifstream in; std::ifstream in;
bool isUrl;
TS::Stream tsStream;///<Used for parsing the incoming ts stream TS::Stream tsStream;///<Used for parsing the incoming ts stream
bool pushing;
Socket::UDPConnection udpCon;
std::string udpDataBuffer;
Socket::Connection conn; Socket::Connection conn;
TS::Packet tsBuf; TS::Packet tsBuf;
int getFirstPlaylistToReload(); int getFirstPlaylistToReload();
int firstSegment(); int firstSegment();
bool getNextSegment(); void waitForNextSegment();
void readPMT(); void readPMT();
bool setup(); bool setup();
bool preSetup(); bool preSetup();
@ -120,27 +113,18 @@ namespace Mist {
void trackSelect(std::string trackSpec); void trackSelect(std::string trackSpec);
FILE * inFile; FILE * inFile;
FILE * tsFile; FILE * tsFile;
bool openURL(std::string urlString, Playlist &p);
void printContent();
void printBuffer();
bool readIndex(); bool readIndex();
bool initPlaylist(std::string uri); bool initPlaylist(const std::string & uri);
bool readPlaylist(std::string uri); bool readPlaylist(const std::string & uri);
bool reloadPlaylist(Playlist &p);
bool readNextFile(); bool readNextFile();
void parseStreamHeader(); void parseStreamHeader();
void addEntryToPlaylist(Playlist &p, std::string filename, float duration, uint64_t &totalBytes);
int getMappedTrackId(int id); int getMappedTrackId(int id);
int getMappedTrackPlaylist(int id); int getMappedTrackPlaylist(int id);
int getOriginalTrackId(int playlistId, int id); int getOriginalTrackId(int playlistId, int id);
int getEntryId(int playlistId, uint64_t bytePos); int getEntryId(int playlistId, uint64_t bytePos);
int cleanLine(std::string &s);
}; };
} }