#ifndef PICBUF_H #define PICBUF_H #include #include #include #include namespace iv { struct PicData { public: qint64 mnMsgTime; std::shared_ptr mdata_ptr; unsigned int mdatasize; bool mbSPSFrame = false; }; } class PicBuf { private: std::vector mvectordata_ptr; qint64 mBufTime = 1500; qint64 mnReceiveBufTime = 0; qint64 mLastBufTime = 0; QMutex mMutexBuf; private: int mnFrameRate = 0; qint64 mnSecondTime = 0; //Time Second. int mnFrameSecondCount =0; //Last Second Receive message qint64 mnUpLatency = 1000; public: PicBuf(); PicBuf(const PicBuf & other); void AddData(iv::PicData xPicData); int GetData(qint64 & nLastTime,iv::PicData & xPicData); //0 No Data 1 Have Data int GetFrameRate(); void SetLatency(qint64 nlatency); qint64 GetLatency(); }; #endif // PICBUF_H