当使用mesa3dcangh提供的amd显卡驱动时,想利用 Mesa 提供的图形硬件加速能力,来支持视频编解码操作时。需要依赖libomxil-bellagio库,现在成果分享如下:
基础知识
1.OpenHarmony中mesa3d amd显卡驱动编译
2.OpenHarmony中基于GN和ninja的编译构建,参考笔者speexdsp移植到OpenHarmony系列文章:
移植speexdsp到OpenHarmony标准系统①
3.libomxil-bellagio在linux上的编译
移植思路
1.保证能在linux上正常编译,获取linux的编译日志来分析编译产物和它们之间的依赖关系
javascript
# 安装以下基础工具和库
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
javascript
├── BUILD.gn
├── include # libomxil-bellagio头文件
├── install.sh # 执行脚本源码中打入补丁,生成config.h文件
├── libomxil-bellagio-0.9.3.tar.gz
└── patch # 修复linux编译补丁