以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。
函数SAMPLE_VENC_1080P_CLASSIC()有七个大步骤。
step 1: init sys variable,即初始化(填充)mpp系统的变量、参数。
step 2: mpp system init,即初始化mmp系统。
step 3: start vi dev & chn to capture,即进行图像的采集。
step 4: start vpss and vi bind vpss,即启动VPSS并绑定VI,进行图像处理。
step 5: start stream venc,即进行编码得到裸流文件。
step 6: stream venc process -- get stream, then save it to file,即将裸流存储起来。
step 7: exit process,即退出进程。
步骤的具体细节如下。
系统初始化(step1和step2)
- 1、配置VB视频缓冲池
- 2、初始化VB
- 3、配置系统(字节对齐)
- 4、初始化系统
配置视频捕获(step3)
- 5、配置MIPI
- 6、初始化ISP
- 7、运行ISP线程
- 8、配置开启VI 设备捕获
- 9、配置开启VI 通道捕获
配置视频处理子系统(step4)
- 10、创建VPSS的group
- 11、获取,配置group属性
- 12、启动group
- 13、绑定VI到VPSS的group
- 14、配置VPSS的通道Chn属性、扩展属性
- 15、配置VPSS的通道模式
- 16、使能VPSS的通道
创建配置编码通道(step5)
- 17、创建编码通道
- 18、开启编码通道接收图像
- 19、绑定VPSS的通道到编码通道
获取编码码流(step6和step7)
- 20、获取编码设备文件句柄,select超时用
- 21、查询编码器状态
- 22、申请码流空间
- 23、获取编码码流到码流空间中
- 24、保存,处理码流
- 25、释放编码码流,释放编码buffer
- 26、释放用户空间