您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

44 行
1.5KB

  1. #ifndef _avpacket_queue_h_
  2. #define _avpacket_queue_h_
  3. #include "avpacket.h"
  4. #include <stdint.h>
  5. struct avpacket_queue_t;
  6. struct avpacket_queue_t* avpacket_queue_create(int size);
  7. void avpacket_queue_destroy(struct avpacket_queue_t* q);
  8. void avpacket_queue_clear(struct avpacket_queue_t* q);
  9. int avpacket_queue_count(struct avpacket_queue_t* q);
  10. int avpacket_queue_pop(struct avpacket_queue_t* q);
  11. struct avpacket_t* avpacket_queue_front(struct avpacket_queue_t* q);
  12. int avpacket_queue_push(struct avpacket_queue_t* q, struct avpacket_t* pkt);
  13. struct avpacket_t* avpacket_queue_front_wait(struct avpacket_queue_t* q, int ms);
  14. int avpacket_queue_push_wait(struct avpacket_queue_t* q, struct avpacket_t* pkt, int ms);
  15. #if defined(__cplusplus)
  16. class AVPacketQueue
  17. {
  18. public:
  19. AVPacketQueue(int size) :m_pkts(avpacket_queue_create(size)) {}
  20. ~AVPacketQueue() { if (m_pkts) avpacket_queue_destroy(m_pkts); }
  21. public:
  22. void Clear() { avpacket_queue_clear(m_pkts); }
  23. int Count() const { return avpacket_queue_count(m_pkts); }
  24. int Pop() { return avpacket_queue_pop(m_pkts); }
  25. int Push(struct avpacket_t* pkt) { return avpacket_queue_push(m_pkts, pkt); }
  26. int PushWait(struct avpacket_t* pkt, int ms) { return avpacket_queue_push_wait(m_pkts, pkt, ms); }
  27. struct avpacket_t* Front() { return avpacket_queue_front(m_pkts); }
  28. struct avpacket_t* FrontWait(int ms) { return avpacket_queue_front_wait(m_pkts, ms); }
  29. private:
  30. struct avpacket_queue_t* m_pkts;
  31. };
  32. #endif
  33. #endif /* !_avpacket_queue_h_*/