RKMEDIA--VO的使用

news2024/12/27 14:06:39

这一节主要说说rkmedia vo模块的使用。

rkmedia的vo是对DRM接口的封装,提供给用户更方便的使用,rv1126/rv1109支持两个vo图层。

1、首先先介绍一下DRM的测试命令--modetest,用来确认当前屏幕能够正常点亮。 

modetest -M rockchip  //打印出rk平台的显示层的信息


[root@RV1126_RV1109:/userdata]# modetest -M rockchip
Encoders:
id      crtc    type    possible crtcs  possible clones
55      53      DSI     0x00000001      0x00000000

Connectors:
id      encoder status          name            size (mm)       modes   encoders
56      55      connected       DSI-1           68x121          1       55
  modes:
        name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
  720x1280 60 720 768 776 828 1280 1296 1302 1317 65000 flags: nhsync, nvsync; type: preferred, driver
  props:
        1 EDID:
                flags: immutable blob
                blobs:

                value:
        2 DPMS:
                flags: enum
                enums: On=0 Standby=1 Suspend=2 Off=3
                value: 0
        5 link-status:
                flags: enum
                enums: Good=0 Bad=1
                value: 0
        6 non-desktop:
                flags: immutable range
                values: 0 1
                value: 0
        43 brightness:
                flags: range
                values: 0 100
                value: 50
        44 contrast:
                flags: range
                values: 0 100
                value: 50
        47 saturation:
                flags: range
                values: 0 100
                value: 50
        48 hue:
                flags: range
                values: 0 100
                value: 50

CRTCs:
id      fb      pos     size
53      0       (0,0)   (720x1280)
  720x1280 60 720 768 776 828 1280 1296 1302 1317 65000 flags: nhsync, nvsync; type: preferred, driver
  props:
        38 left margin:
                flags: range
                values: 0 100
                value: 100
        39 right margin:
                flags: range
                values: 0 100
                value: 100
        40 top margin:
                flags: range
                values: 0 100
                value: 100
        41 bottom margin:
                flags: range
                values: 0 100
                value: 100
        51 FEATURE:
                flags: immutable bitmask
                values: afbdc=0x1
                value: 0

Planes:
id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs
52      0       0       0,0             0,0     0               0x00000001
  formats: XR24 AR24 XB24 AB24 RG24 BG24 RG16 BG16
  props:
        8 type:
                flags: immutable enum
                enums: Overlay=0 Primary=1 Cursor=2
                value: 1
        50 FEATURE:
                flags: immutable bitmask
                values: scale=0x1 alpha=0x2 hdr2sdr=0x4 sdr2hdr=0x8 afbdc=0x10
                value: 2
54      0       0       0,0             0,0     0               0x00000001
  formats: XR24 AR24 XB24 AB24 RG24 BG24 RG16 BG16 NV12 NV16 NV24
  props:
        8 type:
                flags: immutable enum
                enums: Overlay=0 Primary=1 Cursor=2
                value: 0
        50 FEATURE:
                flags: immutable bitmask
                values: scale=0x1 alpha=0x2 hdr2sdr=0x4 sdr2hdr=0x8 afbdc=0x10
                value: 3

Frame buffers:
id      size    pitch

 

modetest -M rockchip -s 56:720x1280 //正常情况下 在对应屏幕会有彩色条纹显示

-s指定的56 是connectors id号,720x1280 是显示分辨率。rv1126 evb板配上的是此分辨率的屏,所以在正常情况下,屏幕会点亮并出现彩色条纹

 效果图:

2、rkmedia的vo图层有两个:

VO_PLANE_OVERLAY :支持RGB888,ARGB8888,RGB565,422,420(nv12),444,

VO_PLANE_PRIMARY :支持RGB888,ARGB8888,RGB565

