概述
会看到线程中有
Buffer_Handle hOutBuf;
不看还以为是定义了个buf,实际上是个结构体
定义语句 typedef struct _Buffer_Object *Buffer_Handle;
结构体定义typedef struct _Buffer_Object {
Buffer_Type type;
_Buffer_State origState;
_Buffer_State usedState;
Memory_AllocParams memParams;
Int8 *userPtr;
Int32 physPtr;
Int id;
Bool reference;
BufTab_Handle hBufTab;
} _Buffer_Object;
这就是为什么在将视频数据写入文件的时候用Buffer_getUserPtr(hOutBuf)函数不直接用hOutBuf的原因
这是程序设计巧妙之处:平时申请内存空间或者线程共享数据的时候会只申请个buf,这里大多数的共享的都不是个buf,而是一个结构体,里面包含很多的参数,当真正用到数据的时候再编写数据提取函数来获取数据指针
关于Buffer_getUserPtr(hOutBuf)函数的定义
Int8 *Buffer_getUserPtr(Buffer_Handle hBuf)
{
assert(hBuf);
return hBuf->userPtr;
}
最后
以上就是轻松眼睛为你收集整理的DVSDK中的 Buffer_Handle结构的全部内容,希望文章能够帮你解决DVSDK中的 Buffer_Handle结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复