rockit 学习、开发笔记(一)(VO)

在这里插入图片描述

什么是rockit MPI:(下面是rockchip给出官方解释)
Rockchip提供的媒体处理接口(Rockchip Media Process Interface,简称 RK MPI),可支持应用软件快速开发。该平台整合了RK的硬件资源,对应用软件屏蔽了芯片相关的复杂的底层处理,并对应用软件直接提供接口完成相应功能。该平台支持应用软件快速开发以下功能:输入视频捕获、H.265/H.264/JPEG 编码、H.265/H.264/JPEG 解码、视频输出显示、视频图像前处理(包括裁剪、缩放、旋转)、智能、音频捕获及输出、音频编解码等功能。
这是其中一些模块介绍
在这里插入图片描述

多的内容就不说了,本菜鸡目前只熟悉其中部分模块,在此之前也并未接触过相关流媒体处理的相关内容,所以有些知识并不完善,请多指教了。废话不多说,接下来开始正文内容。

说一下项目背景是需要在VO模块上叠加一层UI层,具体情况是有一个QT应用需要在最上层显示,即在切换屏幕画面后也要能够显示,因为之前这块信号源切换就是用的rockit所以在不更改之前的框架的基础上,解决方案是,将QT的UI实时显示rockit的UI层中,涉及的模块大致上有SYS,MB,VO,RGN等。

这里可以从rockchip官方给的一些demo入手可能理解起来会比较好一点。在rockchip给的SDK中,rockit相关代码的路径是在platform/external/rockit/。

目前(项目)现有的视频处理是外部视频流不进行处理直接给到显示设备,也就是VI -> VO,现在是需要加一层UI,也不需要去修改原先的视频流,只需要在原有的显示画面上叠加上我们的UI就行了,关于UI的显示模块有RGN,那就是RGN -> VO(虽然后续并没有使用RGN模块😅)。

那么我们先参考之前的demo代码以及结合rk提供的官方文档看一下大概的流程:

代码中main函数开始会进行参数的一些初始化工作,然后就进入相关模块的初始化。main函数中大部分东西不需要我们理解,可能会改到的地方就是一些参数的修改。

    switch (ctx->enMode) {
        case TEST_VI_MODE_VI_FRAME_ONLY:
            if (!ctx->stViChnAttr.u32Depth) {
                RK_LOGE("depth need > 0 when vi not bind any other module!");
                ctx->stViChnAttr.u32Depth = ctx->stViChnAttr.stIspOpt.u32BufCount;
            }
            s32Ret = test_vi_get_release_frame_loop(ctx);
        break;
        case TEST_VI_MODE_BIND_VO:
            s32Ret = test_vi_bind_vo_loop(ctx);
        break;
        case TEST
评论 19
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值