Toybrick

标题: mpp 对BRG的支持 [打印本页]

作者: czcl    时间: 2021-11-25 15:09
标题: mpp 对BRG的支持
输入流为1080p

使用mpp解码,mpp是否可以设置解码后的数据的宽高以及格式,例如(在mpp_frame_get_change的时候)
MppFrame  frame_tmp = NULL;
mpp_frame_init(&frame_tmp);
mpp_frame_set_width(frame_tmp, width);
mpp_frame_set_height(frame_tmp, height);
mpp_frame_set_hor_stride(frame_tmp,width);
mpp_frame_set_ver_stride(frame_tmp, height);
mpp_frame_set_fmt(frame_tmp, MPP_FMT_BGR888);
mCodec->control(mpCodecContext,MPP_DEC_SET_FRAME_INFO,(MppParam)frame_tmp);
mpp_frame_deinit(&frame_tmp);
比如原始宽高为1920*1080 设置解码输出为1920*1072,同时输出的数据格式为BGR888




作者: jefferyzhang    时间: 2021-11-25 16:09
不能,码流什么格式解码完就是什么格式,转码缩放后面可以自己用RGA来做。
作者: czcl    时间: 2021-11-30 14:45
jefferyzhang 发表于 2021-11-25 16:09
不能,码流什么格式解码完就是什么格式,转码缩放后面可以自己用RGA来做。 ...

我看mpp源码里面有rga 的功能
但是我在使用mpp源码中的rga的时候报错
os_allocator_drm_mmap map_dumb failed: Unknown error -1
这是怎么回事


实例代码:

    MppBuffer dst_buf = NULL;
    MppFrame rk_dstframe = NULL;
    ret = mpp_buffer_get(NULL, &dst_buf, size*3);
    if(ret)
    {
        printf("malloc dst_buf error\n");
    }
    mpp_frame_init(&rk_dstframe);
    mpp_frame_set_buffer(rk_dstframe, dst_buf);
    mpp_frame_set_width(rk_dstframe, m_iWidth);
    mpp_frame_set_height(rk_dstframe, m_iHeight);
    mpp_frame_set_hor_stride(rk_dstframe, MPP_ALIGN(m_iWidth, 16));
    mpp_frame_set_ver_stride(rk_dstframe, MPP_ALIGN(m_iHeight, 16));
    mpp_frame_set_fmt(rk_dstframe, MPP_FMT_RGB888);
    ret = rga_control(mRga, RGA_CMD_SET_SRC, rk_srcframe);
    if (ret) {
        printf("rga cmd setup source failed %d\n", ret);
    }

    ret = rga_control(mRga, RGA_CMD_SET_DST, rk_dstframe);
    if (ret) {
        printf("rga cmd setup destination failed %d\n", ret);
    }

    ret = rga_control(mRga, RGA_CMD_RUN_SYNC, NULL);
    if (ret) {
        printf("rga cmd process copy failed %d\n", ret);
    }
    uint8_t *tmpbuffer = (uint8_t *)dst_buf;
    if(tmpbuffer)
    {
        printf("======%p======\n",tmpbuffer);
        memcpy(buffer,tmpbuffer,size*3);
    }
    mpp_frame_deinit(&rk_dstframe);






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