TI的专家你好:
我用的是dvr_rdk 3.0,现在想要实现动态监测的功能,link是按照文档中来做的,只是因为想要同时显示先接了一个dup,SCD方向的LINK如下:
capture--》 dup --》sclr--》nsf--》IPC Frame out m3--》IPC Frame in dps --》alg --》 ipc bits out dsp --》 ipc bits in a8
capture采集到的视频是1080P的 在sclrLink中转换成了352 * 288
alglink的配置如下:
algPrm.enableOSDAlg = FALSE;
algPrm.enableSCDAlg = TRUE;
algPrm.inQueParams.prevLinkId = dspinId;
algPrm.inQueParams.prevLinkQueId = 0;
algPrm.outQueParams[ALG_LINK_SCD_OUT_QUE].nextLink = ipcBitsOutDspId;
algPrm.scdCreateParams.maxWidth = 352;
algPrm.scdCreateParams.maxHeight = 288;
algPrm.scdCreateParams.maxStride = 352;
algPrm.scdCreateParams.numValidChForSCD = 1;
algPrm.scdCreateParams.numSecs2WaitB4Init = 3;
algPrm.scdCreateParams.numSecs2WaitB4FrmAlert = 1;
algPrm.scdCreateParams.inputFrameRate = 60;
algPrm.scdCreateParams.outputFrameRate = 5;
int numHorzBlks, numVertBlks, numBlksInFrame;
numHorzBlks = algPrm.scdCreateParams.maxWidth / 32;
numVertBlks = algPrm.scdCreateParams.maxHeight / 12;
numBlksInFrame = numHorzBlks * numVertBlks;
for(i = 0;i < ALG_LINK_SCD_MAX_CH;i++){
algPrm.scdCreateParams.chDefaultParams[i].chId = i;
algPrm.scdCreateParams.chDefaultParams[i].mode = ALG_LINK_SCD_DETECTMODE_MONITOR_BLOCKS_AND_FRAME;
algPrm.scdCreateParams.chDefaultParams[i].frmIgnoreLightsON = FALSE;
algPrm.scdCreateParams.chDefaultParams[i].frmIgnoreLightsOFF = FALSE;
algPrm.scdCreateParams.chDefaultParams[i].frmSensitivity = ALG_LINK_SCD_SENSITIVITY_HIGH;
algPrm.scdCreateParams.chDefaultParams[i].frmEdgeThreshold = 100;
algPrm.scdCreateParams.chDefaultParams[i].blkNumBlksInFrame = numBlksInFrame;
int j;
for(j = 0;j < numBlksInFrame/*ALG_LINK_SCD_MAX_BLOCKS_IN_FRAME*/;j++){
algPrm.scdCreateParams.chDefaultParams[i].blkConfig[j].sensitivity = ALG_LINK_SCD_SENSITIVITY_HIGH;//ALG_LINK_SCD_SENSITIVITY_MAX;
algPrm.scdCreateParams.chDefaultParams[i].blkConfig[j].monitored = TRUE;
}
}
algPrm.scdCreateParams.numBufPerCh = 0;
algPrm.scdCreateParams.enableMotionNotify = TRUE;
algPrm.scdCreateParams.enableTamperNotify = TRUE;
link可以正常运行,但是不能正常进行检测,不管在摄像机前怎么做动作,都没有任何反应。
我查资料看到SCD是调用DMVAL库实现的,就在源码中直接打印DMVAL库的返回参数pDmvaHndl->output,其中的numObjects一直是0,但是modeResult参数的返回是正常的,不知道是我那里配置有错误,希望给解答一下。