Int32 VcapVencVdecVdis_ipcBitsInit(VcapVencVdecVdis_res resolution[], 
                                         Bool enableFWrite,
                                         Bool enableLayerWrite)

{
    VENC_CALLBACK_S callback;
    Int i;

    VcapVencVdecVdis_resetAvgStatistics();
    VcapVencVdecVdis_resetStatistics();

    gVcapVencVdecVdis_ipcBitsCtrl.fObj.enableFWrite = enableFWrite;
    gVcapVencVdecVdis_ipcBitsCtrl.fObj.enableLayerWrite = enableLayerWrite;

    callback.newDataAvailableCb = VcapVencVdecVdis_ipcBitsInCbFxn;
    /* Register call back with encoder */
    Venc_registerCallback(&callback,
                         (Ptr)&gVcapVencVdecVdis_ipcBitsCtrl);

    VcapVencVdecVdis_FreeBitBufInit();
    if (gVcapVencVdecVdis_ipcBitsCtrl.fObj.enableFWrite == TRUE){
        VcapVencVdecVdis_ipcBitsInitFObj();
    }
    VcapVencVdecVdis_ipcBitsInitDmaObj();

    for (i=0; i<MCFW_IPCBITS_RESOLUTION_TYPES; i++)
        gVcapVencVdecVdis_ipcBitsCtrl.thrObj.resolution[i] = resolution[i];

    VcapVencVdecVdis_ipcBitsInitThrObj(&gVcapVencVdecVdis_ipcBitsCtrl.thrObj);
    memset (&gVcapVencVdecVdis_ipcBitsCtrl.decInfo,0,sizeof(gVcapVencVdecVdis_ipcBitsCtrl.decInfo));
    return OSA_SOK;
}
Int32 VcapVencVdecVdis_ipcBitsInit(VcapVencVdecVdis_res resolution, Bool enableFWrite)
{
    VENC_CALLBACK_S callback;
    Int32 status;

    VcapVencVdecVdis_resetStatistics();

    gVcapVencVdecVdis_ipcBitsCtrl.fObj.enableFWrite = enableFWrite;

    callback.newDataAvailableCb = VcapVencVdecVdis_ipcBitsInCbFxn;
    /* Register call back with encoder */
    Venc_registerCallback(&callback,
                          (Ptr)&gVcapVencVdecVdis_ipcBitsCtrl);

    VcapVencVdecVdis_FreeBitBufInit();
    if (gVcapVencVdecVdis_ipcBitsCtrl.fObj.enableFWrite == TRUE) {
        VcapVencVdecVdis_ipcBitsInitFObj();
    }
    gVcapVencVdecVdis_ipcBitsCtrl.thrObj.resolution = resolution;

    OSA_dmaInit();
    status = OSA_dmaOpen(&gVcapVencVdecVdis_ipcBitsCtrl.dmaHndl, OSA_DMA_MODE_NORMAL, 1);

    VcapVencVdecVdis_ipcBitsInitThrObj(&gVcapVencVdecVdis_ipcBitsCtrl.thrObj);
    return OSA_SOK;
}