static
Int   VcapVencVdecVdis_ipcBitsOpenFileHandles()
{
    Int status = OSA_SOK;
    Int i;
    char fileNameHdr[128];
    char fileNameBuffer[128];


    for (i = 0; i < MCFW_IPC_BITS_MAX_NUM_CHANNELS; i++)
    {
        VcapVencVdecVdis_ipcBitsGenerateFileName(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fileDirPath,
                MCFW_IPC_BITS_HDR_FILE_NAME,
                i,
                MCFW_IPC_BITS_FILE_EXTENSION,
                fileNameHdr,
                sizeof(fileNameHdr));
        gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrHdr[i] = fopen(fileNameHdr,"wb");
        OSA_assert(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrHdr[i] != NULL);
        if (0 == i)
        {
            gVcapVencVdecVdis_ipcBitsCtrl.fObj.maxFileSize =
                VcapVencVdecVdis_ipcBitsGetMaxFileSizePerChannel(fileNameHdr);
        }
        status =  setvbuf(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrHdr[i],
                          NULL,
                          _IOFBF,
                          MCFW_IPC_BITS_FILEBUF_SIZE_HDR);
        OSA_assert(status != -1);
        gVcapVencVdecVdis_ipcBitsCtrl.fObj.wrapOccuredHdr[i] = FALSE;

        VcapVencVdecVdis_ipcBitsGenerateFileName(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fileDirPath,
                MCFW_IPC_BITS_DATA_FILE_NAME,
                i,
                MCFW_IPC_BITS_FILE_EXTENSION,
                fileNameBuffer,
                sizeof(fileNameBuffer));


        gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrData[i] = fopen(fileNameBuffer,"wb");
        OSA_assert(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrData[i] != NULL);
        status =  setvbuf(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrData[i],
                          NULL,
                          _IOFBF,
                          MCFW_IPC_BITS_FILEBUF_SIZE_DATA);
        OSA_assert(status != -1);
        gVcapVencVdecVdis_ipcBitsCtrl.fObj.wrapOccuredBuf[i] = FALSE;

        strncat(fileNameBuffer,".mv",3);
        gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrMvData[i] = fopen(fileNameBuffer,"wb");
        OSA_assert(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrMvData[i] != NULL);
        status =  setvbuf(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrMvData[i],
                          NULL,
                          _IOFBF,
                          MCFW_IPC_BITS_FILEBUF_SIZE_DATA);
        OSA_assert(status != -1);
    }
    return status;
}
static
Int   VcapVencVdecVdis_ipcBitsOpenFileHandles()
{
    Int status = OSA_SOK;
    Int i,j;
    char fileNameHdr[128];
    char fileNameBuffer[128];


    for (i = 0; i < MCFW_IPC_BITS_MAX_NUM_CHANNELS; i++)
    {
        VcapVencVdecVdis_ipcBitsGenerateFileName(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fileDirPath,
                                       MCFW_IPC_BITS_HDR_FILE_NAME,
                                       i,
                                       0,
                                       MCFW_IPC_BITS_DEFAULT_FILE_EXTENSION,
                                       fileNameHdr,
                                       sizeof(fileNameHdr));
        gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrHdr[i] = fopen(fileNameHdr,"wb");
        OSA_assert(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrHdr[i] != NULL);
        if (0 == i)
        {
            gVcapVencVdecVdis_ipcBitsCtrl.fObj.maxFileSize =
                VcapVencVdecVdis_ipcBitsGetMaxFileSizePerChannel(fileNameHdr);
        }
        status =  setvbuf(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrHdr[i],
                          NULL,
                          _IOFBF,
                          MCFW_IPC_BITS_FILEBUF_SIZE_HDR);
        OSA_assert(status != -1);
        gVcapVencVdecVdis_ipcBitsCtrl.fObj.wrapOccuredHdr[i] = FALSE;

        if(gVcapVencVdecVdis_ipcBitsCtrl.fObj.enableLayerWrite == TRUE)
        {
            for (j = 0; j < MCFW_IPC_BITS_MAX_NUM_CHANNELS_LAYERS; j++)
            {
                VcapVencVdecVdis_ipcBitsGenerateFileName(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fileDirPath,
                                           MCFW_IPC_BITS_DATA_FILE_NAME,
                                           i,
                                           j,
                                           gVcapVencVdecVdis_ipcBitsCtrl.fObj.fileExtension,
                                           fileNameBuffer,
                                           sizeof(fileNameBuffer));

                gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrData[i][j] = fopen(fileNameBuffer,"wb");
                OSA_assert(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrData[i][j] != NULL);
                status =  setvbuf(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrData[i][j],
                                  NULL,
                                  _IOFBF,
                                  MCFW_IPC_BITS_FILEBUF_SIZE_DATA);
                OSA_assert(status != -1);
                gVcapVencVdecVdis_ipcBitsCtrl.fObj.wrapOccuredBuf[i][j] = FALSE;
            }
        }
        else
        {
             /* NOTE:
                       * Based on enableLayerWrite flag which is specific to h264 bit-stream when disabled will do 
                       * default file write[MCFW_IPC_BITS_DATA_FILE_DEFAULTLAYER_INDEX is 0], 
                       * all other codecs also fall in this case and for when the flag is enabled 
                       * will create multiple file handles per temporal layer */
            VcapVencVdecVdis_ipcBitsGenerateFileName(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fileDirPath,
                                       MCFW_IPC_BITS_DATA_FILE_NAME,
                                       i,
                                       0,
                                       gVcapVencVdecVdis_ipcBitsCtrl.fObj.fileExtension,
                                       fileNameBuffer,
                                       sizeof(fileNameBuffer));

            gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrData[i][MCFW_IPC_BITS_DATA_FILE_DEFAULTLAYER_INDEX] 
                                                    = fopen(fileNameBuffer,"wb");
            OSA_assert(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrData[i][MCFW_IPC_BITS_DATA_FILE_DEFAULTLAYER_INDEX] != NULL);
            status =  setvbuf(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrData[i][MCFW_IPC_BITS_DATA_FILE_DEFAULTLAYER_INDEX],
                              NULL,
                              _IOFBF,
                              MCFW_IPC_BITS_FILEBUF_SIZE_DATA);
            OSA_assert(status != -1);
            gVcapVencVdecVdis_ipcBitsCtrl.fObj.wrapOccuredBuf[i][MCFW_IPC_BITS_DATA_FILE_DEFAULTLAYER_INDEX] 
                                                    = FALSE;
                
        }
        VcapVencVdecVdis_ipcBitsGenerateFileName(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fileDirPath,
                                       MCFW_IPC_BITS_DATA_FILE_NAME,
                                       i,
                                       0,
                                       gVcapVencVdecVdis_ipcBitsCtrl.fObj.fileExtension,
                                       fileNameBuffer,
                                       sizeof(fileNameBuffer));
        strncat(fileNameBuffer,".mv",3);

        gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrMvData[i] = fopen(fileNameBuffer,"wb");
        OSA_assert(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrMvData[i] != NULL);
        status =  setvbuf(gVcapVencVdecVdis_ipcBitsCtrl.fObj.fpWrMvData[i],
                          NULL,
                          _IOFBF,
                          MCFW_IPC_BITS_FILEBUF_SIZE_DATA);
        OSA_assert(status != -1);
    }
    return status;
}