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

rk3568之mpp开发笔记mpp移植到开发板

前言:

大家好,今天给大家介绍的内容是rk平台的mpp编解码这块的内容,在rk目前看到有三套框架涉及到编解码内容:

  • 1、rkmedia

  • 2、rockit

  • 3、mpp

9ea77c9702a3f9db97d20f51508c165f.png

这三种不同形式的编解码方式,后面再做详细的框架对比,今天我们主要是怎么移植mpp源码到开发板里面去。

这里主要是记录一下学习过程!

开始移植mpp源码

mpp源码一般在对应的sdk里面的external里面也有,我这里不用sdk里面的mpp源码,而是从rockchip官方仓库里面下载最新的mpp源码:

https://github.com/rockchip-linux/mpp/tree/release
06e2d0d0cd2c0490dcb698db758e97e2.png

现在我们开始来进行一定的修改:

65a73d99d293010f5586e4ed9a9576d5.png
mpp源码目录

上面我们修改这个路径下的两个文档内容:

116a34ccbc4c5ec95aebefec7b2282d5.png

最终内容内容修改如下:

76d0efea34aa76266f2093b30a7ad45a.png

arm.linux.cross.cmake

b7d7d07cc6945a7942f2662670ec265c.png

make-Makefiles.bash

接着还需要修改一个地方,不然到时候移植到开发板上,我们运行demo,发现终端没有任何的打印log,就让人很奇怪,所以需要在osal里面做一个log打印输出语句:

c88010f8dec80bf4616699e5dcf885fa.png

添加如下两条打印语句:

void os_log(const char* tag, const char* msg, va_list list)
{char line[LINE_SZ] = {0};snprintf(line, sizeof(line), "%s: %s", tag, msg);vsyslog(LOG_INFO, line, list);vfprintf(stdout, line, list);
}void os_err(const char* tag, const char* msg, va_list list)
{char line[LINE_SZ] = {0};snprintf(line, sizeof(line), "%s: %s", tag, msg);vsyslog(LOG_ERR, line, list);vfprintf(stderr, line, list);
}

4f61aef4bd22683687502a7e02b88f88.png

最终结果

现在我们可以来开始进行编译了:

9c2246ec33a553a4f23704a97a41c033.png70171fcc2bcfeb3ab3d21a0c88f1269e.pngce68930d4435e9d59054f3e067c27d79.pnga655971b6f21efa8a89d4fda9a860e58.png

最终编译结果

移植到开发板上执行测试解码:

传输到开发板上来:

f5150a71d39ef9fcd5869923971b25e6.png

我们可以直接执行这个测试程序,可以看到一些有用的参数说明:

d590552db3c5077efc588b31118baf61.png

开始测试:

1e4b86f978dff0429c9816a6e4c4e903.png

好了,整个移植过程就结束了,下一期文章,我们开始构造属于自己的mpp工程,怎么解码码流到屏幕上去显示,循环播放演示以及mpp的整个架构和api的使用介绍,我们下期见!

相关文章:

rk3568之mpp开发笔记mpp移植到开发板

前言: 大家好,今天给大家介绍的内容是rk平台的mpp编解码这块的内容,在rk目前看到有三套框架涉及到编解码内容: 1、rkmedia 2、rockit 3、mpp 这三种不同形式的编解码方式,后面再做详细的框架对比,今天我…...

Vue解决跨域问题

要解决 Vue 项目的跨域问题并通过 vue.config.js 配置代理,可以按照以下步骤修改 vue.config.js 文件。你提供的代码大部分已经正确,只需要做一些格式上的调整。以下是正确的 vue.config.js 配置: // vue.config.jsmodule.exports {devServ…...

Kubernetes Nginx-Ingress | 禁用HSTS/禁止重定向到https

目录 前言禁用HSTS禁止重定向到https关闭 HSTS 和设置 ssl-redirect 为 false 的区别 前言 客户请求经过ingress到服务后,默认加上了strict-transport-security,导致客户服务跨域请求失败,具体Response Headers信息如下; 分析 n…...

TortoiseGit的下载、安装和配置

