Ejemplo n.º 1
0
Int32 SystemLink_init()
{
    Int32 status;
    System_LinkObj linkObj;
    SystemLink_Obj *pObj;
    char tskName[32];

    pObj = &gSystemLink_obj;

    memset(pObj, 0, sizeof(*pObj));

    pObj->tskId = SYSTEM_LINK_ID_M3VPSS;

    linkObj.pTsk = &pObj->tsk;
    linkObj.linkGetFullFrames = NULL;
    linkObj.linkPutEmptyFrames = NULL;
    linkObj.getLinkInfo = NULL;

    System_registerLink(pObj->tskId, &linkObj);

    sprintf(tskName, "SYSTEM_M3VIDEO%d", pObj->tskId);

    status = Utils_tskCreate(&pObj->tsk,
                             SystemLink_tskMain,
                             SYSTEM_TSK_PRI,
                             gSystemLink_tskStack,
                             SYSTEM_TSK_STACK_SIZE, pObj, tskName);
    UTILS_assert(status == FVID2_SOK);

    return status;
}
Ejemplo n.º 2
0
Int32 SclrLink_init()
{
    Int32 status;
    System_LinkObj linkObj;
    SclrLink_Obj *pObj;
    UInt32 objId;

    for (objId = 0; objId < SCLR_LINK_OBJ_MAX; objId++)
    {
        pObj = &gSclrLink_obj[objId];

        memset(pObj, 0, sizeof(*pObj));

        pObj->linkId = SYSTEM_LINK_ID_SCLR_INST_0 + objId;

        linkObj.pTsk = &pObj->tsk;
        linkObj.linkGetFullFrames = SclrLink_getFullFrames;
        linkObj.linkPutEmptyFrames = SclrLink_putEmptyFrames;
        linkObj.getLinkInfo = SclrLink_getInfo;

        UTILS_SNPRINTF(pObj->name, "Scalar%d   ", objId);

        System_registerLink(pObj->linkId, &linkObj);

        status = Utils_tskCreate(&pObj->tsk,
                                 SclrLink_tskMain,
                                 SCALAR_LINK_TSK_PRI,
                                 gSclrLink_tskStack[objId],
                                 SCLR_LINK_TSK_STACK_SIZE, pObj, pObj->name);
        UTILS_assert(status == FVID2_SOK);
    }

    return status;
}
Ejemplo n.º 3
0
Int32 MpSclrLink_init()
{
    Int32 status;
    System_LinkObj linkObj;
    MpSclrLink_Obj *pObj;
    UInt32 objId;

    for (objId = 0; objId < MP_SCLR_LINK_OBJ_MAX; objId++)
    {
        pObj = &gMpSclrLink_obj[objId];

        memset(pObj, 0, sizeof(*pObj));

        pObj->linkId = SYSTEM_LINK_ID_MP_SCLR_INST_0 + objId;

        linkObj.pTsk = &pObj->mainTskHndl;
        linkObj.linkGetFullFrames = MpSclrLink_getFullFrames;
        linkObj.linkPutEmptyFrames = MpSclrLink_putEmptyFrames;
        linkObj.getLinkInfo = MpSclrLink_getInfo;

        sprintf(pObj->mainTskName, "MP_SCLR_FWD_Q%d ", objId);

        System_registerLink(pObj->linkId, &linkObj);

        status = Utils_tskCreate(&pObj->mainTskHndl,
                                 MpSclrLink_tskFwdQ,
                                 MP_SCALAR_LINK_TSK_PRI,
                                 gMpSclrLink_tskStackFwdQ[objId],
                                 MP_SCLR_LINK_TSK_STACK_SIZE, pObj, pObj->mainTskName);
        UTILS_assert(status == FVID2_SOK);
        
        sprintf(pObj->mpScTskName, "MP_SCLR%d ", objId);

        status = Utils_tskCreate(&pObj->mpScTskHndl,
                                 MpSclrLink_tskSclr,
                                 MP_SCALAR_LINK_TSK_PRI,
                                 gMpSclrLink_tskStackSclr[objId],
                                 MP_SCLR_LINK_TSK_STACK_SIZE, pObj, pObj->mpScTskName);
        UTILS_assert(status == FVID2_SOK);
    }

    return status;
}
Ejemplo n.º 4
0
Int32 IpcFramesInLink_init()
{
    Int32 status;
    System_LinkObj linkObj;
    UInt32 ipcFramesInId;
    IpcFramesInLink_Obj *pObj;
    char tskName[32];
    UInt32 procId = System_getSelfProcId();

   // UTILS_COMPILETIME_ASSERT(offsetof(SystemIpcFrames_ListElem, frameBuf) == 0);
    UTILS_COMPILETIME_ASSERT(offsetof(SystemIpcFrames_ListElem, frameBuf) == 0);
    UTILS_COMPILETIME_ASSERT(offsetof(VIDFrame_Buf, reserved) == 0);
    UTILS_COMPILETIME_ASSERT(sizeof(((SystemIpcFrames_ListElem *) 0)->frameBuf.reserved) ==
                             sizeof(ListMP_Elem));
    for (ipcFramesInId = 0; ipcFramesInId < IPC_FRAMES_IN_LINK_OBJ_MAX; ipcFramesInId++)
    {
        pObj = &gIpcFramesInLink_obj[ipcFramesInId];

        memset(pObj, 0, sizeof(*pObj));

        pObj->tskId =
            SYSTEM_MAKE_LINK_ID(procId,
                                SYSTEM_LINK_ID_IPC_FRAMES_IN_0) + ipcFramesInId;

        pObj->state = IPC_FRAMES_IN_LINK_STATE_INACTIVE;
        linkObj.pTsk = &pObj->tsk;
        linkObj.linkGetFullFrames = NULL;
        linkObj.linkPutEmptyFrames = NULL;
        linkObj.linkGetFullFrames = IpcFramesInLink_getFullFrames;
        linkObj.linkPutEmptyFrames = IpcFramesInLink_putEmptyFrames;
        linkObj.getLinkInfo = IpcFramesInLink_getLinkInfo;

        System_registerLink(pObj->tskId, &linkObj);

        UTILS_SNPRINTF(tskName, "IPC_FRAMES_IN%d", ipcFramesInId);

        System_ipcRegisterNotifyCb(pObj->tskId, IpcFramesInLink_notifyCb);

        status = Utils_tskCreate(&pObj->tsk,
                                 IpcFramesInLink_tskMain,
                                 IPC_LINK_TSK_PRI,
                                 gIpcFramesInLink_tskStack[ipcFramesInId],
                                 IPC_LINK_TSK_STACK_SIZE, pObj, tskName);
        UTILS_assert(status == FVID2_SOK);
    }

    return status;
}
Ejemplo n.º 5
0
Int32 IpcOutM3Link_init()
{
    Int32 status;
    System_LinkObj linkObj;
    UInt32 ipcOutM3Id;
    IpcOutM3Link_Obj *pObj;
    char tskName[32];
    UInt32 procId = System_getSelfProcId();

    for (ipcOutM3Id = 0; ipcOutM3Id < IPC_OUT_M3_LINK_OBJ_MAX; ipcOutM3Id++)
    {
        pObj = &gIpcOutM3Link_obj[ipcOutM3Id];

        memset(pObj, 0, sizeof(*pObj));

        pObj->tskId =
            SYSTEM_MAKE_LINK_ID(procId,
                                SYSTEM_LINK_ID_IPC_OUT_M3_0) + ipcOutM3Id;

        linkObj.pTsk = &pObj->tsk;
        linkObj.linkGetFullFrames = NULL;
        linkObj.linkPutEmptyFrames = NULL;
        linkObj.getLinkInfo = IpcOutM3Link_getLinkInfo;

        System_registerLink(pObj->tskId, &linkObj);

        sprintf(tskName, "IPC_OUT_M3%d", ipcOutM3Id);

        System_ipcRegisterNotifyCb(pObj->tskId, IpcOutM3Link_notifyCb);

        IpcOutM3Link_initListMP(pObj);

        status = Utils_tskCreate(&pObj->tsk,
                                 IpcOutM3Link_tskMain,
                                 IPC_LINK_TSK_PRI,
                                 gIpcOutM3Link_tskStack[ipcOutM3Id],
                                 IPC_LINK_TSK_STACK_SIZE, pObj, tskName);
        UTILS_assert(status == FVID2_SOK);
    }

    return status;
}
Ejemplo n.º 6
0
Int32 AlgLink_init()
{
    Int32 status;
    System_LinkObj linkObj;
    AlgLink_Obj *pObj;
    UInt32 objId;

    for (objId = 0; objId < ALG_LINK_OBJ_MAX; objId++)
    {
        pObj = &gAlgLink_obj[objId];

        memset(pObj, 0, sizeof(*pObj));

        pObj->linkId = SYSTEM_LINK_ID_VIDEO_ALG_0 + objId;

        linkObj.pTsk = &pObj->tsk;
        linkObj.linkGetFullFrames   = AlgLink_getFullFrames;
        linkObj.linkPutEmptyFrames  = AlgLink_putEmptyFrames;
        linkObj.linkGetFullBitBufs  = NULL;
        linkObj.linkPutEmptyBitBufs = NULL;
        linkObj.getLinkInfo         = AlgLink_getInfo;

        sprintf(pObj->name, "ALG%d   ", objId);

        System_registerLink(pObj->linkId, &linkObj);

        status = Utils_tskCreate(&pObj->tsk,
                                 AlgLink_tskMain,
                                 VPSS_ALG_LINK_TSK_PRI,
                                 gAlgLink_tskStack[objId],
                                 VPSS_ALG_LINK_TSK_STACK_SIZE, pObj, pObj->name);
        UTILS_assert(status == FVID2_SOK);

        pObj->scdAlg.pTsk = &pObj->tsk;

        AlgLink_scdAlgProcessTskInit(&pObj->scdAlg, objId);
    }

    return status;
}
Ejemplo n.º 7
0
Int32 NullSrcLink_init()
{
    Int32 status;
    System_LinkObj linkObj;
    UInt32 nullSrcId;
    NullSrcLink_Obj *pObj;
    char tskName[32];
    UInt32 procId = System_getSelfProcId();

    for (nullSrcId = 0; nullSrcId < NULL_SRC_LINK_OBJ_MAX; nullSrcId++)
    {
        pObj = &gNullSrcLink_obj[nullSrcId];

        memset(pObj, 0, sizeof(*pObj));

        pObj->tskId =
            SYSTEM_MAKE_LINK_ID(procId, SYSTEM_LINK_ID_NULL_SRC_0) + nullSrcId;

        linkObj.pTsk = &pObj->tsk;
        linkObj.linkGetFullFrames = NullSrcLink_getFullFrames;
        linkObj.linkPutEmptyFrames = NullSrcLink_putEmptyFrames;
        linkObj.getLinkInfo = NullSrcLink_getInfo;

        System_registerLink(pObj->tskId, &linkObj);

        sprintf(tskName, "NULL_SRC%d", nullSrcId);

        status = Utils_tskCreate(&pObj->tsk,
                                 NullSrcLink_tskMain,
                                 NULL_SRC_LINK_TSK_PRI,
                                 gNullSrcLink_tskStack[nullSrcId],
                                 (NULL_SRC_LINK_TSK_STACK_SIZE), pObj, tskName);
        UTILS_assert(status == FVID2_SOK);
    }

    return status;
}
Ejemplo n.º 8
0
Int32 DupLink_init()
{
    Int32 status;
    System_LinkObj linkObj;
    UInt32 dupId;
    DupLink_Obj *pObj;
    char tskName[32];
    UInt32 procId = System_getSelfProcId();

    for (dupId = 0; dupId < DUP_LINK_OBJ_MAX; dupId++)
    {
        pObj = &gDupLink_obj[dupId];

        memset(pObj, 0, sizeof(*pObj));

        pObj->tskId = SYSTEM_MAKE_LINK_ID(procId, SYSTEM_LINK_ID_DUP_0) + dupId;

        linkObj.pTsk = &pObj->tsk;
        linkObj.linkGetFullFrames = DupLink_getFullFrames;
        linkObj.linkPutEmptyFrames = DupLink_putEmptyFrames;
        linkObj.getLinkInfo = DupLink_getLinkInfo;

        System_registerLink(pObj->tskId, &linkObj);

        sprintf(tskName, "DUP%d", dupId);

        status = Utils_tskCreate(&pObj->tsk,
                                 DupLink_tskMain,
                                 DUP_LINK_TSK_PRI,
                                 gDupLink_tskStack[dupId],
                                 DUP_LINK_TSK_STACK_SIZE, pObj, tskName);
        UTILS_assert(status == FVID2_SOK);
    }

    return status;
}