如果需要叠加ui界面,一般情况是放在primary层,overlay层用来显示视频

  // VO[0] for primary plane
  stVoAttr.pcDevNode = "/dev/dri/card0";
  stVoAttr.emPlaneType = VO_PLANE_PRIMARY;
  stVoAttr.enImgType = IMAGE_TYPE_RGB888;
  stVoAttr.u16Zpos = 0;
  stVoAttr.stDispRect.s32X = 0;
  stVoAttr.stDispRect.s32Y = 0;
  stVoAttr.stDispRect.u32Width = disp_width;
  stVoAttr.stDispRect.u32Height = disp_height;
  ret = RK_MPI_VO_CreateChn(0, &stVoAttr);
  if (ret) {
    printf("Create vo[0] failed! ret=%d\n", ret);
    return -1;
  }

  // VO[0] for overlay plane
  stVoAttr.pcDevNode = "/dev/dri/card0";
  stVoAttr.emPlaneType = VO_PLANE_OVERLAY;
  stVoAttr.enImgType = IMAGE_TYPE_NV12;
  stVoAttr.u16Zpos = 0;
  stVoAttr.stDispRect.s32X = 0;
  stVoAttr.stDispRect.s32Y = 0;
  stVoAttr.stDispRect.u32Width = disp_width;
  stVoAttr.stDispRect.u32Height = disp_height;
  ret = RK_MPI_VO_CreateChn(0, &stVoAttr);
  if (ret) {
    printf("Create vo[0] failed! ret=%d\n", ret);
    return -1;
  }

如果设置双层同时显示,记得要配置zpos。zpos的值为0或1,1在上层 0在下层。 

查看屏幕信息

cat /sys/kernel/debug/dri/0/summary

VOP [ffb00000.vop]: ACTIVE
    Connector: DSI
        bus_format[100a]: RGB888_1X24
        overlay_mode[0] output_mode[0] color_space[0]
    Display mode: 720x1280p60
        clk[65000] real_clk[65000] type[48] flag[a]
        H: 720 768 776 828
        V: 1280 1296 1302 1317
    win0-0: DISABLED
    win2-0: DISABLED
    post: sdr2hdr[0] hdr2sdr[0]
    pre : sdr2hdr[0]
    post CSC: r2y[0] y2r[0] CSC mode[1]

vo部分遇到的问题不多,只要可以用modetest点亮屏幕,用rkmedia也可以点亮。

rkmedia提供测试vo demo: rkmedia_vo_display_test

暂时关于VO部分写这么多,有新的建议后续加上来

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/51034.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

融云艾瑞发布《政企数智办公平台行业研究报告》,解读数智化时代的办公新趋势

关注公众号文章扫码报名融云&艾瑞“政企数智办公报告及新品发布会” 近期,安全可信的通信云服务商融云,携手业内权威研究机构艾瑞咨询联合发布《2022 年中国政企数智办公平台行业研究报告》(下简称《报告》),回顾政…

Kotlin高仿微信-第28篇-朋友圈-预览图片、预览小视频

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

ios照片误删怎么恢复,iphone已经删除的照片怎么恢复

苹果手机里面的重要照片被删除了,相信很多人都比较着急,想要想办法找回来。ios照片误删怎么恢复? 方法1.通过“最近删除”恢复照片 苹果删除的照片如何恢复?一般情况下,从苹果手机刚删除的照片会暂存在“最近删除”这…

使用MAT分析线上问题实战

概述 MAT,下载地址,Eclipse Memory Analysis Tools,一个分析Java堆数据的专业工具,可以计算出内存中对象的实例数量、占用空间大小、引用关系等,可得知哪些线程阻止垃圾收集器的回收工作,从而定位内存泄漏…

如何低成本减少企业知识流失?天翎知识文档系统+群晖NAS值得一试

编者按:知识管理可以减少企业知识流失,有效提高企业员工工作水平,增强企业综合竞争力。如何小成本做好企业知识管理呢?天翎知识文档系统群晖NAS值得一试。 关键词:标签分类,权限管理,在线预览&…

Git学习

Git是什么 Github作为最大的代码托管平台,是基于Git开发的 Git是最优秀的版本控制工具 iCode是基于Git的代码托管平台 版本控制:是对软件开发过程中各种程序代码,配置文件,说明文档等。 版本控制系统:集中式、分布式 …

