第二季3:sample_venc.c的整体分析

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。

一、sample文件夹的介绍

将mpp/sample文件夹以及mpp/include文件夹导入SI后,搜索main时可以发现很多main函数。这说明sample文件夹下有很多例程,每个例程面向一个典型应用。我们只分析venc文件夹,其完整演示了视频捕获、视频处理、视频编码、视频输出与保存的功能。

可以在每个例程的目录下输入“make”进行编译,但要注意文件mpp/sample/Makefile.param中的参数设置,具体说明见第一季9:sample_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”这条主线(见博文第二季1:MPP模块概述_天糊土的博客-CSDN博客),则需要分析SAMPLE_VENC_1080P_CLASSIC这个函数。

三、SAMPLE_VENC_1080P_CLASSIC函数的流程

函数SAMPLE_VENC_1080P_CLASSIC()有七个大步骤。

初始化MPP系统(step1&2:init system)

step 1: init sys variable,即初始化mpp系统相关的变量。

step 2: mpp system init,即初始化mpp系统。

见博客第二季4:初始化MPP系统(step1&2)。

配置视频捕获模块(step3:VI模块)

step 3: start vi dev & chn to capture,即进行图像的采集。

见博客第二季5:配置视频捕获模块(step3:VI模块)

配置视频处理子系统(step4:VPSS模块)

step 4: start vpss and vi bind vpss,即启动VPSS并绑定VI,进行图像处理。

见博客第二季6:配置视频处理子系统(step4:VPSS模块)。

配置编码模块(step5:VENC模块)

step 5: start stream venc,即开始进行编码。

见博客第二季7:配置编码模块(step5:VENC模块)。

保存编码得到的码流(step6:Save to File)

step 6: stream venc process -- get stream, then save it to file,把编码得到的裸流保存为裸流文件。

注意这里是将裸流保存为裸流文件(见博客第二季8:保存编码得到的码流(step6)),其实也可以保存为MP4格式的文件(见第7季内容),或者通过rtsp协议进行网络传输(见第6季内容)。

退出进程(step7:Exit)

step 7: exit process,即退出进程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

poj 2891 Strange Way to Express Integers

题目&#xff1a;http://poj.org/problem?id2891 思路&#xff1a;扩展欧几里得 #include <cstdio> #include <cstring> #include <iostream> #include <cmath> #include <algorithm> using namespace std; #define maxn 100010 int n; long lo…

读书笔记2014第13本:《富爸爸,穷爸爸》

早就收藏了《富爸爸&#xff0c;穷爸爸》这本书&#xff0c;一直没看&#xff0c;最近仔细翻看一遍&#xff0c;发现自己智商一般&#xff0c;情商不行&#xff0c;原来财商更差&#xff0c;连书里的穷爸爸也比不上。这本书在这个时代再看&#xff0c;已经跟不上形势的发展了&a…

第三季1:ORTP库的移植与视频的实时传输实验

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 本节内容是移植ORTP库&#xff0c;并使用ORTP库来完成视频的实时传输。 一、ORTP的简介 1、视频网络传输的两种方式 &#xff08;1&#xff09;基于下载的方式。比如http&#xff08;Hyper Text T…

有赞下拉菜单html,有赞vant-ui Tabs、List、PullRefresh组件实践

Vant ui Vue.js 部分组件实践功能需求是实现一个移动端的栏目列表切换&#xff0c;于此同时列表需要进行下拉刷新&#xff0c;上拉加载如下图&#xff0c;大概是一个这样的东西看起来是挺简单的&#xff0c;实现起来很方便。没错&#xff0c;我当时也是这么想的&#xff0c;结…

第五季1:AP模式USB-WIFI网卡移植与测试

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 内容总结 &#xff08;1&#xff09;HI3518EWIFI做AP&#xff0c;PC做STA&#xff0c;实现局域网内ortp视频传输。 &#xff08;2&#xff09;HI2518EWIFI做STA&#xff0c;PC做STA&#xff0c;外部…

免费社交类图标集

免费下载 这是一套免费社交类型的图标集&#xff0c;包含35种不同内容的图标。包括当前最热的Instagram&#xff0c;Evernatoe等。和往常推荐的一样&#xff0c;PSD文件可自行调整大小,50*50像素。它们可以被用在商业项目上&#xff0c;如果你也喜欢相关类型的图标&#xff0c;…

第五季2:STA模式USB-WIFI网卡移植与测试

以下内容源于朱有鹏课程&#xff0c;如有侵权&#xff0c;请告知删除。 参考博客 hisi3518ev200移植MT7601_fsczp的博客-CSDN博客 wpa_supplicant移植与使用_andylauren的博客-CSDN博客 Linux wpa_cli 调试方法_weixin_34168700的博客-CSDN博客 12 海思Hi3518E移植WIFI驱动(ST…

关于ping命令的工作原理

2019独角兽企业重金招聘Python工程师标准>>> 当我们在用ping命令ping地址的时候会向target主机发送一个ICMP协议中的echo包&#xff0c;如果对方living&#xff08;活动状态&#xff09;。 则会返回一个echo包。 TTL的值&#xff1a;这个值对我们有什么用&#xff0…

