一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【ROC-RK3568-PC開發(fā)板試用體驗】rockit視頻處理接口第二彈

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-18 15:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來源電子發(fā)燒友社區(qū),作者:羈傲不馴, 帖子地址:https://bbs.elecfans.com/jishu_2306118_1_1.html


兩個輸出節(jié)點規(guī)格分別如下上節(jié)介紹了RK平臺下的rockit視頻處理接口的簡單介紹,本期就針對rockit的一些簡單介紹和理念作以具體的介紹。

需要明確一點的是在ARM中的視頻處理鏈路?什么是鏈路?ARM中視頻是怎么樣的?

這些基礎我們以后再談,相信做過驅動適配的朋友都知道,各個廠家都有各個廠家的玩法,接口也不盡相同,還需要不斷兼容向上提供接口。

rockit充分分離了這一點,他將我們所有的設備全部抽離出來,將每一個單獨的功能都能使用一個類來進行使用。

本章節(jié)就介紹下rockit的 vi 與 venc模塊,視頻輸入 與編碼

本節(jié)程序如下:

demo程序

本節(jié)代碼基本上參考了官方的程序。

rockit使用的第一步首先是:RK_MPI_SYS_Init 初始化RK MPI系統。

之后進入vi系統,RK平臺下vi系統如下:

兩個輸出節(jié)點規(guī)格分別如下:


代碼大概流程如下:

