當使用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編譯補丁