海思vo 分屏显示总结
生活随笔
收集整理的這篇文章主要介紹了
海思vo 分屏显示总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?如圖,說明圖像分辨率,顯示分辨率,設備分辨率關系
?1. 如何實現分屏顯示
海思支持的顯示分屏枚舉量如下;
typedef enum{VO_MODE_1MUX ,VO_MODE_2MUX ,VO_MODE_4MUX ,VO_MODE_8MUX ,VO_MODE_9MUX ,VO_MODE_16MUX ,VO_MODE_25MUX ,VO_MODE_36MUX ,VO_MODE_49MUX ,VO_MODE_64MUX ,VO_MODE_2X4 , }VO_MODE_E;?SDK中的代碼片段:
VO_CHN_ATTR_S stChnAttr;... //根據枚舉量確定各個矩形的大小for (i = 0; i < u32WndNum; i++) {stChnAttr.stRect.s32X = HI_ALIGN_DOWN((u32Width / u32Square) * (i % u32Square), 2);stChnAttr.stRect.s32Y = HI_ALIGN_DOWN((u32Height / u32Square) * (i / u32Square), 2);stChnAttr.stRect.u32Width = HI_ALIGN_DOWN(u32Width / u32Square, 2);stChnAttr.stRect.u32Height = HI_ALIGN_DOWN(u32Height / u32Square, 2);stChnAttr.u32Priority = 0; //優先級stChnAttr.bDeflicker = HI_TRUE;//是否開啟抗閃爍;HI_MPI_VO_SetChnAttr(VoLayer, i, &stChnAttr);HI_MPI_VO_EnableChn(VoLayer, i);... }(1) 其中 HI_MPI_VO_SetChnAttr 參數1為視頻層號; 參數2為通道號; 其中視頻層和通道號最大個數隨著芯片不同而不同; 這兩個參數決定著能最大支持的分屏數量;
注: 本次實驗設備視頻層號最大為1, 通道號最大為4;所以最大支持VO_MODE_4MUX;
(2) 關于優先級;SINGLE 模式下,當多個通道有重疊的顯示區域時,優先級高的通道圖像將覆蓋優先級低的通道。優先級相同的各通道有重疊時,默認通道號大的圖像將覆蓋通道號小的通道圖像;
(3) 圖像(視頻源)分辨率(stImageSize)可以不一樣;
(4) 顯示分辨率(stDispRect)可以不一樣;
? ? ? ?=>既然圖像分辨率和顯示分辨率不一樣,就存在可能被縮放或裁剪情況; 具體支持和芯片相關;
?
(5)?stImageSize 和 stDispRect 要求 2 對齊;
(6) 設備分辨率和硬件驅動相關,一般默認固定;
2. 視頻源如何對接到視頻層上
答案就是系統綁定!
MPP_CHN_S stSrcChn; MPP_CHN_S stDestChn;stSrcChn.enModId = HI_ID_VPSS; stSrcChn.s32DevId = VpssGrp; stSrcChn.s32ChnId = VpssChn;stDestChn.enModId = HI_ID_VO; stDestChn.s32DevId = VoLayer; stDestChn.s32ChnId = VoChn;CHECK_RET(HI_MPI_SYS_Bind(&stSrcChn, &stDestChn), "HI_MPI_SYS_Bind(VPSS-VO)");VpssGrp的VpssChn通道視頻綁定?VoLayer視頻層的VoChn通道;
?
3. 補充
(1) 視頻畫邊框
VO_BORDER_S pstBorder; HI_MPI_VO_GetChnBorder(VoLayer, i, &pstBorder);pstBorder.bBorderEn = HI_TRUE; pstBorder.stBorder.u32TopWidth = 2; pstBorder.stBorder.u32LeftWidth = 2; pstBorder.stBorder.u32BottomWidth = 2; pstBorder.stBorder.u32RightWidth = 2; pstBorder.stBorder.u32Color = 0xffffff;HI_MPI_VO_SetChnBorder(VoLayer, VoChn, &pstBorder);(2) 不顯示的區域背景顏色如何修改
VO_PUB_ATTR_S stVoPubAttr = {0};... stVoPubAttr.u32BgColor = COLOR_RGB_BLACK; ...HI_MPI_VO_SetPubAttr(VoDev, pstPubAttr);總結
以上是生活随笔為你收集整理的海思vo 分屏显示总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VMware Workstation虚拟
- 下一篇: 什么是SAAS——软件即服务