libomxil-bellagio移植到OpenHarmony

当使用mesa3dcangh提供的amd显卡驱动时,想利用 Mesa 提供的图形硬件加速能力,来支持视频编解码操作时。需要依赖libomxil-bellagio库,现在成果分享如下:

基础知识

1.OpenHarmony中mesa3d amd显卡驱动编译

2.OpenHarmony中基于GN和ninja的编译构建,参考笔者speexdsp移植到OpenHarmony系列文章:
移植speexdsp到OpenHarmony标准系统①

3.libomxil-bellagio在linux上的编译

移植思路

1.保证能在linux上正常编译,获取linux的编译日志来分析编译产物和它们之间的依赖关系

# 安装以下基础工具和库
sudo apt update
sudo apt install autoconf libtool g++ make dpkg-dev pkg-config# 解压源码打补丁
# libomxil-bellagio-0.9.3.tar.gz来源:
# https://sourceforge.net/projects/omxil/files/latest/download
cd libomxil-bellagio-0.9.3
# 补丁来自https://gitee.com/src-openeuler/libomxil-bellagio/tree/openEuler-24.03-LTS-SP2-release/
patch -p1 < Fix-FTBFS-with-gcc12.patch
patch -p1 < bellagio-0.9.3-dynamicloader-linking.patch
patch -p1 < bellagio-0.9.3-parallel-build.patch
patch -p1 < bellagio-0.9.3-segfault-on-removeFromWaitResource.patch
patch -p1 < fix-multi-define.patch
patch -p1 < fix-stringop-overflow.patch
patch -p1 < libomxil-bellagio-0.9.3-fix_Werror.patch
patch -p1 < libomxil-bellagio-0.9.3-memcpy.patch
patch -p1 < libomxil-bellagio-0.9.3-nodoc.patch
patch -p1 < libomxil-bellagio-0.9.3-unused.patch
patch -p1 < libomxil-bellagio-0.9.3-valgrind_register.patch
patch -p1 < omxil_version.patch# 生成configure脚本,解决可能缺失的配置文件
autoreconf -i -f./configure --prefix=xxx/xxx/xxx
make
make install

2.编写BUILD.gn,编译相关编译产物到OpenHarmony。

开源仓库仓库地址:

https://gitee.com/OpenHarmony_rk_equipment_transplantation/libomxil-bellagio_oh

├── BUILD.gn 
├── include # libomxil-bellagio头文件
├── install.sh # 执行脚本源码中打入补丁,生成config.h文件
├── libomxil-bellagio-0.9.3.tar.gz
└── patch # 修复linux编译补丁

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

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

相关文章

uvm-tlm-sockets

TLM 2.0引入了套接字(Socket)机制&#xff0c;实现发起方(initiator)与目标方(target)组件间的异步双向数据传输。套接字与端口(port)和导出(export)同源&#xff0c;均继承自uvm_port_base基类。发起事务的组件使用发起方套接字(initiator socket)&#xff0c;称为发起方&…

AI 如何评价股票:三七互娱(SZ:002555),巨人网络(SZ:002558)

三七互娱&#xff08;SZ:002555&#xff09;作为国内领先的游戏公司&#xff0c;其股票表现需结合财务健康度、行业地位、战略布局及潜在风险综合评估。以下从多维度展开分析&#xff1a; 一、财务表现&#xff1a;增长乏力与高分红并存营收与利润双降 2025年Q1营收42.43亿元&a…

Vibe Coding:AI驱动开发的安全暗礁与防护体系

当OpenAI联合创始人Andrej Karpathy在2025年初的推文里首次提及"Vibe Coding"时&#xff0c;这个概念迅速在开发者社区引发共鸣——它描绘了一种诱人的开发模式&#xff1a;开发者用自然语言描述需求&#xff0c;AI接管代码生成、修改甚至调试&#xff0c;整个过程以…

四、主辅源电路

一、主辅源结构主辅源采用反激变换器拓扑&#xff0c;输入供电有母线供电、电池辅源供电、电网辅源供电。开关管为一个高耐压NMOS功率管。主控芯片采用ICE3BS03LJG&#xff0c;其主要参数如下&#xff1a;商品目录AC-DC控制器和稳压器是否隔离隔离工作电压10.5V~26V开关频率65k…

制造业企业如何保障文件外发图纸数据安全的?

在制造业的发展进程中&#xff0c;文件外发是必不可少的环节&#xff0c;但这也给图纸数据安全带来了诸多挑战。一旦图纸数据泄露&#xff0c;企业的核心竞争力可能会受到严重损害。那么&#xff0c;制造业企业该如何保障文件外发图纸数据安全呢&#xff1f;建立完善的管理制度…

RAG:让AI更聪明的“外接大脑“ | AI小知识

RAG&#xff1a;让AI更聪明的"外接大脑" 什么是RAG&#xff1f; 想象你在参加知识竞赛&#xff0c;突然遇到不会的题目。这时你掏出手机快速搜索正确答案——这就是RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索式增强生成&#xff09;的工作原理。…

TCP 连接管理 之 三次握手详解

TCP 连接管理 之 三次握手详解 &#xff08;一&#xff09;TCP三次握手详细过程及状态变化 1. 第一次握手&#xff08;客户端 → 服务器&#xff09; 报文标志位&#xff1a;SYN1&#xff08;同步序列号&#xff09;&#xff0c;ACK0&#xff08;首次握手无确认&#xff09;序列…

day066-内容分发网络(CDN)与web应用防火墙(WAF)

