示例#1
0
Int32 AlgLink_scdAlgChDelete(AlgLink_ScdObj * pObj)
{
    AlgLink_ScdChObj *pChObj;
    UInt32 blockId, chId;
    Int32 status;

    for(chId=0; chId<ALG_LINK_SIMCOP_SCD_MAX_CH; chId++)
    {
        pChObj = &pObj->chObj[chId];

        if(pChObj->enableScd==FALSE)
            continue;

        for(blockId=0; blockId<pObj->algPerChMemAllocPrm.numMemBlocks; blockId++)
        {
            status = Utils_memFree(
                    pChObj->memBlockAddr[blockId],
                    pObj->algPerChMemAllocPrm.memBlockSize[blockId]
                    );
            UTILS_assert(status==FVID2_SOK);
        }

        {
            FVID2_Frame *pFrame;
            UInt32 frameId;


            status = Utils_queDelete(&pChObj->freeQ);

            UTILS_assert(status==FVID2_SOK);

            /* free channel process buffer memory */

            for(frameId=0; frameId<ALG_LINK_MAX_PROCESS_FRAMES; frameId++)
            {
                pFrame = &pChObj->processFrames[frameId];

                status = Utils_memFree(
                            pFrame->addr[0][0], pChObj->processFrameSize
                                );

                UTILS_assert(status==FVID2_SOK);
            }
        }
    }

    return FVID2_SOK;
}
示例#2
0
Int32 AlgLink_scdAlgChDelete(AlgLink_ScdObj * pObj)
{
    AlgLink_ScdChObj *pChObj;
    UInt32 blockId, chId;
    Int32 status;

    for(chId=0; chId<ALG_LINK_SIMCOP_SCD_MAX_CH; chId++)
    {
        pChObj = &pObj->chObj[chId];

        if(pChObj->enableScd==FALSE)
            continue;

        for(blockId=0; blockId<pObj->algPerChMemAllocPrm.numMemBlocks; blockId++)
        {
            status = Utils_memFree(
                    pChObj->memBlockAddr[blockId],
                    pObj->algPerChMemAllocPrm.memBlockSize[blockId]
                    );
            UTILS_assert(status==FVID2_SOK);
        }
    }

    return FVID2_SOK;
}
示例#3
0
Int32 System_freeBlankFrame()
{
    UInt32 memSize;

    memSize = SYSTEM_BLANK_FRAME_WIDTH*SYSTEM_BLANK_FRAME_HEIGHT*SYSTEM_BLANK_FRAME_BYTES_PER_PIXEL;

    Utils_memFree(gSystem_objVpss.nonTiledBlankFrameAddr, memSize);

    return 0;
}
示例#4
0
Int32 AlgLink_scdAlgFreeMem(AlgLink_ScdObj * pObj)
{
    UInt32 blockId;
    Int32 status;

    for(blockId=0; blockId<pObj->algMemAllocPrm.numMemBlocks; blockId++)
    {
        status = Utils_memFree(
                pObj->algMemAllocPrm.memBlockAddr[blockId],
                pObj->algMemAllocPrm.memBlockSize[blockId]
                );
        UTILS_assert(status==FVID2_SOK);
    }

    return FVID2_SOK;
}
示例#5
0
Int32 Utils_memFrameFree(FVID2_Format * pFormat,
                         FVID2_Frame * pFrame, UInt16 numFrames)
{
    UInt32 size, cOffset;
    Int32 status;

    /* get frame size for given 'pFormat' */
    status = Utils_memFrameGetSize(pFormat, &size, &cOffset);

    if (status == 0)
    {
        /* free the frame buffer memory */

        /* for all 'numFrames' memory is allocated contigously during alloc,
         * so first frame memory pointer points to the complete memory block
         * for all frames */
        Utils_memFree(pFrame->addr[0][0], size * numFrames);
    }

    return 0;
}