Toybrick

关于mpp的调用

qq1993106

注册会员

积分
129
楼主
发表于 2020-6-17 18:08:31    查看: 8800|回复: 7 | [复制链接]    打印 | 只看该作者
选用
mpp_decode
这个接口进行H264的解码测试,关于mpp_get_frameDecFrame* mpp_get_frame(mpp_decoder* dec)
{
    int retry = 10;
    DecFrame* frame = NULL;

    while (retry--)
    {
        /* TODO: Dequeue and get decoded frame */
        frame = dec->dequeue();

        if (frame)
        {
            return frame;
        }

        usleep(1000);
    }

    return NULL;
}

这个函数中retry设置有规则吗?这个参数小于16时,我的第一帧直接为null退出了,等于或者大于16时解码到后面会报错如图

请教这个参数的具体含义以及设置和H264源文件有关吗?
H264测试文件超过10m无法上传。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

jefferyzhang

版主

积分
13580
沙发
发表于 2020-6-17 21:57:57 | 只看该作者
先用mpp_dec_test程序跑,没问题就按这个sample来写代码
回复

使用道具 举报

qq1993106

注册会员

积分
129
板凳
 楼主| 发表于 2020-6-18 08:46:40 | 只看该作者
本帖最后由 qq1993106 于 2020-6-18 08:58 编辑
jefferyzhang 发表于 2020-6-17 21:57
先用mpp_dec_test程序跑,没问题就按这个sample来写代码

直接dnf安装的mpp库是否无法直接用mpp_dec_test?是不是需要编译安装才用得了?或者是可以直接dnf install mpp_dec_test?
感谢答复
回复

使用道具 举报

jefferyzhang

版主

积分
13580
地板
发表于 2020-6-18 08:53:38 | 只看该作者
qq1993106 发表于 2020-6-18 08:46
直接dnf安装的mpp库是否无法直接用mpp_dec_test?是不是需要编译安装才用得了?
感谢答复 ...

源码在这里:https://github.com/rockchip-linux/mpp
可以尝试自己编译。sample也在这里
回复

使用道具 举报

qq1993106

注册会员

积分
129
5#
 楼主| 发表于 2020-6-18 14:13:33 | 只看该作者
jefferyzhang 发表于 2020-6-18 08:53
源码在这里:https://github.com/rockchip-linux/mpp
可以尝试自己编译。sample也在这里 ...

使用mpp_dec_test执行命令mpi_dec_test  -i test.h264 -o test.NV12 -t 7 -d 1 -w 1280 -h 720 ,可以解出视频流,所以假如我用mpp_decode的接口应该怎么改动代码呢?
感谢答复  
回复

使用道具 举报

jefferyzhang

版主

积分
13580
6#
发表于 2020-6-18 14:15:42 | 只看该作者
本帖最后由 jefferyzhang 于 2020-6-18 14:17 编辑
qq1993106 发表于 2020-6-18 14:13
使用mpp_dec_test执行命令mpi_dec_test  -i test.h264 -o test.NV12 -t 7 -d 1 -w 1280 -h 720 ,可以解 ...

按demo写,其他我也不懂。如果sample code里没有这个接口的demo,他就是非公开的接口。
回复

使用道具 举报

qq1993106

注册会员

积分
129
7#
 楼主| 发表于 2020-6-18 14:59:49 | 只看该作者
本帖最后由 qq1993106 于 2020-6-18 15:07 编辑
jefferyzhang 发表于 2020-6-18 14:15
按demo写,其他我也不懂。如果sample code里没有这个接口的demo,他就是非公开的接口。 ...

我还按照mpp_decode的sample写的,就是把retry这个参数变大了 就可以找到,看代码的话这个参数代表的是出队列的时间延迟阈值,不过由于不同其中的原理,所以还是用起来不放心。然后我测试的时候会有持续编码 ,卡顿在某一帧几秒钟的情况(偶发不是频发),也不太懂是不是正常的。
回复

使用道具 举报

jefferyzhang

版主

积分
13580
8#
发表于 2020-6-18 18:05:56 | 只看该作者
qq1993106 发表于 2020-6-18 14:59
我还按照mpp_decode的sample写的,就是把retry这个参数变大了 就可以找到,看代码的话这个参数代表的是出 ...

这个情况其他客户都没遇到过,建议你看下kernel log是不是在reset vpu,如果有reset打印,就是给的帧是有问题的,vpu解不了,只能reset所有寄存器
回复

使用道具 举报

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

本版积分规则

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


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