当前位置: 首页 > wzjs >正文

做网站一个月多少钱世界互联网峰会

做网站一个月多少钱,世界互联网峰会,网络设计专业可以学什么,企业网站域名备案流程一.RV1126 VI模块采集摄像头YUV数据的流程 step1:VI模块初始化 step2:启动VI模块工作 step3:开启多线程采集VI数据并保存 1.1初始化VI模块: VI模块的初始化实际上就是对VI_CHN_ATTR_S的参数进行设置、然后调用RK_MPI_VI_SetC…

一.RV1126 VI模块采集摄像头YUV数据的流程

step1:VI模块初始化

step2:启动VI模块工作

step3:开启多线程采集VI数据并保存

1.1初始化VI模块:

VI模块的初始化实际上就是对VI_CHN_ATTR_S的参数进行设置、然后调用RK_MPI_VI_SetChnAttr设置VI模块并使能RK_MPI_VI_EnableChn

RK_MPI_VI_SetChnAttr

设置VI通道属性

RK_MPI_VI_SetChnAttr(VI_PIPE ViPipe, VI_CHN ViChn, const VI_CHN_ATTR_S *pstChnAttr);

参数名称                                描述                                                                                输入/输出
ViPipe                                 VI 管道号。                                                                            输入
ViChn                                 VI 通道号。取值范围:[0, VI_MAX_CHN_NUM)。                输入
pstChnAttr                          VI 通道属性结构体指针。                                                       输入

 返回值描述
0 成功。非0 失败,其值参见错误码。
【需求】
头文件:rkmedia_api.h
库文件:libeasymedia.so

【注意】
若被设置的通道已通过RK_MPI_SYS_Bind与其他通道绑定,则需在使用该函数设置前通过
RK_MPI_SYS_UnBind进行解绑。
若被设置的通道已使用RK_MPI_VI_EnableChn使能,则需在使用该函数设置前通过
RK_MPI_VI_DisableChn 关闭该通道。

1.2启动VI模块:

设置完上面的VI模块后,就要开启VI模块的工作,使用的API是RK_MPI_VI_StartStream

RK_MPI_VI_StartStream

启动视频流。

RK_S32 RK_MPI_VI_StartStream(VI_PIPE ViPipe, VI_CHN ViChn);

参数名称            描述                                                                                            输入/输出
ViPipe               VI 管道号。                                                                                     输入
ViChn               VI 通道号。取值范围:[0, VI_MAX_CHN_NUM)。                         输入

返回值描述
0 成功。
非0 失败,其值参见错误码。

【需求】
头文件:rkmedia_api.h
库文件:libeasymedia.so

1.3使用多线程的方式去采集:

开启一个线程去采集每一帧VI模块的数据,使用的API是RK_MPI_SYS_GetMediaBuffer这个API的具体作用是获取指定通道中的数据,具体的定义如下:

enModID:模块号ID,模块号指的是目前使用的是哪个模块如:VI模块(RK_ID_VI)、VENC模块(RK_ID_VENC)

s32ChnID:通道号ID,这里的通道号跟初始化通道的ID号一致。

S32MilliSec:默认是-1,阻塞状态。

注意:RK_MPI_SYS_GetMediaBuffer获取的数据是一个整体的数据,换言之这个数据包含了缓冲区指针和缓冲区大小。如下图:

拿到整体数据后,我们就要对整体数据进行分割操作。所谓的分割操作,就是要获取整体数据里面的缓冲区指针缓冲区大小。那具体的我们来看看下面的API是怎么获取到它的具体数据。

缓冲区指针的获取:

RK_MPI_MB_GetPtr就是获取每一帧的具体指针,也就是我们每一帧数据。

缓冲区长度的获取

RK_MPI_MB_GetSize就是获取每一帧数据的长度。

获取完具体的缓冲区数据和缓冲区大小之后,就开始写入文件。写入文件的操作就是fwrite就可以写入。

二.代码的实战

初始VI模块

设置使能

启动VI模块

开启多线程处理

http://www.dtcms.com/wzjs/97422.html

相关文章:

  • 衡水微网站制作怎么做南京网站快速排名提升
  • wap网站模板下载百度识图扫一扫入口
  • php网站好处seo推荐
  • 做网站的视频教学搜狗站长平台
  • 郑州网站建设moran哪里有学电脑培训班
  • 建设企业功能网站百度云怎么找资源
  • 如何给自己的公司做网站腾讯推广一次广告多少钱
  • 阅读网站建设网页关键词排名优化
  • 冯宗耀seo教程如何优化网站
  • 专业的河南网站建设公司产品软文撰写
  • 建网站公司企业文化内容范本
  • 网页设计的基本原则有哪些seo站群优化技术
  • 网站开发答辩知识点商务软文写作300字
  • 天津展示型网站建设外包互联网销售是什么意思
  • 政府网站建设问题及对策sem竞价代运营公司
  • 福田企业网站优化方案网络营销实施方案
  • wordpress日记seo怎么做关键词排名
  • 手机网站界面设计今日疫情最新消息
  • 建设内部网站目的线上推广是什么意思
  • 网站建设 维护 运营情况报告seo专业培训技术
  • 自适应网站建设优化建站百度快照官网
  • 网站制作工资流量精灵网页版
  • 娃哈哈网站建设的目标青岛seo网站管理
  • 房地产网站互动设计公司网站建设黄页在线免费
  • 网站文风seo优化总结
  • 网站建设需要的技术路线关键词优化的主要工具
  • 网站怎么做多语言展示免费网站推广网站破解版
  • 黄楼企业建站流程seo中国官网
  • 织梦做网站的详情网络渠道有哪些
  • wordpress内存北京seo代理公司