背景: 在项目中有16个vpss通道数据需要进行截图,截图编码通道就1个,所以需要遍历绑定vpss到venc,这16个vpss通道中有模拟相机的数据和数字相机的数据。其中模拟相机的vpss能正常的绑定到venc并进行正确的编码,但是数字相机的vpss绑定到venc就有大量的报错,错误信息如下:
<3>[ venc] [Func]:VencCheckVideoInfo [Line]:1462 [Info]:<3>[ venc] Venc 17 : VencCheckVideoInfo VencCheckTimeRef err. <3>[ venc] [Func]:VencCheckVpssSendInfo [Line]:1525 [Info]:<3>[ venc] Venc 17 : Sendinfo pic info err. <3>[ venc] [Func]:VencCheckTimeRef [Line]:3399 [Info]:<3>[ venc] Current timeref(0x14a2) is not larger than GrpTimeRef(0x1564) <3>[ venc] [Func]:VencCheckVideoInfo [Line]:1462 [Info]:<3>[ venc] Venc 17 : VencCheckVideoInfo VencCheckTimeRef err. <3>[ venc] [Func]:VencCheckVpssSendInfo [Line]:1525 [Info]:<3>[ venc] Venc 17 : Sendinfo pic info err. <3>[ venc] [Func]:VencCheckTimeRef [Line]:3399 [Info]:<3>[ venc] Current timeref(0x14a4) is not larger than GrpTimeRef(0x1564) <3>[ venc] [Func]:VencCheckVideoInfo [Line]:1462 [Info]:<3>[ venc] Venc 17 : VencCheckVideoInfo VencCheckTimeRef err. <3>[ venc] [Func]:VencCheckVpssSendInfo [Line]:1525 [Info]:<3>[ venc] Venc 17 : Sendinfo pic info err. <3>[ venc] [Func]:VencCheckTimeRef [Line]:3399 [Info]:<3>[ venc] Current timeref(0x14a6) is not larger than GrpTimeRef(0x1564)分析: 通过报错信息的字面意思可以分析出,vpss通道的基准时钟参考大于venc的基准时钟,但是根据经验,只有手动get vpss 通道的数据,然后send到venc 时才需要手动的累积基准时钟,动态绑定时不需要的,查了各种原因也试了很多方法还是不行。
解决: 翻看手册查看api,发现只需要在HI_MPI_VENC_StartRecvPicEx 之前进行HI_MPI_VENC_ResetChn就可以顺利解决了,获得编码数据后正常HI_MPI_VENC_StopRecvPic即可。
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:海思编码器 VencCheckTimeRef err https://www.yhzz.com.cn/a/13510.html