picbuf.h 922 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #ifndef PICBUF_H
  2. #define PICBUF_H
  3. #include <memory>
  4. #include <vector>
  5. #include <QMutex>
  6. #include <QDateTime>
  7. namespace iv {
  8. struct PicData
  9. {
  10. public:
  11. qint64 mnMsgTime;
  12. std::shared_ptr<char> mdata_ptr;
  13. unsigned int mdatasize;
  14. bool mbSPSFrame = false;
  15. };
  16. }
  17. class PicBuf
  18. {
  19. private:
  20. std::vector<iv::PicData> mvectordata_ptr;
  21. qint64 mBufTime = 1500;
  22. qint64 mnReceiveBufTime = 0;
  23. qint64 mLastBufTime = 0;
  24. QMutex mMutexBuf;
  25. private:
  26. int mnFrameRate = 0;
  27. qint64 mnSecondTime = 0; //Time Second.
  28. int mnFrameSecondCount =0; //Last Second Receive message
  29. qint64 mnUpLatency = 1000;
  30. public:
  31. PicBuf();
  32. PicBuf(const PicBuf & other);
  33. void AddData(iv::PicData xPicData);
  34. int GetData(qint64 & nLastTime,iv::PicData & xPicData); //0 No Data 1 Have Data
  35. int GetFrameRate();
  36. void SetLatency(qint64 nlatency);
  37. qint64 GetLatency();
  38. };
  39. #endif // PICBUF_H