s32Ret = HI_MPI_VDEC_SendStream(s32ChnId, &stStream, 0); // 参数3 ,0 表示非阻塞输入
    if ((HI_SUCCESS != s32Ret))
    {
        printf("error type is 0x%#x", s32Ret);
        usleep(s32IntervalTime);
    }
终端输出 error type is 0xa005800f
简单来说通路有问题,解码完成的数据没有及时拿走。
解码流程一般为: 原数据 -> VDEC -> VPSS -> VO
项目中由于不需要VO输出 所以绑定就去掉了VO绑定VPSS操作,开始解码后过一会就回出现 HI_ERR_VDEC_BUF_FULL错误,检查后发现是由于从VPSS取数据操作不及时导致。具体原理还没有彻底搞明白,但是测试结果是 只要取数据即时就不会出现这个问题。

取解码完的视频图像HI_S32 HI_MPI_VPSS_GetChnFrame(VpssGrp,  VpssChn,pstVideoFrame, s32MilliSec);

还需要注意输入与输出的频率。避免出现取数据不及时问题。

posted on 2020-06-20 15:32  kasader  阅读(818)  评论(0编辑  收藏  举报