Quantcast
Channel: 达芬奇(Davinci™) - 最近的话题
Viewing all articles
Browse latest Browse all 3112

DM8168从本地读文件解码,帧率控制。

$
0
0

我用的平台是DM8168,想从本地读一个文件送到dsp去做算法处理,但是不知道如何控制帧率,现在帧率特别快,监控的HDMI上就像快进一样。

框架是DVRRDK4.3, 框架下有demo_vdec_vdis 仔细看过这个demo的代码,Link的连接就是仿造这个demo搭建的,但是这个demo的Link连接

也没有帧率控制,而是靠swMsPrm[i].maxInputQueLen = SYSTEM_SW_MS_INVALID_INPUT_QUE_LEN;这个参数来“缓解”的帧率问题,如果把这个

参数的值改为SYSTEM_SW_MS_DEFAULT_INPUT_QUE_LEN,那在HDMI上也是跟快进一样。

现在我自己的Link连接 是在decLink后加了一个deiLink,目的为了做格式转换,dei的配置如下。

DeiLink_CreateParams_Init(&deiPrm);
deiPrm.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcInVpssId;
deiPrm.inQueParams.prevLinkQueId = 0;
deiPrm.setVipScYuv422Format = FALSE;
// Set Output Scaling at DEI based on ratio
deiPrm.enableOut[DEI_LINK_OUT_QUE_VIP_SC] = TRUE;
deiPrm.inputFrameRate[DEI_LINK_OUT_QUE_VIP_SC] = 30;
deiPrm.outputFrameRate[DEI_LINK_OUT_QUE_VIP_SC] = 30;
deiPrm.inputDeiFrameRate = 30;
deiPrm.outputDeiFrameRate = 30;
deiPrm.outQueParams[DEI_LINK_OUT_QUE_VIP_SC].nextLink = gVcapModuleContext.ipcFramesOutVpssId[0];
deiPrm.enableDeiForceBypass = TRUE;

这里有一个小问题,查阅文档说decLink的输出格式是YUV420的,但是我送到算法那里,算法会失效,而经过deiLink转换格式后算法就正常工作了,

deiPrm.setVipScYuv422Format = FALSE; 应该是有转换格式的作用。

那么问题来了,加了参数deiPrm.enableDeiForceBypass = TRUE,整个Link的帧率不受控制,在HDMI上像快进一样,怎么都调不好,调节

swMsPrm[i].maxInputQueLen参数也没有用。如果把这个参数置为FALSE,视频就卡在第一帧,数据不流通。

现在可把我难住了。后来考虑过把deiLink换成nsfLink,因为这个Link也有转换格式的功能,但是在LINK启动的时候总是报错

 [m3vpss ]  28873: Assertion @ Line: 219 in links_m3vpss/nsf/nsfLink_drv.c: pObj->fvidHandleNsf != NULL : failed !!!

各位大佬,还请不吝赐教,谢谢!!!!!!!!!!!!


Viewing all articles
Browse latest Browse all 3112

Trending Articles