第七季1:分析MP4文件封装格式

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c;如有侵权请告知删除。 参考内容 &#xff08;1&#xff09;mp4文件格式解析 - nigaopeng - 博客园&#xff08;推荐&#xff09; &#xff08;2&#xff09;你真的懂 MP4 格式吗&#xff1f; &#xff08;3&#xff09;m…

第七季2:移植MP4v2库 与 将H.264码流打包成MP4格式的文件

以下内容源于朱有鹏课程的学习与整理&#xff0c;如有侵权请告知删除。 前言 本文首先移植MP4V2库&#xff0c;然后运行修改后的sample代码以生成MP4文件。 利用MP4v2库&#xff0c;可以将编码方式为H264的视频码流打包、封装为MP4格式的文件。 一、移植MP4v2库 1、下载MP4…

新高考不选物理可以学计算机吗,新高考选科中物理真的那么重要吗?没有选物理是不是完了?...

文/圆梦志愿 伏老师众所周知&#xff0c;选科是我国新高考中最重要的事情之一&#xff0c;且涉及到了多门选考科目。其中&#xff0c;要数物理的话题性相对最强。那么&#xff0c;高考选科是不是物理特别重要&#xff1f;新高考没有选物理是不是完了&#xff1f;一、高考选科是…

参加第三届信息化创新克拉玛依国际学术论坛

据老孙说前二届在克拉玛依的数字油田的会议规格很高&#xff0c;可惜一直没机会参加。2014年9月3日至4日举办第三届&#xff0c;无论如何抓住了这次机会&#xff0c;不过会议的内容有些让我失望&#xff0c;克拉玛依的心思已经放在数字城市上了&#xff0c;数字油田的主题被冲淡…

Telnet远程登录 与 海思proc文件系统

以下内容源于朱有鹏嵌入式课程的学习与整理&#xff0c; 如有侵权请告知删除。 内容总结 &#xff08;1&#xff09;添加“ telnet远程登录 ”这种调试方式。 &#xff08;2&#xff09;介绍“ 海思proc文件系统 ”这种调试接口。 一、telnet远程登录 1、telnet远程登录的意…

北邮-上机-提交错误解决及一些经验

2019独角兽企业重金招聘Python工程师标准>>> 1、出现Time Limit Exceed问题 答&#xff1a;三种原因&#xff1a;1、程序死循环或太多的循环&#xff1b;2、对极限状况计算量太大&#xff0c;需要优化程序&#xff0c;如对10000个以上进行排序必须使用快速排序&…

RAM、ROM和FLASH三大类常见存储器简介

以下内容源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 参考博客&#xff1a; Flash、RAM、ROM的区别_天籁东东的博客-CSDN博客_flash和rom的区别 RAM、ROM和FLASH三大类常见存储器简介 - 存储技术 - 电子发烧友网 RAM、NANDFlash、NORFlash的区别详解 - 百度…

wangeditor html编辑,Vue整合wangEditor富文本编辑器

最近在做项目时&#xff0c;客户有个发布新闻动态的功能&#xff0c;具体页面内容让客户自己编写&#xff0c;所以要选择富文本编辑器&#xff0c;这样用户体验好一点。网上有很多的富文本编辑器&#xff0c; 因为项目的功能并不是很复杂&#xff0c;所以选择了wangEditor&…

DreamWeaver连接Tomcat用以编辑和测试JSP

2019独角兽企业重金招聘Python工程师标准>>> 3 、打开软件之后&#xff0c;大家选择【站点】中的【新建站点】 。 4 、填写要填的内容。 站点名称&#xff1a;可以随便起&#xff0c;只是用来区分站点用的。因为&#xff0c;可以建立多个站点。 本地根文件夹&…

2013多校第三场

hdu 4629 题意&#xff1a;给你n个三角形&#xff0c;问覆盖1~n次的面积各是多少&#xff0c;n < 50; 分析&#xff1a;取出所有端点和交点的x坐标&#xff0c;排序&#xff0c;然后对于每一段xi~xi1的范围的线段都是不相交的&#xff0c;所以组成的 面积要么是三角形&#…

TSS 任务状态段

TSS(任务状态段)1 什么是TSS TSS 全称task state segment&#xff0c;是指在操作系统进程管理的过程中&#xff0c;任务&#xff08;进程&#xff09;切换时的任务现场信息。 2 TSS工作细节 TSS在任务切换过程中起着重要作用&#xff0c;通过它实现任务的挂起和恢复。所谓…

Linux下C语言程序的内存布局

以下内容源于C语言中文网的内容学习与整理。如有侵权&#xff0c;请告知删除。 一、C语言内存布局 C程序所占用的内存&#xff0c;可以划分为以下几个部分。 1、栈区&#xff08;stack&#xff09;。由编译器自动分配释放&#xff0c;存放函数的参数值&#xff0c;局部变量的值…