开发平台:dm385
SDK:IPNC 3.5
在调试DEI模块的时候,发现一个下面的问题:
在dei中执行到status = FVID2_processFrames(pObj->fvidHandle, &pReqObj->processList);程序挂了
在hdvpss 中打印参数信息
[m3vpss ] ternence.hsu file:drivers/m2m/src/vpsdrv_m2mDeiApi.c, line:658 [m3vpss ] ternence.hsu file:drivers/m2m/src/vpsdrv_m2mDeiReq.c, line:1120 [m3vpss ] rtPrms = 0x8e73fa40 [m3vpss ] deiRtPrms.inFrmPrms = 0x780 [m3vpss ] deiRtPrms.outFrmPrms = 0x438 [m3vpss ] deiRtPrms.inFrmPrms = 1920 [m3vpss ] deiRtPrms.outFrmPrms = 1080 [m3vpss ] deiRtPrms.scCropCfg = 0x0 [m3vpss ] deiRtPrms.scRtCfg = 0x0 [m3vpss ] deiRtPrms.deiRtCfg = 0x0 [m3vpss ] inFrmPrms->width = 320968987 [m3vpss ] inFrmPrms->height = 1164557219 [m3vpss ] outFrmPrms->width = -1931032053 [m3vpss ] outFrmPrms->height = -1931032231 [m3vpss ] scCropCfg->cropWidth = 1744848904 [m3vpss ] scCropCfg->cropHeight = -788256768 [m3vpss ] ternence.hsu file:drivers/m2m/src/vpsdrv_m2mDeiApi.c, line:720 [m3vpss ] 15705: Assertion @ Line: 1631 in links_m3vpss/dei/deiLink_drv.c: status == FVID2_SOK : failed !!!
上面的打印信息中,没有明白一个:
Vps_printf("deiRtPrms.inFrmPrms = %d",rtPrms->deiInFrmPrms);Vps_printf("deiRtPrms.outFrmPrms = %d",rtPrms->deiOutFrmPrms);
[m3vpss ] deiRtPrms.inFrmPrms = 1920
[m3vpss ] deiRtPrms.outFrmPrms = 1080
在vpsMdrvDeiUpdateRtParams函数中打印出来的这2个参数地址,怎么变成了输入的分辨率的值 ?
这个是ipnc的源代码,没有修改过hdvpss和dei处理相关的程序;
请问,这个bug是ipnc中本来就有的吗?
Ternence_Hsu:
问题已经查到;
在mcfw/src_bios6/links_m3vpss/dei/deiLink_drv.c 的DeiLink_drvMakeFrameLists 函数中
pChObj->chRtOutInfoUpdate[outId] 的值为 FALSE,进入程序后,不会更新这个结构中的参数信息;
现在修改后DEI 已经可以正常的工作,去隔行模式,或者是SC模式都可以正常的工作;
只是没有明白是什么原因导致的,还没有来得及查;