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

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.lryc.cn/news/601734.html

相关文章:

  • java小白闯关记第一天(两个数相加)
  • Python-初学openCV——图像预处理(三)
  • XSS利用
  • Web-Machine-N7靶机攻略
  • 文件权限标记机制在知识安全共享中的应用实践
  • JavaEE初阶第十二期:解锁多线程,从 “单车道” 到 “高速公路” 的编程升级(十)
  • C++学习(线程相关)
  • 05 - spring security权限控制
  • Java Ai(day04)
  • [Linux入门] Linux 远程访问及控制全解析:从入门到实战
  • 【工具】python汇总发票(含源码)
  • InfluxDB 与 MQTT 协议集成实践(二)
  • Linux网络-------2.应⽤层⾃定义协议与序列化
  • 基于深度学习的图像分割:使用DeepLabv3实现高效分割
  • 【C语言网络编程】HTTP 客户端请求(基于 Socket 的完整实现)
  • 程序代码篇---python向http界面发送数据
  • 【QT入门到晋级】window opencv安装及引入qtcreator(包含两种qt编译器:MSVC和MinGW)
  • 字节前端面试知识点总结
  • 应对反爬机制的具体方法与策略
  • 《 接口日志与异常处理统一设计:AOP与全局异常捕获》
  • Android 调试桥 (adb) 基础知识点
  • 【C 学习】02-究竟什么是C?
  • 【论文阅读】ON THE ROLE OF ATTENTION HEADS IN LARGE LANGUAGE MODEL SAFETY
  • 一文快速了解Docker和命令详解
  • 深度学习中的计算图与自动微分原理:静态图与动态图的实现差异
  • Leetcode力扣解题记录--第136题(查找单数)
  • Springboot+Layui英语单词学习系统的设计与实现
  • MyBatis Plus 分页
  • WiFi Mouse PC端 v1.7.2 官方中文版
  • 《杜甫传》读书笔记与经典摘要(三)流亡与走向人民