TEST_VI_CTX_S *ctx;
ctx = reinterpret_cast(malloc(sizeof(TEST_VI_CTX_S)));
memset(ctx, 0, sizeof(TEST_VI_CTX_S));
ctx->width = 1920;
ctx->height = 1080;
ctx->devId = 0;
ctx->pipeId = ctx->devId;
ctx->channelId = 1;
ctx->loopCountSet = 100;
//0. get dev config status
s32Ret = RK_MPI_VI_GetDevAttr(ctx->devId, &ctx->stDevAttr);
if (s32Ret == RK_ERR_VI_NOT_CONFIG) {
//0-1.config dev
s32Ret = RK_MPI_VI_SetDevAttr(ctx->devId, &ctx->stDevAttr);
if (s32Ret != RK_SUCCESS) {
  ctx->stChnAttr.stSize.u32Height = ctx->height;
  s32Ret = RK_MPI_VI_SetChnAttr(ctx->pipeId, ctx->channelId, &ctx->stChnAttr);
  if (s32Ret != RK_SUCCESS) {
  RK_LOGE("RK_MPI_VI_SetChnAttr %x", s32Ret);
  goto __FAILED2;
  } /
  /3.enable channel
  s32Ret = RK_MPI_VI_EnableChn(ctx->pipeId, ctx->channelId);
  if (s32Ret != RK_SUCCESS) {
    RK_LOGE("RK_MPI_VI_EnableChn %x", s32Ret);
    goto __FAILED2;
} /
/4.save debug file
if (ctx->stDebugFile.bCfg) {
  s32Ret = RK_MPI_VI_ChnSaveFile(ctx->pipeId, ctx->channelId, &ctx->stDebugFile);
  RK_LOGE("RK_MPI_VI_ChnSaveFile %x", s32Ret);
} 
while (loopCount < ctx->loopCountSet) {
//5.get the frame
  s32Ret = RK_MPI_VI_GetChnFrame(ctx->pipeId, ctx->channelId, &ctx->stViFrame,waitTime);
if (s32Ret == RK_SUCCESS) {
  void *data = RK_MPI_MB_Handle2VirAddr(ctx->stViFrame.pMbBlk);
  //6.get the channel status
  s32Ret = RK_MPI_VI_QueryChnStatus(ctx->pipeId, ctx->channelId, &ctx->stChnStatus);
  //7.release the frame
  s32Ret = RK_MPI_VI_ReleaseChnFrame(ctx->pipeId, ctx->channelId, &ctx-
>stViFrame);
if (s32Ret != RK_SUCCESS) {
RK_LOGE("RK_MPI_VI_ReleaseChnFrame fail %x", s32Ret);
} l
oopCount ++;
} else {
RK_LOGE("RK_MPI_VI_GetChnFrame timeout %x", s32Ret);
} u
sleep(10*1000);
} /
/8. disable one chn
s32Ret = RK_MPI_VI_DisableChn(ctx->pipeId, ctx->channelId);
RK_LOGE("RK_MPI_VI_DisableChn %x", s32Ret);
//9.disable dev(will diabled all chn)
__FAILED2:
s32Ret = RK_MPI_VI_DisableDev(ctx->devId);
RK_LOGE("RK_MPI_VI_DisableDev %x", s32Ret);

除了單獨使用VI設備之外,VI設備還可以與其流程中關聯的設備進行綁定,如VO、VENC,這樣就不用在代碼的流程中進行圖像采集到內存,從內存在拷貝到其他設備中。關聯的方式如下:

  • RK_MPI_SYS_Bind

我的test程序就將這個接口關聯到了VENC模塊中,可以直接進行視頻的編碼。實現如下:

// bind vi to venc
        stSrcChn.enModId    = RK_ID_VI;
        stSrcChn.s32DevId   = ctx->devId;
        stSrcChn.s32ChnId   = ctx->channelId;

        stDestChn[i].enModId   = RK_ID_VENC;
        stDestChn[i].s32DevId  = i;
        stDestChn[i].s32ChnId  = ctx->stVencCfg[i].s32ChnId;

        s32Ret = RK_MPI_SYS_Bind(&stSrcChn, &stDestChn[i]);
        if (s32Ret != RK_SUCCESS) {
            RK_LOGE("create %d ch venc failed", ctx->stVencCfg[i].s32ChnId);
            goto __FAILED2;
        }

最終實現了可以將攝像頭直接采集編碼到H264文件中,可以使用播放器來打開啦。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • RK3568
    +關注

    關注

    5

    文章

    584

    瀏覽量

    6378
  • 開發(fā)板試用

    關注

    3

    文章

    302

    瀏覽量

    2400
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【HZ-RK3568開發(fā)板免費體驗】HZ-RK3568開發(fā)板初步接觸

    J處理器設計,支持圖像H.264編解碼處理,內置3D GPU可圖像處理,2D硬件加速引擎,內置0.8TOPS NPU算力,具備一定AI能力。 RK3568介紹如下: HZ-
    發(fā)表于 07-10 23:19

    【HZ-RK3568開發(fā)板免費體驗】01 開箱+環(huán)境搭建+系統燒錄升級

    多路電壓轉換芯片,大幅提高集成度并降低系統功耗。四個 80PIN 連接器擴展全部接口功能,方便進行二次開發(fā)使用,靈活配置所需功能。 RK356
    發(fā)表于 06-29 18:08

    技術分享 | 迅為RK3568開發(fā)板如何將 Linux 板卡虛擬成U盤

    技術分享 | 迅為RK3568開發(fā)板如何將 Linux 板卡虛擬成U盤
    的頭像 發(fā)表于 06-04 10:57 ?455次閱讀
    技術分享 | 迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>如何將 Linux 板卡虛擬成U盤

    迅為RK3568開發(fā)板驅動指南GPIO子系統GPIO子系統API函數的引入

    迅為RK3568開發(fā)板驅動指南GPIO子系統GPIO子系統API函數的引入
    的頭像 發(fā)表于 05-29 14:05 ?445次閱讀
    迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>驅動指南GPIO子系統GPIO子系統API函數的引入

    一文掌握RK3568開發(fā)板Android13掛載Windows共享目錄

    在物聯網和邊緣計算場景中,開發(fā)板PC端的高效文件交互尤為重要。現以iTOP-RK3568開發(fā)板為例,詳細演示Android13系統如何通過CIFS協議掛載Windows共享目錄,實現
    的頭像 發(fā)表于 04-17 13:54 ?438次閱讀
    一文掌握<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>Android13掛載Windows共享目錄

    RK3568開發(fā)板教程:以iTOP-RK3568開發(fā)板為例 Android13通過CIFS協議掛載Windows共享目錄

    開發(fā)板PC端的高效文件交互尤為重要。現以iTOP-RK3568開發(fā)板為例,詳細演示Android13系統如何通過CIFS協議掛載Windows共享目錄,實現
    的頭像 發(fā)表于 04-16 14:08 ?793次閱讀
    <b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>教程:以iTOP-<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>為例 Android13通過CIFS協議掛載Windows共享目錄

    正式發(fā)布 | 啟揚RK3568開發(fā)板已成功適配OpenHarmony4.0版本

    智能IAC-RK3568-Kit開發(fā)板基于瑞芯微RK3568處理器設計,主頻最高可達2.0GHz,集成支持多格式視頻編解碼的VPU,GPU、
    的頭像 發(fā)表于 03-27 17:24 ?736次閱讀
    正式發(fā)布 | 啟揚<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>已成功適配OpenHarmony4.0版本

    爆款推薦 |?迅為RK3568開發(fā)板4核處理器+1T算力NPU+好用到爆的配套資料和視頻!

    爆款推薦 | 迅為RK3568開發(fā)板4核處理器+1T算力NPU+好用到爆的配套資料和視頻!
    的頭像 發(fā)表于 03-19 13:41 ?686次閱讀
    爆款推薦 |?迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>4核<b class='flag-5'>處理</b>器+1T算力NPU+好用到爆的配套資料和<b class='flag-5'>視頻</b>!

    北京迅為RK3568開發(fā)板OpenHarmony系統南向驅動開發(fā)內核HDF驅動框架架構

    北京迅為RK3568開發(fā)板OpenHarmony系統南向驅動開發(fā)內核HDF驅動框架架構
    的頭像 發(fā)表于 03-11 14:13 ?1100次閱讀
    北京迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>OpenHarmony系統南向驅動<b class='flag-5'>開發(fā)</b>內核HDF驅動框架架構

    【技術分享】迅為RK3568開發(fā)板使用TFTP加載內核設備樹

    【技術分享】迅為RK3568開發(fā)板使用TFTP加載內核設備樹
    的頭像 發(fā)表于 02-21 14:04 ?690次閱讀
    【技術分享】迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>使用TFTP加載內核設備樹

    迅為RK3568開發(fā)板驅動指南Linux中通用SPI設備驅動

    迅為RK3568開發(fā)板驅動指南Linux中通用SPI設備驅動
    的頭像 發(fā)表于 01-23 11:02 ?2798次閱讀
    迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>驅動指南Linux中通用SPI設備驅動

    【迅為】瑞芯微RK3588開發(fā)板RK3568開發(fā)板區(qū)別及優(yōu)勢

    RK3568開發(fā)板
    的頭像 發(fā)表于 11-18 14:19 ?1460次閱讀
    【迅為】瑞芯微<b class='flag-5'>RK</b>3588<b class='flag-5'>開發(fā)板</b><b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>區(qū)別及優(yōu)勢

    瑞芯微RK3568開發(fā)板Linux編譯報錯404怎么辦?觸覺智能教你輕松解決

    本文介紹瑞芯微RK3568主板/開發(fā)板SDK編譯流程和編譯報錯404的解決方法,使用觸覺智能EVB3568鴻蒙開發(fā)板演示,具有豐富的視頻輸入
    的頭像 發(fā)表于 11-05 11:02 ?782次閱讀
    瑞芯微<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>Linux編譯報錯404怎么辦?觸覺智能教你輕松解決

    迅為iTOP-RK3568/RK3588開發(fā)板獲麒麟軟件適配認證

    迅為iTOP-RK3568/RK3588開發(fā)板獲麒麟軟件適配認證
    的頭像 發(fā)表于 10-18 14:56 ?1207次閱讀
    迅為iTOP-<b class='flag-5'>RK3568</b>/<b class='flag-5'>RK</b>3588<b class='flag-5'>開發(fā)板</b>獲麒麟軟件適配認證

    北京迅為RK3568開發(fā)板嵌入式學習之Linux驅動全新更新-CAN+

    北京迅為RK3568開發(fā)板嵌入式學習之Linux驅動全新更新-CAN+
    的頭像 發(fā)表于 09-04 15:29 ?1035次閱讀
    北京迅為<b class='flag-5'>RK3568</b><b class='flag-5'>開發(fā)板</b>嵌入式學習之Linux驅動全新更新-CAN+