#ifndef RVC_LOG_LIBSHAREQUEUE #define RVC_LOG_LIBSHAREQUEUE #define MAX_SHAREQUEUE_LENS 4000 //视频队列最大节点数量 #define MAX_SHAREQNODE_SIZE 8000 //队列单个节点默认最大长度 #ifdef __cplusplus extern "C" { #endif typedef struct _shareq_frame { int size; unsigned char* data; }shareq_frame; typedef struct Clibsharequeue_t Clibsharequeue; //queuename:用于访问共享内存的共享内存文件名。size:默认最大长度,一般使用默认值即可 Clibsharequeue* ClibsharequeueCreate(char* queuename,int size); Clibsharequeue* ClibsharequeueCreate2(char* queuename); Clibsharequeue* ClibsharequeueCreate3(char* queuename, int newcreate); void ClibsharequeueDestroy(Clibsharequeue* queue); //插入数据到队头 int ClibsharequeueInsert(Clibsharequeue* queue, shareq_frame* data, unsigned int nowtime); //读取队头数据 int ClibsharequeueGet(Clibsharequeue* queue, shareq_frame* data); //读取队头图像并删除 int ClibsharequeueGetAndDel(Clibsharequeue* queue, shareq_frame* data); //获取最后的帧时间 unsigned int ClibsharequeueGetLastFrameTime(Clibsharequeue* queue); //获取帧大小 int ClibsharequeueGetFrameSize(Clibsharequeue* queue); //获取队列的长度 int ClibsharequeueGetLens(Clibsharequeue* queue); //清空队列 void ClibsharequeueClearQueue(Clibsharequeue* queue); //删除头部节点 void ClibsharequeueDeleteHead(Clibsharequeue* queue); #ifdef __cplusplus } #endif #endif