当swms的触发机制是由定时器完成时,输出帧率要求60帧,但实际上板测试在62帧左右,什么原因,如何优化
swMsPrm[i].enableProcessTieWithDisplay = FALSE;
swMsPrm[i].layoutPrm.outputFPS =60;
Ternence_Hsu:
你好;
你是用的什么版本的SDK ?
Ternence_Hsu:
你查查是不是下面的函数周期配置导致的
Int32 SwMsLink_drvGetTimerPeriod(SwMsLink_Obj * pObj,SwMsLink_LayoutPrm * layoutParams) {if (layoutParams->outputFPS == 0 || layoutParams->outputFPS > 200){pObj->timerPeriod = SW_MS_LINK_TIMER_DEFAULT_PERIOD;}else{pObj->timerPeriod =(1000/(layoutParams->outputFPS+(layoutParams->outputFPS/10)));//(1000/(layoutParams->outputFPS));}return FVID2_SOK; }
cata yelo:
回复 Ternence_Hsu:
我用的是DVRRDK_03.00.00.00版本
cata yelo:
回复 cata yelo:
SwMsLink_drvGetTimerPeriod函数中,
pObj->timerPeriod =(1000/(layoutParams->outputFPS));的计算值本身就是整数,如果outputFPS=60,则timerPeriod=16.实际每秒会在62帧左右。如何改进
Ternence_Hsu:
回复 cata yelo:
sdk 中配置为 66帧的输出;你现在是已经修改为60帧了吗,测试的实际输出是一直稳定在62帧的输出吗?