#include "input.h" #include #include #include #include #include #include #include namespace Mist{ class inputTSSRT : public Input{ public: inputTSSRT(Util::Config *cfg, SRTSOCKET s = -1); ~inputTSSRT(); void setSingular(bool newSingular); virtual bool needsLock(); virtual std::string getConnectedBinHost(){ if (srtConn){return srtConn.getBinHost();} return Input::getConnectedBinHost(); } protected: // Private Functions bool checkArguments(); bool preRun(); virtual void getNext(size_t idx = INVALID_TRACK_ID); virtual bool needHeader(){return false;} virtual bool isSingular(){return singularFlag;} virtual bool isThread(){return !singularFlag;} virtual bool publishesTracks(){return false;} bool openStreamSource(); void streamMainLoop(); TS::Stream tsStream; ///< Used for parsing the incoming ts stream TS::Packet tsBuf; TS::Assembler assembler; int64_t timeStampOffset; uint64_t lastTimeStamp; Socket::SRTConnection srtConn; bool singularFlag; virtual void connStats(Comms::Statistics &statComm); }; }// namespace Mist typedef Mist::inputTSSRT mistIn;