libsharequeue.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef RVC_LOG_LIBSHAREQUEUE
  2. #define RVC_LOG_LIBSHAREQUEUE
  3. #define MAX_SHAREQUEUE_LENS 4000 //视频队列最大节点数量
  4. #define MAX_SHAREQNODE_SIZE 8000 //队列单个节点默认最大长度
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. typedef struct _shareq_frame
  9. {
  10. int size;
  11. unsigned char* data;
  12. }shareq_frame;
  13. typedef struct Clibsharequeue_t Clibsharequeue;
  14. //queuename:用于访问共享内存的共享内存文件名。size:默认最大长度,一般使用默认值即可
  15. Clibsharequeue* ClibsharequeueCreate(char* queuename,int size);
  16. Clibsharequeue* ClibsharequeueCreate2(char* queuename);
  17. Clibsharequeue* ClibsharequeueCreate3(char* queuename, int newcreate);
  18. void ClibsharequeueDestroy(Clibsharequeue* queue);
  19. //插入数据到队头
  20. int ClibsharequeueInsert(Clibsharequeue* queue, shareq_frame* data, unsigned int nowtime);
  21. //读取队头数据
  22. int ClibsharequeueGet(Clibsharequeue* queue, shareq_frame* data);
  23. //读取队头图像并删除
  24. int ClibsharequeueGetAndDel(Clibsharequeue* queue, shareq_frame* data);
  25. //获取最后的帧时间
  26. unsigned int ClibsharequeueGetLastFrameTime(Clibsharequeue* queue);
  27. //获取帧大小
  28. int ClibsharequeueGetFrameSize(Clibsharequeue* queue);
  29. //获取队列的长度
  30. int ClibsharequeueGetLens(Clibsharequeue* queue);
  31. //清空队列
  32. void ClibsharequeueClearQueue(Clibsharequeue* queue);
  33. //删除头部节点
  34. void ClibsharequeueDeleteHead(Clibsharequeue* queue);
  35. #ifdef __cplusplus
  36. }
  37. #endif
  38. #endif