示例#1
0
Int32 AlgLink_scdAlgProcessFrames(Utils_TskHndl *pTsk, AlgLink_ScdObj * pObj, FVID2_FrameList *pFrameList)
{
    Int32 status = FVID2_SOK;
    UInt32 frameId;
    FVID2_Frame *pFrame;
    AlgLink_ScdChObj *pChObj;
    Bool skipFrame;

    if(pObj->processFrameCount==0)
    {
        AlgLink_scdAlgResetStatistics(pObj);
    }

    for(frameId=0; frameId<pFrameList->numFrames; frameId++)
    {
        pFrame = pFrameList->frames[frameId];

        if(pFrame==NULL)
            continue;

        if(!AlgLink_scdAlgIsValidCh(pObj, pFrame->channelNum))
        {
            continue;
        }

        pChObj = &pObj->chObj[pFrame->channelNum];

        pChObj->inFrameRecvCount++;

        AlgLink_scdAlgRtPrmUpdate(pObj, pChObj, pFrame);

        skipFrame = Utils_doSkipFrame(&pChObj->frameSkipContext);

        if(skipFrame)
        {
            pChObj->inFrameSkipCount++;
            continue;
        }

        if(pChObj->scdMode != ALG_LINK_SCD_DETECTMODE_MONITOR_FULL_FRAME)
        {
            /* SCD is disabled for this channel */
            pChObj->inFrameSkipCount++;

            /* reset the alg so that next it starts from initial condition */
            pChObj->algReset = TRUE;
            continue;
        }

        if(AlgLink_scdAlgSkipInitialFrames(pObj, pChObj))
            continue;

        AlgLink_scdAlgSubmitFrame(pObj, pChObj, pFrame);
    }

    return status;
}
示例#2
0
Int32 AlgLink_scdAlgProcessFrames(Utils_TskHndl *pTsk, AlgLink_ScdObj * pObj, FVID2_FrameList *pFrameList)
{
    Int32 status = FVID2_SOK;
    UInt32 frameId;
    FVID2_Frame *pFrame;
    AlgLink_ScdChObj *pChObj;
    Bool skipFrame;

    if(pObj->processFrameCount==0)
    {
        AlgLink_scdAlgResetStatistics(pObj);
    }

    for(frameId=0; frameId<pFrameList->numFrames; frameId++)
    {
        pFrame = pFrameList->frames[frameId];

        if(pFrame==NULL)
            continue;

        if(!AlgLink_scdAlgIsValidCh(pObj, pFrame->channelNum))
        {
            continue;
        }

        pChObj = &pObj->chObj[pFrame->channelNum];

        pChObj->inFrameRecvCount++;

        skipFrame = Utils_doSkipFrame(&pChObj->frameSkipContext);

        if(skipFrame)
        {
            pChObj->inFrameSkipCount++;
            continue;
        }

        pChObj->inFrameProcessCount++;
        pObj->processFrameCount++;

        #if 0
        AlgLink_scdAlgRtPrmUpdate(pObj, pChObj, pFrame);
        #endif

        if(AlgLink_scdAlgSkipInitialFrames(pObj, pChObj))
            continue;

        status = AlgLink_scdAlgDoTmpFrameInit(pObj, pChObj, pFrame);
        if(status!=FVID2_SOK)
            continue;

        AlgLink_scdAlgDoProcessFrame(pObj, pChObj, pFrame);
    }

    return status;
}
示例#3
0
Int32 AlgLink_scdAlgResetCh(AlgLink_ScdObj * pObj, AlgLink_ScdChCtrl *pPrm)
{
    AlgLink_ScdChObj *pChObj;

    if(AlgLink_scdAlgIsValidCh(pObj, pPrm->chId)==FALSE)
        return FVID2_EFAIL;

    pChObj = &pObj->chObj[pPrm->chId];

    pChObj->algReset = TRUE;

    return FVID2_SOK;
}
示例#4
0
Int32 AlgLink_scdAlgSetChIgnoreLightsOff(AlgLink_ScdObj * pObj, AlgLink_ScdChParams *pPrm)
{
    AlgLink_ScdChObj *pChObj;

    if(AlgLink_scdAlgIsValidCh(pObj, pPrm->chId)==FALSE)
        return FVID2_EFAIL;

    pChObj = &pObj->chObj[pPrm->chId];

    pChObj->algProcessPrm.frmIgnoreLightsOFF     = pPrm->frmIgnoreLightsOFF;

    return FVID2_SOK;
}
示例#5
0
Int32 AlgLink_scdAlgSetChSensitivity(AlgLink_ScdObj * pObj, AlgLink_ScdChParams *pPrm)
{
    AlgLink_ScdChObj *pChObj;

    if(AlgLink_scdAlgIsValidCh(pObj, pPrm->chId)==FALSE)
        return FVID2_EFAIL;

    pChObj = &pObj->chObj[pPrm->chId];

    pChObj->algProcessPrm.frmSensitivity     = pPrm->frmSensitivity;

    if(pChObj->algProcessPrm.frmSensitivity > SCD_SENSITIVITY_VERYHIGH)
        pChObj->algProcessPrm.frmSensitivity = SCD_SENSITIVITY_VERYHIGH;

    return FVID2_SOK;
}
示例#6
0
Int32 AlgLink_scdAlgSetChMode(AlgLink_ScdObj * pObj, AlgLink_ScdChParams *pPrm)
{
    AlgLink_ScdChObj *pChObj;

    if(AlgLink_scdAlgIsValidCh(pObj, pPrm->chId)==FALSE)
        return FVID2_EFAIL;

    pChObj = &pObj->chObj[pPrm->chId];

    if(pPrm->mode == ALG_LINK_SCD_DETECTMODE_MONITOR_FULL_FRAME)
        pChObj->scdMode = ALG_LINK_SCD_DETECTMODE_MONITOR_FULL_FRAME;
    else
        pChObj->scdMode = ALG_LINK_SCD_DETECTMODE_DISABLE;

    return FVID2_SOK;
}