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
英文地址,請注明出處:http://en.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三種主流模型的原理、區…