一、TortoiseGit的简介 tortoiseGit是一个开放的git版本控制系统的源客户端,支持Winxp/vista/win7.该软件功能和git一样 不同的是:git是命令行操作模式,tortoiseGit界面化操作模式,不用记git相关命令就可以直接操作,读…...

如何绕过IP禁令

网站、游戏和应用程序可以屏蔽特定IP地址,从而阻止使用该IP地址的任何人访问其服务。这称为IP禁令。管理员可以出于多种原因(例如发出过多请求或可疑活动)屏蔽IP地址。但是,这些禁令会使收集数据或访问在线内容变得更加困难。 一…...

Vue3的provide和inject实现多级传递的原理

先来看个demo&#xff0c;这个是父组件&#xff0c;代码如下&#xff1a; <template><ChildDemo /> </template><script setup> import ChildDemo from "./child.vue"; import { ref, provide } from "vue"; // 提供响应式的值 c…...

使用html2canvas实现前端截图

一、主要功能 网页截图&#xff1a;html2canvas通过读取DOM结构和元素的CSS样式&#xff0c;在客户端生成图像&#xff0c;不依赖于服务端的渲染。它可以将指定的DOM元素渲染为画布&#xff08;canvas&#xff09;&#xff0c;并生成图像。多种输出格式&#xff1a;生成的图像…...

使用 Python 爬取某网站简历模板(bs4/lxml+协程)

使用 Python 爬取站长素材简历模板 简介 在本教程中&#xff0c;我们将学习如何使用 Python 来爬取站长素材网站上的简历模板。我们将使用requests和BeautifulSoup库来发送 HTTP 请求和解析 HTML 页面。本教程将分为两个部分&#xff1a;第一部分是使用BeautifulSoup的方法&am…...

深度学习模型中音频流式处理

音频流式处理的介绍 在现代深度学习应用中&#xff0c;音频处理是一个重要的领域&#xff0c;尤其是在语音识别、音乐生成和音频分类等任务中。流式处理&#xff08;Streaming Processing&#xff09;是一种有效的处理方式&#xff0c;它允许模型逐帧处理音频数据&#xff0c;…...

C语言(字符数组和字符指针)

字符串实现 在C语言中&#xff0c;表示一个字符串有以下两种形式&#xff1a; 用字符数组存放一个字符串。用字符指针指向一个字符串。 案例 #include <stdio.h>/*** 方式1&#xff1a;使用字符数组实现字符串*/ void str_test1(){// 定义一个伪字符串char str[] &q…...

SkyWalking Helm Chart 4.7.0 安装、配置

https://skywalking.apache.org/events/release-apache-skywalking-kubernetes-helm-chart-4.7.0/https://github.com/apache/skywalking-helm/tree/v4.7.0https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/简介 skywalking 是分布式系统的 APM(Applicat…...

微搭低代码AI组件单词消消乐从0到1实践

目录 1 为什么要开发单词消消乐2 需要具备什么功能3 采用什么技术方案实现4 逻辑设计4.1 数据结构设计4.2 游戏的核心逻辑4.3 数据设计 5 代码详解5.1 导入依赖5.2 定义函数组件5.3 数据初始化5.4 状态定义5.5 打乱解释的逻辑5.6 定义选择单词的函数5.7 定义选择解释的函数5.8 …...

23种设计模式之中介者模式

目录 1. 简介2. 代码2.1 Mediator &#xff08;中介者接口&#xff09;2.2 ChatRoom &#xff08;具体中介者类&#xff09;2.3 User &#xff08;同事接口&#xff09;2.4 ChatUser &#xff08;具体同事类&#xff09;2.5 Test &#xff08;测试&#xff09;2.6 运行结果 3. …...

【Golang】Go语言编程思想(六):Channel,第六节,并发编程模式

并发模式 下例重新对 channel 的用法进行回顾&#xff1a; package mainimport ("fmt""math/rand""time" )func msgGen(name string) chan string {c : make(chan string)go func(name string) { // 在这个 goroutine 当中向外发送数据i : 0fo…...

unity打包web,如何减小文件体积,特别是 Build.wasm.gz