文章目录0. 老男孩思想-老男孩名言警句1. 云产品日常管理2. 创建快照策略3. CDN 内容分发网络3.1 添加域名3.2 配置CNAME3.3 测试3.4 CDN刷新/预热3.5 命中率3.5.1 查看命中率3.5.2 CDN命中率低怎么办&#xff1f;3.6 访问控制3.7 流量限制4. WAF web应用防火墙4.1 使用WAF4.2 …

Redis高频问题全解析

Q1: Redis为什么这么快&#xff1f; Redis速度快主要有四个核心原因。首先是基于内存操作&#xff0c;所有数据都存储在内存中&#xff0c;避免了磁盘I/O的开销&#xff0c;内存读写速度比磁盘快几万倍。其次采用单线程模型&#xff0c;避免了多线程环境下的线程切换和锁竞争带…

【MATLAB】(三)数据类型与运算符

一.MATLAB的数据存储类型一般而言&#xff0c;在 MATLAB 中数据的存储与计算都是以双精度进行的&#xff0c;但有多种显示形式。在默认情况下&#xff0c;若数据为整数&#xff0c;就以整数表示;若数据为实数&#xff0c;则以保留小数点后4位的精度近似表示。用户可以改变数字显…

智能客服 VS 人工客服:电商企业该选哪种服务模式?

在数字化浪潮的推动下&#xff0c;电商企业对客户服务的效率和质量提出了更高要求。智能客服与人工客服作为两种主流服务模式&#xff0c;各有优劣。本文将从服务效率、成本投入、客户体验等维度&#xff0c;客观分析两者的特点&#xff0c;帮助电商企业做出合理选择。一、服务…

前端基础之《Vue(28)—Vue3 ref相关API》

ref相关API介绍1、ref()&#xff08;1&#xff09;ref介绍 ref用于定义基本数据类型&#xff0c;比如&#xff1a;string / boolean / number等&#xff08;因为这几个没办法代理&#xff09;。 ref的背后是使用reactive来实现的响应式。 使用.value来访问变量的值。&#xff0…

项目管理中如何避免延期?核心策略分析

在项目管理中避免延期&#xff0c;并非依赖于单一技巧&#xff0c;而是要构筑一个系统性的、多维度的防御体系。其核心策略涵盖了&#xff1a;进行全面细致的前期规划与估算、实施严格的范围管理与变更控制、建立主动式全过程风险管理机制、维持高透明度的持续沟通、以及采用数…

【计算机视觉与代码大模型全景解析:从理论基础到学习路线】

&#x1f4d8;计算机视觉与代码大模型全景解析&#xff1a;从理论基础到学习路线&#x1f4d1; 目录1️⃣ 摘要2️⃣ 计算机视觉与大模型基础理论  2.1 &#x1f9e0; 深度卷积神经网络基础原理  2.2 &#x1f441;️‍&#x1f5e8;️ 计算机视觉的技术发展与视觉图灵概念…

力扣-104. 二叉树的最大深度

题目链接 104. 二叉树的最大深度 class Solution {public int maxDepth(TreeNode root) {if (root null)return 0;return Math.max(maxDepth(root.left), maxDepth(root.right)) 1;} }小结&#xff1a;秒了&#xff01;&#xff01;&#xff01;

在超算平台异构加速卡AI * 1卡的Ubuntu20.04环境下安装docker服务(未成功)

为了使用dify&#xff0c;需要安装docker服务&#xff0c;于是在超算平台异构加速卡AI * 1卡的Ubuntu20.04环境下尝试安装docker服务 首先要看下系统是Ubuntu的哪个版本&#xff1a; cat /etc/os-release NAME"Ubuntu" VERSION"20.04.1 LTS (Focal Fossa)"…

[特殊字符] 深入解析String的不可变性:Java字符串设计的精妙之处

一、什么是String的不可变性? String的不可变性是Java语言中一个基础但极其重要的概念。简单来说:一旦一个String对象被创建,它的值就永远不能被改变。任何看似"修改"字符串的操作,实际上都是创建了一个全新的String对象。 生活中的类比 想象一个刻在石头上的文字…

基于FRP + ttyd 的远程Web终端控制:无SSH环境下的救急方案

基于FRP ttyd 的远程Web终端控制&#xff1a;无SSH环境下的救急方案一、背景&#xff1a;当远程访问陷入困境时二、方案&#xff1a;FRP内网穿透 ttyd Web终端三、操作步骤详解&#xff08;Linux环境&#xff09;0. 前提条件1. 在被控服务器上创建工作目录2. 下载必要的软件3…

用 AI 自动生成口型同步视频,短视频内容也能一人完成

近几年做跨境电商或内容运营的同学&#xff0c;应该都能感受到视频内容正逐渐从“锦上添花”变成了“必选项”。尤其是 TikTok、Instagram Reels、Facebook 短视频、甚至一些独立站内嵌视频讲解页&#xff0c;对带讲解、有人脸、自然语音的视频内容都有显著的转化提升作用。但实…

全基因组关联分析(GWAS)中模型参数选择:MLM、GLM与FarmCPU的深度解析

全基因组关联分析(GWAS)是识别与复杂性状相关的遗传变异的重要工具。然而&#xff0c;模型选择不当会导致假阳性率升高或统计功效降低。本文将为大家介绍GWAS中如何选择合适的模型参数&#xff0c;重点解析广义线性模型(GLM)、混合线性模型(MLM)和FarmCPU三种主流模型的原理、区…