在Mac中管理多版本 java——安装和使用 jenv

jenv 的 github 地址:https://github.com/jenv/jenv 安装 $ brew install jenv安装成功后需要进行一下简单的配置,让它可以起作用 使用Bash的情况$ echo export PATH="$HOME/.jenv/bin:$PATH" >> ~/.bash_profile $ echo eval "$(jenv init -)" &…

MAC 搭建vue开发环境,配置环境变量

1.官网下载nodejs安装包 http://nodejs.p2hp.com/ 下载完成后安装,一直点击下一步即可 2.自定以配置全局模块路径和缓存路径 先自己找一个路径创建两个文件夹,node_cache 和 node_global 打开终端,执行一下俩条命令,注意引号中的路径要换…

图纸识别自动生成BOM清单的方法

01 方案应用领域及行业 高端装备制造业行业、离散型制造业、电气机械和器材制造业等。 02 方案应用场景 某特变电工公司是国内输变电行业的核心骨干企业,每年生产产能巨大,拥有海量的技术图纸,因此技术人员人工拆解设计图纸的工作难度系数大…

【优化调度】基于改进遗传算法的公交车调度排班优化的研究与实现(Matlab代码实现)

目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 1 概述 本文对当前公交企业调度系统进行了分析,建立了公交排班的数学模型。本文基于数据挖掘分析的结果上,使用截面客流量数据对模型进行约束,得出了公交客流出行的空间分布规律。再以…

软件测试1

这里写自定义目录标题软件测试的定义1、软件测试的目的2、软件测试的要求3、测试与开发的模型3.1 测试的工作流程3.2 开发模型3.2.1 瀑布模型3.2.2 增量模型3.2.3 快速模型3.2.4 其他模型3.3 测试模型4、测试与开发的关系5、软件测试分类软件测试的定义 找Bug,发现缺陷。使用人…

全球科学家给孩子的stem课【001-046】mp3合集

全球科学家给孩子的stem课【001-046】mp3合集,适合给孩子们启蒙教育使用。 一只蚂蚁走丢后的8种可能结局.mp3 下雨天清爽的味道,来自尸体和臭气.mp3 为什么光的三原色是红绿蓝,绘画的三原色又成了红黄蓝?.mp3 为什么剖腹产的孩子…

患有癌症的心力衰竭患者LVAD植入前景可期

相关调查显示,患有终末期心力衰竭的癌症患者(有癌症史)正在增加,但其进行心脏移植的可能性不大,而左心室辅助装置(LVAD)是一种可选择的替代策略。近日,发表于Circulation: Heart Fai…

[附源码]SSM计算机毕业设计疫情期间回乡人员管理系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Kotlin高仿微信-第27篇-朋友圈-相册选择图片或小视频

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

ContentProvider启动流程分析

文章目录1.ActivityThread.handleBindApplication()2.ActivityThread.installContentProviders()3.ActivityThread.installProvider()4.AppComponentFactory.instantiateProvider()5.ActivityManagerService.publishContentProviders()6.ContentProviderHelper.publishContentP…

基于Web的美食分享平台的设计与实现——HTML+CSS+JavaScript水果介绍网页设计(橙子之家)

👨‍🎓静态网站的编写主要是用HTML DIVCSS JS等来完成页面的排版设计👩‍🎓,常用的网页设计软件有Dreamweaver、EditPlus、HBuilderX、VScode 、Webstorm、Animate等等,用的最多的还是DW,当然不同软件写出的…

[附源码]计算机毕业设计springboot汽车租赁管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

项目的坎坷一生

一、从产品到项目 项目的定义:只会进行一次,包含多项互相关联的任务,并且有绩效、时间、成本和范围限制的一项工作。 产品是解决某个问题的东西,项目是一个过程。 1、做产品VS做项目 ①从生命周期角度区别 做产品的生命周期相…

[附源码]JAVA毕业设计的问卷调查系统设计与实现(系统+LW)

[附源码]JAVA毕业设计的问卷调查系统设计与实现(系统LW) 目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 …