unity打包WebGL&#xff0c;使用的是wasw&#xff0c;最终生成的Build.wasm.gz体积很大&#xff0c;有6.5M&#xff0c;有几个方法可以稍微减小这个文件的大小 1. 裁剪引擎代码&#xff1a; 此步可将大小从6.5减小到 6.2&#xff08;此项默认开启&#xff0c;只是改了裁剪等级…...

go引入skywalking

前置条件&#xff1a;安装好jdk11&#xff0c;linux服务器&#xff08;centos7.9&#xff09;&#xff0c;go版本&#xff08;我的是1.18&#xff0c;1.21都可以&#xff09; 1.下载skywalking Downloads | Apache SkyWalking 2.下载agent源码 Downloads | Apache SkyWalkin…...

大华DSS数字监控系统 attachment_downloadAtt.action 任意文件下载漏洞复现

0x01 产品描述: 大华 DSS 数字监控系统是大华开发的一款安防视频监控系统,拥有实时监视、云台操作、录像回放、报警处理、设备管理等功能。0x02 漏洞描述: 大华DSS数字监控系统 attachment_downloadAtt.action接口存在任意文件读取漏洞,未经身份验证攻击者可通过该漏洞读取…...

qt 封装 调用 dll

这个目录下 &#xff0c;第一个收藏的这个 &#xff0c;可以用&#xff0c; 但是有几个地方要注意 第一.需要将dll的头文件添加到qt的文件夹里面 第二&#xff0c;需要在pro文件里面添加动态库路径 第三&#xff0c;如果调用dll失败&#xff0c;那么大概需要将dll文件放在e…...

Python使用Selenium库获取 网页节点元素、名称、内容的方法

我们要用到一些网页源码信息&#xff0c;例如获取一些节点的class内容&#xff0c; 除了使用Beautifulsoup来解析&#xff0c;还可以直接用Selenium库打印节点&#xff08;元素&#xff09;名称&#xff0c;用来获取元素的文本内容或者标签名。 例如获取下面的class的内容&am…...

系统安全——访问控制访问控制

访问控制 概念 什么是访问控制 access control 为用户对系统资源提供最大限度共享的基础上&#xff0c;对用户的访问权进行管理&#xff0c;防止对信息的非授权篡改和滥用 ​ 访问控制作用 保证用户在系统安全策略下正常工作 拒绝非法用户的非授权访问请求 拒绝合法用户越权…...

SQL Server 数据库还原到某个时点(完整恢复模式)

将 SQL Server 数据库还原到某个时点&#xff08;完整恢复模式&#xff09; 适用范围&#xff1a; SQL Server 本主题介绍如何使用 SQL Server Management Studio 或 Transact-SQL 将数据库还原到 SQL Server 中的某个时间点。 本主题仅与使用完整恢复模式或大容量日志恢复模…...

埃隆马斯克X-AI发布Grok-2大模型,快来体验~

引言 近年来&#xff0c;人工智能技术的快速发展推动了大语言模型的广泛应用。无论是日常生活中的智能助手&#xff0c;还是行业中的自动化解决方案&#xff0c;大语言模型都扮演着越来越重要的角色。2024年&#xff0c;X-AI推出了新一代的大模型——Grok-2&#xff0c;这款模…...

Python工厂设计模式:简化对象创建

Python工厂设计模式&#xff1a;简化对象创建 引言什么是工厂模式&#xff1f;简单工厂模式示例定义基类和子类创建工厂类使用工厂创建对象 优点使用场景总结 引言 在编程中&#xff0c;我们经常需要创建不同的对象&#xff0c;但有时创建对象的逻辑可能会变得复杂。工厂设计模…...

【隐私计算篇】隐私集合求交(PSI)原理深入浅出

隐私集合求交技术是多方安全计算领域的一个子问题&#xff0c;通常也被称为安全求交、隐私保护集合交集或者隐私交集技术等&#xff0c;其目的是允许持有各自数据集的双方或者多方&#xff0c;执行两方或者多方集合的交集计算&#xff0c;当PSI执行完成&#xff0c;一方或者两方…...

工作中常用的8种设计模式

