Toybrick

MPP编码BGR24/RGB24图像开发板直接崩溃卡死

zhuo799154051

中级会员

积分
443
楼主
发表于 2020-10-15 15:03:59    查看: 9070|回复: 4 | [复制链接]    打印 | 只看该作者
基于/usr/share/rockchip_mpp/example的mpp_encode.cpp进行修改,将输入改为rtsp硬解码后得到的BGR24图像,编译无问题,运行没过多久系统就卡死甚至崩溃,只能拔掉电源重启。
若将输入改为rtsp硬解码后得到的NV12图像,则运行及输出正常。

求解出现这个问题的原因?


回复

使用道具 举报

zhuo799154051

中级会员

积分
443
沙发
 楼主| 发表于 2020-10-15 15:37:47 | 只看该作者
本帖最后由 zhuo799154051 于 2020-10-15 15:40 编辑

刚刚还试了下将RockchipDrmAlloc不连续物理地址内存分配改为RockchipCmaAlloc连续物理地址内存分配,系统也卡死了。

其他地方也就主要是RockchipDrmOpen改成open,因为这个函数无法正常打开Drm设备。

板子是你们的toybrick RK3399proD,debian10,库更新至最新,该装的都装了。

是你们官方的板子是你们官方的板子是你们官方的板子是你们官方的板子是你们官方的板子是你们官方的板子


回复

使用道具 举报

jefferyzhang

版主

积分
13582
板凳
发表于 2020-10-16 08:35:32 | 只看该作者
编码不支持BGR24的,自己转成BGR8888再编,请参看mpp的文档。
卡死9成是硬件地址越界。
回复

使用道具 举报

zhuo799154051

中级会员

积分
443
地板
 楼主| 发表于 2020-10-16 09:14:05 | 只看该作者
本帖最后由 zhuo799154051 于 2020-10-16 09:15 编辑
jefferyzhang 发表于 2020-10-16 08:35
编码不支持BGR24的,自己转成BGR8888再编,请参看mpp的文档。
卡死9成是硬件地址越界。 ...

我再rockchip_mpp.h中并未找到BGR8888格式。是否就是V4L2_PIX_FMT_BGR32
/*
* Encode format support
*/
static int checkV4l2Format(__u32 v4l2Format)
{
    switch(v4l2Format) {
    case V4L2_PIX_FMT_YUV420:
    case V4L2_PIX_FMT_NV12:
    case V4L2_PIX_FMT_NV21:
    case V4L2_PIX_FMT_YUV422P:
    case V4L2_PIX_FMT_NV16:
    case V4L2_PIX_FMT_YUYV:
    case V4L2_PIX_FMT_UYVY:
    case V4L2_PIX_FMT_RGB565:
    case V4L2_PIX_FMT_RGB24:
    case V4L2_PIX_FMT_BGR24:
    case V4L2_PIX_FMT_RGB32:
    case V4L2_PIX_FMT_BGR32:
        return 0;
    default:
        return -1;
    }
}
回复

使用道具 举报

jefferyzhang

版主

积分
13582
5#
发表于 2020-10-16 09:21:38 | 只看该作者
zhuo799154051 发表于 2020-10-16 09:14
我再rockchip_mpp.h中并未找到BGR8888格式。是否就是V4L2_PIX_FMT_BGR32
/*
* Encode format support

建议你用mpp来开发,toybrick写的那个都是给客户快速sample用的,想用到很具体的定制功能最好都用mpp来写
回复

使用道具 举报

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

本版积分规则

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


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