结论: 一般出现这个错误一定是配置的问题,可以通过cat /proc/umap/venc 查看视频流是否正常。
比如 在SAMPLE_COMM_IVE_StartViVpssVencVo() 函数中
if (HI_TRUE == pstSwitch->bVenc)
{
s32Ret = SAMPLE_COMM_VENC_GetGopAttr(VENC_GOPMODE_NORMALP,&stGopAttr);
SAMPLE_CHECK_EXPR_GOTO(HI_SUCCESS != s32Ret, END_INIT_5,
"Error(%#x),SAMPLE_COMM_VENC_GetGopAttr failed!\n",s32Ret);
s32Ret = SAMPLE_COMM_VENC_Start(VeH264Chn, enStreamType,aenSize[2],enRcMode,0,bRcnRefShareBuf,&stGopAttr);
SAMPLE_CHECK_EXPR_GOTO(HI_SUCCESS != s32Ret, END_INIT_5,
"Error(%#x),SAMPLE_COMM_VENC_Start failed!\n",s32Ret);
// 这里默认是没有进行VPSS 绑定的,所以venc肯定要出问题,就会报 get venc stream time out 错误
s32Ret = SAMPLE_COMM_VPSS_Bind_VENC(VpssGrp, 2,VeH264Chn);
SAMPLE_CHECK_EXPR_GOTO(HI_SUCCESS != s32Ret, END_INIT_6,
"Error(%#x),SAMPLE_COMM_VENC_StartGetStream failed!\n",s32Ret);
s32Ret = SAMPLE_COMM_VENC_StartGetStream(&VeH264Chn, 1);
SAMPLE_CHECK_EXPR_GOTO(HI_SUCCESS != s32Ret, END_INIT_6,
"Error(%#x),SAMPLE_COMM_VENC_StartGetStream failed!\n",s32Ret);
}