前言 设计模式在我们日常的软件开发中无处不在&#xff0c;它们帮助我们编写更易扩展、更具可读性的代码。 今天结合我实际工作场景和源码实例&#xff0c;跟大家一起聊聊工作中最常用的8种设计模式&#xff0c;希望对你会有所帮助。 1. 单例模式 单例模式确保一个类只有一…...

Qwen 论文阅读记录

本文仅作自己初步熟悉大模型&#xff0c;梳理之用&#xff0c;慢慢会更改/增加/删除&#xff0c;部分细节尚未解释&#xff0c;希望不断学习之后&#xff0c;能够完善补充。若有同道之人&#xff0c;欢迎指正探讨。 关于后面的code-qwen and math-qwen&#xff0c;我个人认为依…...

自动驾驶:百年演进

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在…...

SSM 校园一卡通密钥管理系统 PF 于校园图书借阅管理的安全保障

摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装校园一卡通密钥管理系统软件来发挥其高效地信息处理的作用&a…...

什么叫中间件服务器?

什么叫中间件服务器&#xff1f;它在软件架构中扮演着怎样的角色&#xff1f;在现代应用程序开发中&#xff0c;中间件服务器的概念很多人对它并不太熟悉&#xff0c;但其实它的作用却不小。 中间件服务器是一种连接不同软件应用程序的中介。想象一下&#xff0c;在一个大型企…...

【docker】12. Docker Volume(存储卷)

什么是存储卷? 存储卷就是将宿主机的本地文件系统中存在的某个目录直接与容器内部的文件系统上的某一目录建立绑定关系。这就意味着&#xff0c;当我们在容器中的这个目录下写入数据时&#xff0c;容器会将其内容直接写入到宿主机上与此容器建立了绑定关系的目录。 在宿主机上…...

开发公司组织架构及岗位职责/宁波seo咨询

一、对MySQL的锁的了解当数据库有并发事务的时候&#xff0c;可能会产生数据的不一致&#xff0c;这时候需要一些机制来保证访问的次序&#xff0c;锁机制就是这样的一个机制。就像酒店的房间&#xff0c;如果大家随意进出&#xff0c;就会出现多人抢夺同一个房间的情况&#x…...

基于django网站开发课设报告/今天新闻

欢迎一一北票砖烟囱制作安装旋转爬梯公司江苏三里港高空建筑防腐有限公司主要服务(国内.国外)210米以下各种(砖、水泥、砼、钢结构)烟囱的新建滑模、防腐、维修、拆除、加固、脱硫、美化、加高、倾斜校正、更换内衬、清灰等高空作业工程。具有“不搭脚手架 、 不需要停产”施工…...

做网站和小程序的区别/seo搜索优化公司排名

在 fdatool 中发现在对滤波器的数据进行定点化时&#xff0c;可以选择不同的 rounding mode 和 overflow mode&#xff0c;对于舍入模式&#xff0c;我以前只用过round fix floor ceiling&#xff0c;但是这次发现默认的舍入模式是 nearest convergent &#xff0c;没有见过…...

长沙网络营销首选智投未来/aso安卓优化公司

数据结构&#xff1a;是相互之间存在一种或多种特定关系的数据元素的集合。 1.数据结构起源 数据结构是一门研究非数值计算的程序设计问题中的操作对象&#xff0c;以及它们之间的关系和操作等相关问题的学科。 2.基本概念和术语 数据数据元素数据项数据对象 3.逻辑结构和物…...

苏州网络网站建设/seo内容优化方法

大家好&#xff0c;我偶然发现了一个很酷的jQuery插件&#xff0c;称为innerfade。 基本上&#xff0c;它旋转存储在列表中的元素&#xff0c;这些元素可能是文本&#xff0c;图像&#xff0c;链接等。 可以与任何容器标签&#xff08;例如divs或uls&#xff09;&#xff0c;所…...

永春县建设局网站/好口碑的关键词优化

【问题】 一个python脚本&#xff0c;本来都运行好好的&#xff0c;然后写了几行代码&#xff0c;而且也都确保每行都对齐了&#xff0c;但是运行的时候&#xff0c;却出现语法错误&#xff1a; IndentationError: unexpected indent 【解决过程】 1.对于此错误&#xff0c;…...