做淘宝优惠网站步骤,西安网站建设服务商十强,上海网站建设服务分录,陕西渭南住房和城乡建设厅网站以下内容源于朱有鹏嵌入式课程的学习与整理#xff0c;如有侵权请告知删除。 一、sample文件夹的介绍
将mpp/sample文件夹以及mpp/include文件夹导入SI后#xff0c;搜索main时可以发现很多main函数。这说明sample文件夹下有很多例程#xff0c;每个例程面向一个典型应用。…以下内容源于朱有鹏嵌入式课程的学习与整理如有侵权请告知删除。 一、sample文件夹的介绍
将mpp/sample文件夹以及mpp/include文件夹导入SI后搜索main时可以发现很多main函数。这说明sample文件夹下有很多例程每个例程面向一个典型应用。我们只分析venc文件夹其完整演示了视频捕获、视频处理、视频编码、视频输出与保存的功能。 可以在每个例程的目录下输入“make”进行编译但要注意文件mpp/sample/Makefile.param中的参数设置具体说明见第一季9sample_venc.c的编译和测试。
以venc例程说明这些文件的调用关系。venc目录下的sample_venc.c文件中的main函数调用了一些位于common目录中的函数而common目录中的函数再调用mpp中的API即上一级目录ko、lib中的函数然后再调用HI3518E内部的硬件单元。 二、sample_venc.c的整体分析
找到sample_venc.c的main函数如下。 我们在终端执行“./sample_venc index”时不同的index对应不同的*argv[1]main函数首先判断参数再跳转到不同的函数。我们重点分析case ‘0’因为我们主要是研究“AD-VI-VPSS-VENC-h264/h265”这条主线见博文第二季1MPP模块概述_天糊土的博客-CSDN博客则需要分析SAMPLE_VENC_1080P_CLASSIC这个函数。 三、SAMPLE_VENC_1080P_CLASSIC函数的流程
函数SAMPLE_VENC_1080P_CLASSIC()有七个大步骤。
初始化MPP系统step12init system step 1: init sys variable即初始化mpp系统相关的变量。 step 2: mpp system init即初始化mpp系统。 见博客第二季4初始化MPP系统step12。 配置视频捕获模块step3VI模块 step 3: start vi dev chn to capture即进行图像的采集。 见博客第二季5配置视频捕获模块step3VI模块 配置视频处理子系统step4VPSS模块 step 4: start vpss and vi bind vpss即启动VPSS并绑定VI进行图像处理。 见博客第二季6配置视频处理子系统step4VPSS模块。 配置编码模块step5VENC模块 step 5: start stream venc即开始进行编码。 见博客第二季7配置编码模块step5VENC模块。 保存编码得到的码流step6Save to File step 6: stream venc process -- get stream, then save it to file把编码得到的裸流保存为裸流文件。 注意这里是将裸流保存为裸流文件见博客第二季8保存编码得到的码流step6其实也可以保存为MP4格式的文件见第7季内容或者通过rtsp协议进行网络传输见第6季内容。 退出进程step7Exit step 7: exit process即退出进程。