Toybrick

标题: MPP编码BGR24/RGB24图像开发板直接崩溃卡死 [打印本页]

作者: zhuo799154051    时间: 2020-10-15 15:03
标题: MPP编码BGR24/RGB24图像开发板直接崩溃卡死
基于/usr/share/rockchip_mpp/example的mpp_encode.cpp进行修改,将输入改为rtsp硬解码后得到的BGR24图像,编译无问题,运行没过多久系统就卡死甚至崩溃,只能拔掉电源重启。
若将输入改为rtsp硬解码后得到的NV12图像,则运行及输出正常。

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



作者: zhuo799154051    时间: 2020-10-15 15:37
本帖最后由 zhuo799154051 于 2020-10-15 15:40 编辑

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

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

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

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



作者: jefferyzhang    时间: 2020-10-16 08:35
编码不支持BGR24的,自己转成BGR8888再编,请参看mpp的文档。
卡死9成是硬件地址越界。
作者: zhuo799154051    时间: 2020-10-16 09:14
本帖最后由 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    时间: 2020-10-16 09:21
zhuo799154051 发表于 2020-10-16 09:14
我再rockchip_mpp.h中并未找到BGR8888格式。是否就是V4L2_PIX_FMT_BGR32
/*
* Encode format support

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




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3