#include "analyser.h" #include #include struct StreamData{ long timeScale; std::string media; std::string initialization; std::string initURL; long trackID; unsigned int adaptationSet; unsigned char trackType; }; struct seekPos{ ///\brief Less-than comparison for seekPos structures. ///\param rhs The seekPos to compare with. ///\return Whether this object is smaller than rhs. bool operator<(const seekPos &rhs) const{ if ((seekTime * rhs.timeScale) < (rhs.seekTime * timeScale)){ return true; }else{ if ((seekTime * rhs.timeScale) == (rhs.seekTime * timeScale)){ if (adaptationSet < rhs.adaptationSet){ return true; }else if (adaptationSet == rhs.adaptationSet){ if (trackID < rhs.trackID){return true;} } } } return false; } long timeScale; long long unsigned int bytePos; /// ? long long unsigned int seekTime; /// start long long unsigned int duration; /// duration unsigned int trackID; /// stores representation ID unsigned int adaptationSet; /// stores type unsigned char trackType; /// stores type std::string url; }; class dashAnalyser : public analysers{ public: dashAnalyser(Util::Config config); ~dashAnalyser(); bool packetReady(); void PreProcessing(); // int Analyse(); int doAnalyse(); // void doValidate(); bool hasInput(); void PostProcessing(); private: unsigned int port; std::string url; std::string server; long long int startTime; long long int abortTime; Socket::Connection conn; std::string urlPrependStuff; unsigned int pos; std::set currentPos; std::vector streamData; };