Toybrick

RK3399Pro入门教程(5)图形加速引擎RGA的使用

 

盗骊_l

注册会员

积分
66
楼主
发表于 2019-7-8 16:15:05 | 显示全部楼层
您好,请问我在Android平台上应该怎么使用 RGA,头文件从哪里来?需要编译什么源码吗?
回复

使用道具 举报

盗骊_l

注册会员

积分
66
沙发
发表于 2019-7-9 19:15:38 | 显示全部楼层
jefferyzhang 发表于 2019-7-9 16:10
android rga查看 device/rockchip/librga
用法不太一样

啊?上面不是说  Android和Linux一致吗?
https://github.com/Jerzha/samples-toybrick-rga上面的demo,我编译之后再Android上能正常跑,性能和你上面给出的基本一致。但是我自己写了个function,做格式转换,NV12转rgba,转换处理的rgba数据是错误的。
  1. //格式转换  NV12->ABGR
  2. void rga_convert()
  3. {
  4.     RockchipRga *rga = RgaCreate();

  5.     if (!rga) {
  6.         printf("create rga failed !\n");
  7.         abort();
  8.     }
  9.     rga->ops->initCtx(rga);
  10.     //V4L2_PIX_FMT_NV12  V4L2_PIX_FMT_ABGR32
  11.     rga->ops->setSrcFormat(rga, V4L2_PIX_FMT_NV12, BUFFER_WIDTH, BUFFER_HEIGHT);
  12.     rga->ops->setDstFormat(rga, V4L2_PIX_FMT_ABGR32, BUFFER_WIDTH, BUFFER_HEIGHT);

  13.     rga->ops->setSrcBufferPtr(rga, srcBuffer);
  14.     rga->ops->setDstBufferPtr(rga, dstBuffer);

  15.     rga->ops->go(rga);
  16. }
复制代码
回复

使用道具 举报

盗骊_l

注册会员

积分
66
板凳
发表于 2019-9-9 13:59:15 | 显示全部楼层
本帖最后由 盗骊_l 于 2019-9-9 14:03 编辑

请问,多线程使用的时候需要注意什么?
我现在遇到的问题:
1>.每个线程里,mpp解码后使用RGA进行格式转换,
  1. RockchipRga *rga = RgaCreate();
复制代码
,初始化一个rga的上下文,一路视频解码后使用RGA转换输出都正常,2路视频解码RGA转换一段时间后,设备重启,3路视频解码,10分钟左右就会造成,设备重启,请问这是什么原因?解码、格式转换结果都正常,就是多路多线程中,一段时间后会造成设备重启。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表