This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Cann't encode mjpeg resolution of 2048*1536

Dear all,

I am working on dm8168, with the DVRRDK4.1.

I encode mjpeg ,when resolutin of 1920*1080,image normal,that resolution of 2048*1536,image with tripe.

how encode 2048*1536 for mjpeg?

 

  • What is the issue you are seeing ? Attach the encoded JPEG image.What is your data flow (DVRRDK link connections) ? HDVPSS modules don't support processing of 2048x1536 frames.

  • My data flow is YUV422. I will data send to encoder ,then get encoded data save as jpeg file.

    When YUV422 is resolution of 2048*1536,Jpeg image of encoder is wrong ,

  • Can DM8168 encoding 2048 * 1536 resolution'YUV data?

  • Do you mean your data flow is:

    ipcFramesOutHLOS (A8) -> ipcFramesIn (Video m3) -> encLink -> ipcBitsOutRTOS (VideoM3) -> ipcBitsInHost (A8) ?

    The JPEG files shows image is encoded as 1920x1080 YUV420SP. Check the encoder configuration by printing the codec static and dynamic params in encLink_mjpeg.c

     

  • yes.

    I have find in encLink_jpeg.c, but don't know how to set the encoding resolution.

    You can help me with it ?

  • It gets resolution info from previous link. Attach your usecase file and the app logs.

  • /*******************************************************************************
     *                                                                             *
     * Copyright (c) 2009 Texas Instruments Incorporated - http://www.ti.com/      *
     *                        ALL RIGHTS RESERVED                                  *
     *                                                                             *
     ******************************************************************************/
    /*  ========================= TI_816X_BUILD case ==============================
                              |
                            IPC_BITS_OUT_A8 (BitStream)
                              |
                            IPC_BITS_IN (Video)
                              |
                            DEC (YUV420SP)
                              |
                            IPC_OUT (Video)
                              |
                            IPC_IN (Vpss)
                              |   (32 D1 + 10 720P + 6 1080P)
                             DUP
                              |                                 |
                            MP_SCLR (Vpss)            VENC(Video)
                              |
                             DUP
                   (48CH)    | |    (48CH)
             +---------------+ +-------------+
             |                               |
             |                               |
          SW Mosaic                       SW Mosaic
         (SC5 SC1 YUV422I)                (SC4 SC2 YUV422I)
            |  |                             |  |
            |  |                             |  |
           (DDR)(422I)                      (DDR)(422I)
              |                               |
      GRPX0   |                      GRPX1    |
         |    |                          |    |
         On-Chip HDMI                    Off-Chip HDMI
           1080p60                        1080p60
    */
    
    /* ========================= TI_814X_BUILD case ==============================
                              |
                            IPC_BITS_OUT_A8 (BitStream)
                              |
                            IPC_BITS_IN (Video)
                              |
                            DEC (YUV420SP)
                              |
                            IPC_OUT (Video)
                              |
                            IPC_IN (Vpss)
                              |   (16 channels)
                            MP_SCLR (Vpss)
                              |
                             DUP
                   (16CH)    | |    (16CH)
             +---------------+ +-------------+
             |                               |
             |                               |
          SW Mosaic                       SW Mosaic
         (SC5 YUV422I)                (SC5 YUV422I)
            |  |                             |  |
            |  |                             |  |
           (DDR)(422I)                      (DDR)(422I)
              |                               |
      GRPX0   |----Tied---|                   |
         |    |           |                   |
         On-Chip HDMI  Off-Chip HDMI         SDTV
           1080p60       1080p60
    */
    
    #include "mcfw/src_linux/mcfw_api/usecases/multich_common.h"
    #include "mcfw/src_linux/mcfw_api/usecases/multich_ipcbits.h"
    #include "mcfw/interfaces/link_api/system_tiler.h"
    #include "mcfw/interfaces/link_api/avsync_hlos.h"
    
    /* =============================================================================
     * Externs
     * =============================================================================
     */
    
    
    /* =============================================================================
     * Use case code
     * =============================================================================
     */
    
    
    
    #define MAX_DEC_OUT_FRAMES_PER_CH                           (5)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_NUM_CHANNELS       (16)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH        (720)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_HEIGHT       (480)
    #define MULTICH_NUM_SWMS_MAX_BUFFERS                        (7)
    
    #define     MAX_BUFFERING_QUEUE_LEN_PER_CH           (50)
    
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_CIF           (10)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_SD            (6)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_HD            (5)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_720P          (4)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_HMP           (4)
    
    
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
    static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 0,
            .EncChList = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 16,
            .DecChList = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
        },
    };
    #define NUM_STATIC_CHANNELS   (6)
    #else
    /*
    Max channels per IVA-HD MUST be < 16,
    i.e total number of channels for decode can be 48.
    
    Example CH allocation for SD+HD,
    
    32CH SD    :  0 to 31
     6CH 1080P : 32 to 38
    10CH 720P  : 39 to 48
    
    */
    static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 5,
            .EncChList = {0, 3, 6, 9, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 17,
            .DecChList = {   0,  3,  6,  9, 12, 15, 18, 21,
                            24, 27, 30, 33, 36, 39, 42, 45,
                            48
                         },
        },
        .ivaMap[1] =
        {
            .EncNumCh  = 5,
            .EncChList = {1, 4, 7, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 17,
            .DecChList = {   1,  4,  7, 10, 13, 16, 19, 22,
                            25, 28, 31, 34, 37, 40, 43, 46,
                            49
                         },
        },
        .ivaMap[2] =
        {
            .EncNumCh  = 6,
            .EncChList = {2, 5, 8, 11, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 16,
            .DecChList = {   2,  5,  8, 11, 14, 17, 20, 23,
                            26, 29, 32, 35, 38, 41, 44, 47
                         },
        },
    };
    #define NUM_STATIC_CHANNELS   (8)
    #endif
    
    typedef struct {
    
        UInt32 dupId;
        UInt32 ipcOutVideoId;
        UInt32 ipcInVpssId;
        UInt32 mergeId;
        Bool   enableVideoFrameExport;
        AvsyncLink_LinkSynchConfigParams   avsyncCfg[VDIS_DEV_MAX];
        UInt32 mpSclrId;
        UInt32 decSnapshotDup;
        UInt32 ipcFramesOutVpssId;
        IpcFramesOutLinkRTOS_CreateParams ipcFramesOutVpssPrm;
        UInt32 ipcFramesInVideoId;
        IpcFramesInLinkRTOS_CreateParams ipcFramesInVideoPrm;
        UInt32 encId;
        EncLink_CreateParams encPrm;
        UInt32 ipcBitsOutVideoId;
        IpcBitsOutLinkRTOS_CreateParams ipcBitsOutVideoPrm;
        UInt32 ipcBitsInHostId;
        IpcBitsInLinkHLOS_CreateParams ipcBitsInHostPrm;
    } MultiCh_VdecVdisObj;
    
    MultiCh_VdecVdisObj gMultiCh_VdecVdisObj;
    
    static Void MultiCh_setIpcFramesOutInQueInfo(System_LinkQueInfo *inQueInfo)
    {
        Int i;
    
        inQueInfo->numCh = MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_NUM_CHANNELS;
        for (i = 0; i < inQueInfo->numCh; i++)
        {
            inQueInfo->chInfo[i].bufType = SYSTEM_BUF_TYPE_VIDFRAME;
            inQueInfo->chInfo[i].dataFormat = SYSTEM_DF_YUV422I_YUYV;
            inQueInfo->chInfo[i].memType    = SYSTEM_MT_NONTILEDMEM;
            inQueInfo->chInfo[i].scanFormat = SYSTEM_SF_PROGRESSIVE;
            inQueInfo->chInfo[i].startX     = 0;
            inQueInfo->chInfo[i].startY     = 0;
            inQueInfo->chInfo[i].width      =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH;
            inQueInfo->chInfo[i].height     =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_HEIGHT;
            inQueInfo->chInfo[i].pitch[0]   =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH * 2;
            inQueInfo->chInfo[i].pitch[1]   = 0;
            inQueInfo->chInfo[i].pitch[2]   = 0;
        }
    }
    
    static
    Void mulich_vdec_vdis_set_avsync_vidque_prm(Avsync_SynchConfigParams *queCfg,
                                                Int chnum,
                                                UInt32 avsStartChNum,
                                                UInt32 avsEndChNum,
                                                VDIS_DEV vdDevId)
    {
        queCfg->chNum = chnum;
        queCfg->audioPresent = FALSE;
        if ((queCfg->chNum >= avsStartChNum)
            &&
            (queCfg->chNum <= avsEndChNum)
            &&
            (gVsysModuleContext.vsysConfig.enableAVsync))
        {
            queCfg->avsyncEnable = TRUE;
        }
        else
        {
            queCfg->avsyncEnable = FALSE;
        }
    
        queCfg->clkAdjustPolicy.refClkType = AVSYNC_REFCLKADJUST_NONE;
        queCfg->clkAdjustPolicy.clkAdjustLead = AVSYNC_VIDEO_TIMEBASESHIFT_MAX_LEAD_MS;
        queCfg->clkAdjustPolicy.clkAdjustLag  = AVSYNC_VIDEO_TIMEBASESHIFT_MAX_LAG_MS;
        queCfg->vidSynchPolicy.maxReplayLead  = AVSYNC_VIDEO_FUTURE_FRAME_DROP_THRESHOLD_MS;
        queCfg->vidSynchPolicy.playMaxLag  = 180;
        queCfg->vidSynchPolicy.playMaxLead = 0;
        queCfg->vidSynchPolicy.doMarginScaling = FALSE;
        queCfg->playTimerStartTimeout = 0;
        queCfg->playStartMode = AVSYNC_PLAYBACK_START_MODE_WAITSYNCH;
        queCfg->ptsInitMode   = AVSYNC_PTS_INIT_MODE_APP;
    }
    
    static
    Void mulich_vdec_vdis_set_avsync_prm(AvsyncLink_LinkSynchConfigParams *avsyncPrm,
                                         UInt32 swMsIdx,
                                         VDIS_DEV vdDevId)
    {
        Int i;
        Int32 status;
    
        Vdis_getAvsyncConfig(vdDevId,avsyncPrm);
        avsyncPrm->displayLinkID        = Vdis_getDisplayId(vdDevId);
        avsyncPrm->videoSynchLinkID = gVdisModuleContext.swMsId[swMsIdx];
        avsyncPrm->numCh            = gVdecModuleContext.vdecConfig.numChn;
        avsyncPrm->syncMasterChnum =  AVSYNC_INVALID_CHNUM;
        for (i = 0; i < avsyncPrm->numCh;i++)
        {
            mulich_vdec_vdis_set_avsync_vidque_prm(&avsyncPrm->queCfg[i],
                                                   i,
                                                   0,
                                                   (0 + gVdecModuleContext.vdecConfig.numChn),
                                                   vdDevId);
        }
        if (0 == swMsIdx)
        {
            Vdis_setAvsyncConfig(VDIS_DEV_HDMI,avsyncPrm);
        }
        else
        {
            Vdis_setAvsyncConfig(VDIS_DEV_SD,avsyncPrm);
        }
    
        status = Avsync_configSyncConfigInfo(avsyncPrm);
        OSA_assert(status == 0);
    }
    
    static Void mulich_vdec_vdis_set_mjpeg_enc_ch_params (EncLink_CreateParams *encPrm, Int32 startChNum, Int32 endChNum)
    {
        Int32 i;
    
        EncLink_ChCreateParams *pLinkChPrm;
        EncLink_ChDynamicParams *pLinkDynPrm;
        VENC_CHN_DYNAMIC_PARAM_S *pDynPrm;
        VENC_CHN_PARAMS_S *pChPrm;
    	
        printf ("----------------endChNum=%d\n",endChNum);
        for (i=startChNum; i<endChNum; i++)
        {
            pLinkChPrm  = &encPrm->chCreateParams[i];
            pLinkDynPrm = &pLinkChPrm->defaultDynamicParams;
    
            pChPrm      = &gVencModuleContext.vencConfig.encChannelParams[i];
            pDynPrm     = &pChPrm->dynamicParam;
    
            pLinkChPrm->format                 = IVIDEO_MJPEG;
            pLinkChPrm->profile                = 0;
            pLinkChPrm->dataLayout             = VCODEC_FIELD_SEPARATED;
            pLinkChPrm->fieldMergeEncodeEnable = FALSE;
            pLinkChPrm->enableAnalyticinfo     = 0;
            pLinkChPrm->enableWaterMarking     = 0;
            pLinkChPrm->maxBitRate             = 0;
            pLinkChPrm->encodingPreset         = 0;
            pLinkChPrm->rateControlPreset      = 0;
            pLinkChPrm->enableSVCExtensionFlag = 0;
            pLinkChPrm->numTemporalLayer       = 0;
    
            pLinkDynPrm->intraFrameInterval    = 0;
            pLinkDynPrm->targetBitRate         = 100*1000;
            pLinkDynPrm->interFrameInterval    = 0;
            pLinkDynPrm->mvAccuracy            = 0;
            pLinkDynPrm->inputFrameRate        = pDynPrm->inputFrameRate;
            pLinkDynPrm->qpMin                 = 0;
            pLinkDynPrm->qpMax                 = 0;
            pLinkDynPrm->qpInit                = -1;
            pLinkDynPrm->vbrDuration           = 0;
            pLinkDynPrm->vbrSensitivity        = 0;
        }
    }
    Void MultiCh_createVdecVdis()
    {
        IpcBitsOutLinkHLOS_CreateParams   ipcBitsOutHostPrm;
        IpcBitsInLinkRTOS_CreateParams    ipcBitsInVideoPrm;
        DecLink_CreateParams        decPrm;
        IpcLink_CreateParams        ipcOutVideoPrm;
        IpcLink_CreateParams        ipcInVpssPrm;
        DupLink_CreateParams        dupPrm,dupSnapshotPrm;
        static SwMsLink_CreateParams       swMsPrm[VDIS_DEV_MAX];
        DisplayLink_CreateParams    displayPrm[VDIS_DEV_MAX];
        IpcFramesOutLinkHLOS_CreateParams  ipcFramesOutHostPrm;
        IpcFramesInLinkRTOS_CreateParams   ipcFramesInVpssFromHostPrm;
        MergeLink_CreateParams             mergePrm;
        MpSclrLink_CreateParams            mpSclrPrm;
    
        UInt32 i;
        UInt32 enableGrpx;
        Bool tilerEnable;
        Bool enableVideoFrameExport;
    
        MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcInVpssPrm);
        MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcOutVideoPrm);
        MULTICH_INIT_STRUCT(IpcBitsOutLinkHLOS_CreateParams,ipcBitsOutHostPrm);
        MULTICH_INIT_STRUCT(IpcBitsInLinkRTOS_CreateParams,ipcBitsInVideoPrm);
        MULTICH_INIT_STRUCT(DecLink_CreateParams, decPrm);
        MULTICH_INIT_STRUCT(IpcFramesOutLinkHLOS_CreateParams ,ipcFramesOutHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams  ,ipcFramesInVpssFromHostPrm);
        for (i = 0; i < VDIS_DEV_MAX;i++)
        {
            MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm[i]);
            MULTICH_INIT_STRUCT(SwMsLink_CreateParams ,swMsPrm[i]);
        }
    
        MULTICH_INIT_STRUCT(MpSclrLink_CreateParams, mpSclrPrm);
    
        MultiCh_detectBoard();
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VPSS,
            SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES,
            NULL,
            0,
            TRUE
            );
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VIDEO,
            SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,
            &systemVid_encDecIvaChMapTbl,
            sizeof(SystemVideo_Ivahd2ChMap_Tbl),
            TRUE
        );
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
        enableGrpx   = FALSE;
    #else
        enableGrpx   = TRUE;
    #endif
    
        tilerEnable  = FALSE;
    
        if (tilerEnable == FALSE)
        {
            /* Disable tiler allocator for this usecase
             * for that tiler memory can be reused for
             * non-tiled allocation
             */
            SystemTiler_disableAllocator();
        }
        else
        {
            SystemTiler_BucketGeometry_t bucketRes;
    
            bucketRes.bucketWidth  = SYSTEM_TILER_ALLOCATOR_BUCKET_WIDTH_DEFAULT;
            bucketRes.bucketHeight = SYSTEM_TILER_ALLOCATOR_BUCKET_HEIGHT_DEFAULT;
            bucketRes.minResolution = SYSTEM_TILER_RESOLUTION_CIF;
            bucketRes.setSingleBucketGeometry = FALSE;
            SystemTiler_setBucketGeometry(&bucketRes);
        }
    
        enableVideoFrameExport = FALSE;
    
        gVdecModuleContext.ipcBitsOutHLOSId = SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0;
        gVdecModuleContext.ipcBitsInRTOSId  = SYSTEM_VIDEO_LINK_ID_IPC_BITS_IN_0;
        gVdecModuleContext.decId            = SYSTEM_LINK_ID_VDEC_0;
    
        gMultiCh_VdecVdisObj.ipcOutVideoId  = SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0;
        gMultiCh_VdecVdisObj.ipcInVpssId    = SYSTEM_VPSS_LINK_ID_IPC_IN_M3_0;
        gMultiCh_VdecVdisObj.dupId          = SYSTEM_VPSS_LINK_ID_DUP_0;
        gMultiCh_VdecVdisObj.mpSclrId       = SYSTEM_LINK_ID_MP_SCLR_INST_0;
        gVdisModuleContext.mpSclrId         = SYSTEM_LINK_ID_MP_SCLR_INST_0;
        gVdisModuleContext.swMsId[0]        = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;
    
        gVdisModuleContext.displayId[0]     = SYSTEM_LINK_ID_DISPLAY_0; // ON AND OFF CHIP HDMI
    
    	gMultiCh_VdecVdisObj.decSnapshotDup = SYSTEM_VPSS_LINK_ID_DUP_1;
    
        if (gVsysModuleContext.vsysConfig.numDisplays > 1)
        {
            gVdisModuleContext.swMsId[1]        = SYSTEM_LINK_ID_SW_MS_MULTI_INST_1;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            gVdisModuleContext.displayId[1]     = SYSTEM_LINK_ID_DISPLAY_2; // SDTV
    #else
            gVdisModuleContext.displayId[1]     = SYSTEM_LINK_ID_DISPLAY_1; // OFF CHIP HDMI
    #endif
        }
    
        if (enableVideoFrameExport)
        {
            gMultiCh_VdecVdisObj.mergeId                 = SYSTEM_VPSS_LINK_ID_MERGE_0;
            gVdisModuleContext.ipcFramesOutHostId        = SYSTEM_HOST_LINK_ID_IPC_FRAMES_OUT_0;
            gVdisModuleContext.ipcFramesInVpssFromHostId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_IN_0;
        }
    
        if(enableGrpx)
        {
            // GRPX is enabled in Vdis_start() based on the link ID set here
            gVdisModuleContext.grpxId[0]    = SYSTEM_LINK_ID_GRPX_0;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            gVdisModuleContext.grpxId[1]    = SYSTEM_LINK_ID_INVALID;
    #else
            gVdisModuleContext.grpxId[1]    = SYSTEM_LINK_ID_GRPX_1;
    #endif
        }
    
        gMultiCh_VdecVdisObj.ipcFramesOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_1;
        gMultiCh_VdecVdisObj.ipcFramesInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_FRAMES_IN_0;
        gMultiCh_VdecVdisObj.encId              = SYSTEM_LINK_ID_VENC_0;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoId      = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;
        gMultiCh_VdecVdisObj.ipcBitsInHostId       = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;
        ipcBitsOutHostPrm.baseCreateParams.outQueParams[0].nextLink= gVdecModuleContext.ipcBitsInRTOSId;
        ipcBitsOutHostPrm.baseCreateParams.notifyNextLink       = FALSE;
        ipcBitsOutHostPrm.baseCreateParams.notifyPrevLink       = FALSE;
        ipcBitsOutHostPrm.baseCreateParams.noNotifyMode         = TRUE;
        ipcBitsOutHostPrm.baseCreateParams.numOutQue            = 1;
        ipcBitsOutHostPrm.inQueInfo.numCh                       = gVdecModuleContext.vdecConfig.numChn;
    
        for (i=0; i<ipcBitsOutHostPrm.inQueInfo.numCh; i++)
        {
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].width =
                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoWidth;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].height =
                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoHeight;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].scanFormat =
                SYSTEM_SF_PROGRESSIVE;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].bufType        = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].codingformat   = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].dataFormat     = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].memType        = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startX         = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startY         = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[0]       = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[1]       = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[2]       = 0; // NOT USED
    
            ipcBitsOutHostPrm.maxQueueDepth[i] = MAX_BUFFERING_QUEUE_LEN_PER_CH;
            ipcBitsOutHostPrm.chMaxReqBufSize[i] = 
                    (ipcBitsOutHostPrm.inQueInfo.chInfo[i].width * ipcBitsOutHostPrm.inQueInfo.chInfo[i].height); 
            ipcBitsOutHostPrm.totalBitStreamBufferSize [i] = 
                    (ipcBitsOutHostPrm.chMaxReqBufSize[i] * BIT_BUF_LENGTH_LIMIT_FACTOR_HD);
    
        }
    
        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkId    = gVdecModuleContext.ipcBitsOutHLOSId;
        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        ipcBitsInVideoPrm.baseCreateParams.outQueParams[0].nextLink  = gVdecModuleContext.decId;
        ipcBitsInVideoPrm.baseCreateParams.noNotifyMode              = TRUE;
        ipcBitsInVideoPrm.baseCreateParams.notifyNextLink            = TRUE;
        ipcBitsInVideoPrm.baseCreateParams.notifyPrevLink            = FALSE;
        ipcBitsInVideoPrm.baseCreateParams.numOutQue                 = 1;
    
        for (i=0; i<ipcBitsOutHostPrm.inQueInfo.numCh; i++)
        {
            if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_H264)
                decPrm.chCreateParams[i].format                 = IVIDEO_H264HP;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MPEG4)
                decPrm.chCreateParams[i].format                 = IVIDEO_MPEG4ASP;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MJPEG)
                decPrm.chCreateParams[i].format                 = IVIDEO_MJPEG;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MPEG2)
                decPrm.chCreateParams[i].format                 = IVIDEO_MPEG2HP;
    
            decPrm.chCreateParams[i].numBufPerCh
                             = gVdecModuleContext.vdecConfig.decChannelParams[i].numBufPerCh;
            decPrm.chCreateParams[i].profile                = IH264VDEC_PROFILE_ANY;
            decPrm.chCreateParams[i].displayDelay
                             = gVdecModuleContext.vdecConfig.decChannelParams[i].displayDelay;
            decPrm.chCreateParams[i].dpbBufSizeInFrames = IH264VDEC_DPB_NUMFRAMES_AUTO;
            if (gVdecModuleContext.vdecConfig.decChannelParams[i].fieldPicture)
            {
                OSA_printf("MULTICH_VDEC_VDIS:INFO ChId[%d] configured for field picture\n",i);
                decPrm.chCreateParams[i].processCallLevel   = VDEC_FIELDLEVELPROCESSCALL;
            }
            else
            {
                decPrm.chCreateParams[i].processCallLevel   = VDEC_FRAMELEVELPROCESSCALL;
            }
            decPrm.chCreateParams[i].targetMaxWidth  =
                ipcBitsOutHostPrm.inQueInfo.chInfo[i].width;
    
            decPrm.chCreateParams[i].targetMaxHeight =
                ipcBitsOutHostPrm.inQueInfo.chInfo[i].height;
    
            decPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate =
                gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.frameRate;
    
            decPrm.chCreateParams[i].defaultDynamicParams.targetBitRate =
                gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.targetBitRate;
            if (FALSE == tilerEnable)
            {
            	decPrm.chCreateParams[i].tilerEnable = FALSE;
            }
            else
            {
            	decPrm.chCreateParams[i].tilerEnable = gVdecModuleContext.vdecConfig.decChannelParams[i].tilerEnable;
            }
            decPrm.chCreateParams[i].enableWaterMarking = 
                gVdecModuleContext.vdecConfig.decChannelParams[i].enableWaterMarking;
        }
    
        decPrm.inQueParams.prevLinkId       = gVdecModuleContext.ipcBitsInRTOSId;
        decPrm.inQueParams.prevLinkQueId    = 0;
        decPrm.outQueParams.nextLink        = gMultiCh_VdecVdisObj.ipcOutVideoId;
    
        ipcOutVideoPrm.inQueParams.prevLinkId    = gVdecModuleContext.decId;
        ipcOutVideoPrm.inQueParams.prevLinkQueId = 0;
        ipcOutVideoPrm.outQueParams[0].nextLink     = gMultiCh_VdecVdisObj.ipcInVpssId;
        ipcOutVideoPrm.notifyNextLink            = TRUE;
        ipcOutVideoPrm.notifyPrevLink            = TRUE;
        ipcOutVideoPrm.numOutQue                 = 1;
    
        ipcInVpssPrm.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.ipcOutVideoId;
        ipcInVpssPrm.inQueParams.prevLinkQueId = 0;
        ipcInVpssPrm.notifyNextLink            = TRUE;
        ipcInVpssPrm.notifyPrevLink            = TRUE;
        ipcInVpssPrm.numOutQue                 = 1;
    
        dupSnapshotPrm.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcInVpssId;
        dupSnapshotPrm.inQueParams.prevLinkQueId = 0;
        dupSnapshotPrm.notifyNextLink = TRUE;
        dupSnapshotPrm.numOutQue = 2;
        if (enableVideoFrameExport)
        {
            ipcFramesOutHostPrm.baseCreateParams.noNotifyMode = TRUE;
            ipcFramesOutHostPrm.baseCreateParams.notifyNextLink = FALSE;
            ipcFramesOutHostPrm.baseCreateParams.notifyPrevLink = FALSE;
            ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkId = SYSTEM_LINK_ID_INVALID;
            ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
            ipcFramesOutHostPrm.baseCreateParams.numOutQue = 1;
            ipcFramesOutHostPrm.baseCreateParams.outQueParams[0].nextLink = gVdisModuleContext.ipcFramesInVpssFromHostId;
            MultiCh_setIpcFramesOutInQueInfo(&ipcFramesOutHostPrm.inQueInfo);
    
            ipcFramesInVpssFromHostPrm.baseCreateParams.noNotifyMode = TRUE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.notifyNextLink = TRUE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.notifyPrevLink = FALSE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.inQueParams.prevLinkId = gVdisModuleContext.ipcFramesOutHostId;
            ipcFramesInVpssFromHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
            ipcFramesInVpssFromHostPrm.baseCreateParams.numOutQue = 1;
            ipcFramesInVpssFromHostPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.mergeId;
    
    
            ipcInVpssPrm.outQueParams[0].nextLink     = gMultiCh_VdecVdisObj.mergeId;
    
            mergePrm.numInQue                     = 2;
            mergePrm.inQueParams[0].prevLinkId    = gMultiCh_VdecVdisObj.decSnapshotDup;
            mergePrm.inQueParams[0].prevLinkQueId = 0;
            dupSnapshotPrm.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.mergeId;
            mergePrm.inQueParams[1].prevLinkId    = gVdisModuleContext.ipcFramesInVpssFromHostId;
            mergePrm.inQueParams[1].prevLinkQueId = 0;
    
            mergePrm.outQueParams.nextLink        = gMultiCh_VdecVdisObj.mpSclrId;
            mergePrm.notifyNextLink               = TRUE;
            mpSclrPrm.inQueParams.prevLinkId      = gMultiCh_VdecVdisObj.mergeId;
        }
        else
        {
            mpSclrPrm.inQueParams.prevLinkId        = gMultiCh_VdecVdisObj.decSnapshotDup;
            mpSclrPrm.inQueParams.prevLinkQueId     = 0;
            dupSnapshotPrm.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.mpSclrId;
            ipcInVpssPrm.outQueParams[0].nextLink   = gMultiCh_VdecVdisObj.decSnapshotDup;
    
        }
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
        mpSclrPrm.pathId = MP_SCLR_LINK_SEC0_SC3_VIP0;
    #else
        mpSclrPrm.pathId = MP_SCLR_LINK_SEC1_SC4_VIP1;
    #endif
    
    #if 0
        mpSclrPrm.numCh = 4;
    #else
        mpSclrPrm.numCh = 16;
    
    #endif
        mpSclrPrm.enableLineSkip = FALSE;
    
        mpSclrPrm.outQueParams.nextLink       = gMultiCh_VdecVdisObj.dupId;
        dupPrm.inQueParams.prevLinkId         = gMultiCh_VdecVdisObj.mpSclrId;
    
        dupPrm.inQueParams.prevLinkQueId      = 0;
        dupPrm.numOutQue                      = gVsysModuleContext.vsysConfig.numDisplays;
        dupPrm.outQueParams[0].nextLink       = gVdisModuleContext.swMsId[0];
        dupPrm.outQueParams[1].nextLink       = gVdisModuleContext.swMsId[1];
        dupPrm.notifyNextLink                 = TRUE;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
    
        swMsPrm[0].numSwMsInst = 1;
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
    
        swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].swMsInstStartWin[1]  = 10;
    
        swMsPrm[1].numSwMsInst = 1;
        swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
    
        swMsPrm[1].swMsInstStartWin[0]  = 0;
        swMsPrm[1].swMsInstStartWin[1]  = 10;
    
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableProcessTieWithDisplay = FALSE;
    
        /* We do not require dual output, this free up SC3 scalar */
        swMsPrm[0].includeVipScInDrvPath = FALSE;
        swMsPrm[1].includeVipScInDrvPath = FALSE;
    #else
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
        swMsPrm[0].swMsInstId[1]        = SYSTEM_SW_MS_SC_INST_VIP1_SC;
    
        swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
        swMsPrm[1].swMsInstId[1]        = SYSTEM_SW_MS_SC_INST_VIP0_SC;
    
        swMsPrm[0].numSwMsInst          = 2;
    
        swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].swMsInstStartWin[1]  = 16;
    
        swMsPrm[1].numSwMsInst          = swMsPrm[0].numSwMsInst;
        swMsPrm[1].swMsInstStartWin[0]  = swMsPrm[0].swMsInstStartWin[0];
        swMsPrm[1].swMsInstStartWin[1]  = swMsPrm[0].swMsInstStartWin[1];
    
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableProcessTieWithDisplay = TRUE;
    
    #endif
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
        {
            VDIS_DEV vdDevId = VDIS_DEV_HDMI;
    
            swMsPrm[i].inQueParams.prevLinkId     = gMultiCh_VdecVdisObj.dupId;
            swMsPrm[i].inQueParams.prevLinkQueId  = i;
            swMsPrm[i].outQueParams.nextLink      = gVdisModuleContext.displayId[i];
            swMsPrm[i].numOutBuf                 = MULTICH_NUM_SWMS_MAX_BUFFERS;
    
            /* Disable inQue drop at SwMs as input may arrive very fast in VDEC->VDIS use case */
            swMsPrm[i].maxInputQueLen             = SYSTEM_SW_MS_INVALID_INPUT_QUE_LEN;
            if (i == 0)
            {
                vdDevId = VDIS_DEV_HDMI;
                swMsPrm[i].maxOutRes              = VSYS_STD_1080P_60;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_HDMI].resolution;
            }
            else if (i == 1)
            {
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
                vdDevId = VDIS_DEV_SD;
                swMsPrm[i].maxOutRes              = VSYS_STD_PAL;
                swMsPrm[i].outQueParams.nextLink  = SYSTEM_LINK_ID_DISPLAY_2;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;
    
    #else
                vdDevId = VDIS_DEV_DVO2;
                swMsPrm[i].maxOutRes              = VSYS_STD_1080P_60;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_DVO2].resolution;
    #endif
            }
            /* low cost line skip mode of scaling can be used, when tiler is off */
            if(tilerEnable)
                swMsPrm[i].lineSkipMode           = FALSE;
            else
                swMsPrm[i].lineSkipMode           = TRUE;
    
            swMsPrm[i].enableLayoutGridDraw = gVdisModuleContext.vdisConfig.enableLayoutGridDraw;
    
            MultiCh_swMsGetDefaultLayoutPrm(vdDevId, &swMsPrm[i], FALSE);    /* both from 0-16 chnl */
    
            displayPrm[i].inQueParams[0].prevLinkId    = gVdisModuleContext.swMsId[i];
            displayPrm[i].inQueParams[0].prevLinkQueId = 0;
            displayPrm[i].displayRes                = swMsPrm[i].initOutRes;
            if (i == 1)
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
                            displayPrm[i].displayRes            = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;
    #else
                            displayPrm[i].displayRes            = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_DVO2].resolution;
    #endif
            mulich_vdec_vdis_set_avsync_prm(&gMultiCh_VdecVdisObj.avsyncCfg[i],i,vdDevId);
        }
    
        dupSnapshotPrm.outQueParams[1].nextLink = gMultiCh_VdecVdisObj.ipcFramesOutVpssId;
        IpcFramesOutLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm);
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.decSnapshotDup;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkQueId = 1;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inputFrameRate  = 30;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.outputFrameRate = 1;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.noNotifyMode    = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.notifyNextLink  = FALSE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.notifyPrevLink  = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.ipcFramesInVideoId;
    
        IpcFramesInLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcFramesInVideoPrm);
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcFramesOutVpssId;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.noNotifyMode = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.notifyPrevLink = FALSE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.notifyNextLink = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.encId;
    
        EncLink_CreateParams_Init(&gMultiCh_VdecVdisObj.encPrm);
    	gMultiCh_VdecVdisObj.encPrm.numBufPerCh[0] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[1] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[2] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[3] = 6;
        gMultiCh_VdecVdisObj.encPrm.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.ipcFramesInVideoId;
        gMultiCh_VdecVdisObj.encPrm.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.encPrm.outQueParams.nextLink     = gMultiCh_VdecVdisObj.ipcBitsOutVideoId;
        mulich_vdec_vdis_set_mjpeg_enc_ch_params(&gMultiCh_VdecVdisObj.encPrm, 0, ipcBitsOutHostPrm.inQueInfo.numCh);
    
        IpcBitsOutLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm);
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.encId;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.numOutQue                 = 1;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink  = gMultiCh_VdecVdisObj.ipcBitsInHostId;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.notifyPrevLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.notifyNextLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.noNotifyMode   = FALSE;
    
    
        IpcBitsInLinkHLOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcBitsInHostPrm);
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcBitsOutVideoId;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.numOutQue = 0;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.outQueParams[0].nextLink = SYSTEM_LINK_ID_INVALID;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.notifyPrevLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.notifyNextLink = FALSE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.noNotifyMode   = FALSE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.cbFxn = gVencModuleContext.callbackFxn.newDataAvailableCb; // register the encode callback function for snapshot
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.cbCtx = gVencModuleContext.callbackArg;                    // register the encode callback context for snapshot
        System_linkCreate(gVdecModuleContext.ipcBitsOutHLOSId,&ipcBitsOutHostPrm,sizeof(ipcBitsOutHostPrm));
        System_linkCreate(gVdecModuleContext.ipcBitsInRTOSId,&ipcBitsInVideoPrm,sizeof(ipcBitsInVideoPrm));
        System_linkCreate(gVdecModuleContext.decId, &decPrm, sizeof(decPrm));
    
        System_linkCreate(gMultiCh_VdecVdisObj.ipcOutVideoId, &ipcOutVideoPrm, sizeof(ipcOutVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcInVpssId  , &ipcInVpssPrm, sizeof(ipcInVpssPrm));
    
        System_linkCreate(gMultiCh_VdecVdisObj.decSnapshotDup,&dupSnapshotPrm,sizeof(dupSnapshotPrm));
        if (enableVideoFrameExport)
        {
            System_linkCreate(gVdisModuleContext.ipcFramesOutHostId     , &ipcFramesOutHostPrm    , sizeof(ipcFramesOutHostPrm));
            System_linkCreate(gVdisModuleContext.ipcFramesInVpssFromHostId     , &ipcFramesInVpssFromHostPrm    , sizeof(ipcFramesInVpssFromHostPrm));
            System_linkCreate(gMultiCh_VdecVdisObj.mergeId,&mergePrm,sizeof(mergePrm));
        }
    
        System_linkCreate(gMultiCh_VdecVdisObj.mpSclrId, &mpSclrPrm, sizeof(mpSclrPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.dupId     , &dupPrm    , sizeof(dupPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.decSnapshotDup, &dupSnapshotPrm    , sizeof(dupSnapshotPrm));
    
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
            System_linkCreate(gVdisModuleContext.swMsId[i]  , &swMsPrm[i], sizeof(swMsPrm[i]));
    
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
            System_linkCreate(gVdisModuleContext.displayId[i], &displayPrm[i], sizeof(displayPrm[i]));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcFramesOutVpssId, &gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm, sizeof(gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcFramesInVideoId, &gMultiCh_VdecVdisObj.ipcFramesInVideoPrm, sizeof(gMultiCh_VdecVdisObj.ipcFramesInVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.encId, &gMultiCh_VdecVdisObj.encPrm, sizeof(gMultiCh_VdecVdisObj.encPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcBitsOutVideoId, &gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm, sizeof(gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcBitsInHostId, &gMultiCh_VdecVdisObj.ipcBitsInHostPrm, sizeof(gMultiCh_VdecVdisObj.ipcBitsInHostPrm));
    
        MultiCh_memPrintHeapStatus();
        gMultiCh_VdecVdisObj.enableVideoFrameExport = enableVideoFrameExport;
        {
            MultiCh_setDec2DispMap(VDIS_DEV_HDMI,gVdecModuleContext.vdecConfig.numChn,0,0);
            #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            MultiCh_setDec2DispMap(VDIS_DEV_SD,gVdecModuleContext.vdecConfig.numChn,0,0);
            #else
            MultiCh_setDec2DispMap(VDIS_DEV_HDCOMP,gVdecModuleContext.vdecConfig.numChn,0,0);
            #endif
       }
    
    }
    
    Void MultiCh_deleteVdecVdis()
    {
        Bool tilerEnable;
    
        tilerEnable  = FALSE;
    
        /* delete can be done in any order */
        Vdec_delete();
        Vdis_delete();
    
        if (gMultiCh_VdecVdisObj.enableVideoFrameExport)
        {
            System_linkDelete(gMultiCh_VdecVdisObj.mergeId);
        }
    
        System_linkDelete(gMultiCh_VdecVdisObj.mpSclrId);
        System_linkDelete(gMultiCh_VdecVdisObj.dupId);
        System_linkDelete(gMultiCh_VdecVdisObj.ipcOutVideoId );
        System_linkDelete(gMultiCh_VdecVdisObj.ipcInVpssId );
    
        /* Print the HWI, SWI and all tasks load */
        /* Reset the accumulated timer ticks */
        MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE);
    
    
        if (tilerEnable == FALSE)
        {
            /* Disable tiler allocator for this usecase
             * for that tiler memory can be reused for
             * non-tiled allocation
             */
            SystemTiler_enableAllocator();
        }
        else
        {
            SystemTiler_BucketGeometry_t bucketRes;
    
            bucketRes.minResolution = SYSTEM_TILER_RESOLUTION_CIF;
            bucketRes.setSingleBucketGeometry = TRUE;
            SystemTiler_setBucketGeometry(&bucketRes);
        }
    
    }
    

  •  Setting DMM priority for [A8      ] to [0] ( 0x4e000620 = 0x00000008 )
    gVIDEOMOTION_ctrl.bufSize = 21120
    gVIDEOMOTION_ctrl.bufNum  = 16
    app_pb: app_playback_init ... success
    lib_dvr_app.c DVR_StartSystem 988 
     0: SYSTEM: System Common Init in progress !!!
     0: SYSTEM: IPC init in progress !!!
     19: SYSTEM: CPU [DSP] syslink proc ID is [0] !!!
     19: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [1] !!!
     19: SYSTEM: CPU [VPSS-M3] syslink proc ID is [2] !!!
     19: SYSTEM: CPU [HOST] syslink proc ID is [3] !!!
     20: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_3] ...
     24: SYSTEM: Creating MsgQ [HOST_MSGQ] ...
     25: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ...
     27: SYSTEM: Opening MsgQ [DSP_MSGQ] ...
     28: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
     28: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     29: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     30: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     30: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     31: SYSTEM: IPC init DONE !!!
     33: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ...
     35: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ...
     36: SYSTEM: ListElem Shared Addr = 0x694fb700
     38: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ...
     40: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ...
     41: SYSTEM: ListElem Shared Addr = 0x69532500
     43: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 ...
     45: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 ...
     47: SYSTEM: ListElem Shared Addr = 0x69569300
     48: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 ...
     50: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 ...
     51: SYSTEM: ListElem Shared Addr = 0x695ac600
     52: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 ...
     55: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 ...
     56: SYSTEM: ListElem Shared Addr = 0x695ef900
     73: SYSTEM: System Common Init Done !!!
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    vdMosaicParam->numberOfWindows =16 startChId 0 maxChns 32 
    vdMosaicParam->numberOfWindows =16 startChId 16 maxChns 32 
     [host] HDMI Ctrl :Initializing
    [HOST] 
    ThreadName:Vdis_hdmiControlThread_0,ThreadID:860
     [host] HDMI Ctrl :Initialized
    
     [host] APP_WRITER:WRITER_recordFxn:Entered...==========yhao image===================yhao image11==============Going to Vsys_create=========
     140: MCFW  : CPU Revision [ES2.0] !!! 
    ----------------endChNum=16
    [HOST] 
    ThreadName:IpcBitsOutLink_tskMain_30000018,ThreadID:851
    
     [host]  142: IPC_BITS_OUT   : Create in progress !!!
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:0,Size:0x9E3400
     [host] 
    ******* RingBuf 0 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6a8ea080 To Phy:0x80000080
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6A8EA080 / PhyAddr 80000080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:1,Size:0x9E3400
     [host] 
    ******* RingBuf 1 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6b2cd480 To Phy:0x809e3480
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6B2CD480 / PhyAddr 809E3480
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:2,Size:0x9E3400
     [host] 
    ******* RingBuf 2 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6bcb0880 To Phy:0x813c6880
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6BCB0880 / PhyAddr 813C6880
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:3,Size:0x9E3400
     [host] 
    ******* RingBuf 3 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6c693c80 To Phy:0x81da9c80
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6C693C80 / PhyAddr 81DA9C80
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:4,Size:0x9E3400
     [host] 
    ******* RingBuf 4 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6d077080 To Phy:0x8278d080
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6D077080 / PhyAddr 8278D080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:5,Size:0x9E3400
     [host] 
    ******* RingBuf 5 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6da5a480 To Phy:0x83170480
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6DA5A480 / PhyAddr 83170480
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:6,Size:0x9E3400
     [host] 
    ******* RingBuf 6 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6e43d880 To Phy:0x83b53880
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6E43D880 / PhyAddr 83B53880
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:7,Size:0x9E3400
     [host] 
    ******* RingBuf 7 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6ee20c80 To Phy:0x84536c80
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6EE20C80 / PhyAddr 84536C80
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:8,Size:0x9E3400
     [host] 
    ******* RingBuf 8 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6f804080 To Phy:0x84f1a080
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6F804080 / PhyAddr 84F1A080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:9,Size:0x9E3400
     [host] 
    ******* RingBuf 9 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x701e7480 To Phy:0x858fd480
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 701E7480 / PhyAddr 858FD480
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:10,Size:0x9E3400
     [host] 
    ******* RingBuf 10 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x70bca880 To Phy:0x862e0880
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 70BCA880 / PhyAddr 862E0880
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:11,Size:0x9E3400
     [host] 
    ******* RingBuf 11 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x715adc80 To Phy:0x86cc3c80
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 715ADC80 / PhyAddr 86CC3C80
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:12,Size:0x9E3400
     [host] 
    ******* RingBuf 12 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x71f91080 To Phy:0x876a7080
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 71F91080 / PhyAddr 876A7080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:13,Size:0x9E3400
     [host] 
    ******* RingBuf 13 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x72974480 To Phy:0x8808a480
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 72974480 / PhyAddr 8808A480
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:14,Size:0x9E3400
     [host] 
    ******* RingBuf 14 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x73357880 To Phy:0x88a6d880
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 73357880 / PhyAddr 88A6D880
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:15,Size:0x9E3400
     [host] 
    ******* RingBuf 15 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x73d3ac80 To Phy:0x89450c80
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 73D3AC80 / PhyAddr 89450C80
    
     [host]  482: IPC_BITS_OUT   : Create Done !!!
    [HOST] 
    ThreadName:IpcBitsOutLink_periodicTaskFxn_30000018,ThreadID:866
     [m3vpss ] WARNING!!.Tiler Memory cannot be accessed by M3 in 2G build.Will not disable
     [m3video]  5080: IPC_BITS_IN   : Create in progress !!!
     [m3video]  5080: SYSTEM: Opening ListMP [HOST_IPC_OUT_24] ...
     [m3video]  5081: SYSTEM: Opening ListMP [HOST_IPC_IN_24] ...
     [m3video]  5081: SYSTEM: Opening MsgQ [HOST_MSGQ] ...
     [m3video]  5083: IPC_BITS_IN   : Create Done !!!
     [m3video]  5083: DECODE: Create in progress ... !!!
     [m3video] DECLINK_H264:HEAPID:0        USED:4264
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5210: DECODE: Creating CH0 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5335: DECODE: Creating CH1 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5460: DECODE: Creating CH2 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5585: DECODE: Creating CH3 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5711: DECODE: Creating CH4 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5836: DECODE: Creating CH5 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5961: DECODE: Creating CH6 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6086: DECODE: Creating CH7 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6211: DECODE: Creating CH8 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6336: DECODE: Creating CH9 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6462: DECODE: Creating CH10 of 1920 x 1080 [PROGRESSnet eth1: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:02, id=1cc914, speed=100)
    IVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6587: DECODE: Creating CH11 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6712: DECODE: Creating CH12 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6837: DECODE: Creating CH13 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6962: DECODE: Creating CH14 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  7088: DECODE: Creating CH15 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video]  7089: DECODE: All CH Create ... DONE !!!
     [m3vpss ]  7094: IPC_IN_M3   : Create in progress !!!
     [m3vpss ]  7095: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_0] ...
     [m3video] DECLINK:HEAPID:0     USED:39904
     [m3vpss ]  7095: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_0] ...
     [m3video] DECLINK:HEAPID:3     USED:432013312
     [m3vpss ]  7095: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
     [m3video]  7093: DECODE: Create ... DONE !!!
     [m3vpss ]  7097: IPC_IN_M3   : Create Done !!!
     [m3video]  7093: IPC_OUT_M3   : Create in progress !!!
     [m3vpss ]  7101: DUP:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3video]  7094: IPC_OUT_M3   : Create Done !!!
     [m3vpss ]  7101: DUP:  1: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7101: DUP:  2: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7101: DUP:  3: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7101: DUP:  4: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7101: DUP:  5: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7101: DUP:  6: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7101: DUP:  7: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7102: DUP:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7102: DUP:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7102: DUP: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7102: DUP: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7102: DUP: 12: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7102: DUP: 13: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7102: DUP: 14: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7102: DUP: 15: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7104: DUP   : Create Done !!!
     [m3vpss ]  7104: MP_SCLR: Create in progress !!!
     [m3vpss ]  7108: MP_SCLR: Configured to use scalar instance 4 !!! 
     [m3vpss ]  MP_SCLR: chID[0]Res[1776]
     [m3vpss ]  MP_SCLR: chID[1]Res[1776]
     [m3vpss ]  MP_SCLR: chID[2]Res[1776]
     [m3vpss ]  MP_SCLR: chID[3]Res[1776]
     [m3vpss ]  MP_SCLR: chID[4]Res[1776]
     [m3vpss ]  MP_SCLR: chID[5]Res[1776]
     [m3vpss ]  MP_SCLR: chID[6]Res[1776]
     [m3vpss ]  MP_SCLR: chID[7]Res[1776]
     [m3vpss ]  MP_SCLR: chID[8]Res[1776]
     [m3vpss ]  MP_SCLR: chID[9]Res[1776]
     [m3vpss ]  MP_SCLR: chID[10]Res[1776]
     [m3vpss ]  MP_SCLR: chID[11]Res[1776]
     [m3vpss ]  MP_SCLR: chID[12]Res[1776]
     [m3vpss ]  MP_SCLR: chID[13]Res[1776]
     [m3vpss ]  MP_SCLR: chID[14]Res[1776]
     [m3vpss ]  MP_SCLR: chID[15]Res[1776]
     [m3vpss ]  7111: MP_SCLR: Create Done !!!
     [m3vpss ]  7115: DUP:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7115: DUP:  1: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7115: DUP:  2: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7115: DUP:  3: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7115: DUP:  4: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7116: DUP:  5: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7116: DUP:  6: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7116: DUP:  7: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7116: DUP:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7116: DUP:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7116: DUP: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7116: DUP: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7116: DUP: 12: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7116: DUP: 13: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7116: DUP: 14: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7116: DUP: 15: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7118: DUP   : Create Done !!!
     [m3vpss ]  7118: SWMS: Create in progress !!!
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 58 (58)
     [m3vpss ]  UTILS: DMA: 0 of 1: Allocated PaRAM = 58 (0x49004740)
     [m3vpss ] SWMS: instance 0, sc id 7, start win 0 end win 15
     [m3vpss ] SWMS: instance 1, sc id 4, start win 16 end win 33
     [m3vpss ]  7258: SWMS    : VipScReq is FALSE!!!
     [m3vpss ]  7261: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  7261: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  7262: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  7265: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  7265: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  7265: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  7266: SWMS:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7266: SWMS:  1: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7266: SWMS:  2: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7266: SWMS:  3: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7266: SWMS:  4: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7266: SWMS:  5: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7266: SWMS:  6: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7266: SWMS:  7: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7267: SWMS:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7267: SWMS:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7267: SWMS: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7267: SWMS: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7267: SWMS: 12: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7267: SWMS: 13: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7267: SWMS: 14: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7267: SWMS: 15: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7267: SWMS    : ******* Configuring clock 45 secs... 
     [m3vpss ]  7267: SWMS0    : Loading Vertical Co-effs (7/16)x ... 
     [m3vpss ]  7268: SWMS0    : Loading Horizontal Co-effs (3/16)x ... 
     [m3vpss ]  7268: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  7268: SWMS0    : Loading Vertical Co-effs (7/16)x ... 
     [m3vpss ]  7268: SWMS0    : Loading Horizontal Co-effs (3/16)x ... 
     [m3vpss ]  7268: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ] SWMS:HEAPID:0        USED:288
     [m3vpss ] SWMS:HEAPID:1        USED:60832
     [m3vpss ] SWMS:HEAPID:4        USED:29030400
     [m3vpss ]  7268: SWMS: Create Done !!!
     [m3vpss ]  7268: SWMS: Create in progress !!!
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 59 (59)
     [m3vpss ]  UTILS: DMA: 0 of 1: Allocated PaRAM = 59 (0x49004760)
     [m3vpss ] SWMS: instance 0, sc id 6, start win 0 end win 15
     [m3vpss ] SWMS: instance 1, sc id 3, start win 16 end win 33
     [m3vpss ]  7408: SWMS    : VipScReq is FALSE!!!
     [m3vpss ]  7412: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  7412: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  7412: SWMS    : Co-effs Loading ... DONE !!!
     [m3video]  7424: IPC_FRAMES_IN   : Create in progress !!!
     [m3vpss ]  7416: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3video]  7424: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_20] ...
     [m3vpss ]  7416: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3video]  7424: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_20] ...
     [m3vpss ]  7416: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  7416: SWMS:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7417: SWMS:  1: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7417: SWMS:  2: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7417: SWMS:  3: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7417: SWMS:  4: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7417: SWMS:  5: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7417: SWMS:  6: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7417: SWMS:  7: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7417: SWMS:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7417: SWMS:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7417: SWMS: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7417: SWMS: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7418: SWMS: 12: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7418: SWMS: 13: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7418: SWMS: 14: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7418: SWMS: 15: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  7418: SWMS    : ******* Configuring clock 30 secs... 
     [m3vpss ]  7418: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
    
     [host] IpcBitsInLink_tskMain:Entered[HOST] 
    ThreadName:IpcBitsInLink_tskMain_3000001a,ThreadID:849
    
     [host]  3161: IPC_BITS_IN   : Create in progress !!!
    
     [host]  3161: IPC_BITS_IN   : ListMPOpen start !!!
    
     [host]  3161: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_24] ...
     [m3vpss ]  7418: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  7418: SWMS    : Co-effs Loading ... DONE !!!
     [m3video] IPC_FRAMES_IN:HEAPID:0       USED:304
     [m3vpss ]  7418: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3video]  7427: IPC_FRAMES_IN   : Create Done !!!
     [m3vpss ]  7418: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3video]  7427: ENCODE: Create in progress ... !!!
     [m3vpss ]  7418: SWMS    : Co-effs Loading ... DONE !!!
     [m3video] ENCLINK:INFO: !!!Number of output buffers for ch[0] set to [1]
     [m3video]  7507: ENCODE: Creating CH0 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     3164: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_24] ...
    
     [host]  3165: IPC_BITS_IN   : ListMPOpen done !!!
    
     [host]  3166: IPC_BITS_IN   : System_linkGetInfo done !!!
    
     [host]  3166: IPC_BITS_IN   : Create Done !!!
     [m3vpss ] SWMS:HEAPID:0        USED:288
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ] SWMS:HEAPID:1        USED:66656
     [m3video]  7507: ENCODE: Creating CH1 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ] SWMS:HEAPID:4        USED:29030400
     [m3vpss ]  7419: SWMS: Create Done !!!
     [m3vpss ]  7419: DISPLAY: Create in progress !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  7420: DISPLAY: Create Done !!!
     [m3video]  7508: ENCODE: Creating CH2 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  7420: DISPLAY: Create in progress !!!
     [m3vpss ]  7421: DISPLAY: Create Done !!!
     [m3vpss ]  7421: IPC_FRAMES_OUT   : Create in progress !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  7509: ENCODE: Creating CH3 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  7423: IPC_FRAMES_OUT   : Create Done !!!
     [m3vpss ]  7766: DISPLAY: Start in progress !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  7509: ENCODE: Creating CH4 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  7510: ENCODE: Creating CH5 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  7805: DISPLAY: Start Done !!!
     [m3video]  7510: ENCODE: Creating CH6 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  7805: DISPLAY: HDDAC(BP0) : 51 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) DropCount:0 DispLatency (Min / Max) = ( 7811 / 0 ) !!! 
     [m3vpss ]  7805: DISPLAY DRV: HDDAC(BP0) : Q:[2] Display:[2], Repeat:[1], DQ:[0]
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  7805: DISPLAY: UNDERFLOW COUNT: HDMI(BP0) 1, HDDAC(BP0) 1, DVO2(BP1) 1, SDDAC(SEC1) 1 
     [m3video]  7511: ENCODE: Creating CH7 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  7805: SYSTEM  : FREE SPACE : System Heap      = 67304 B, Mbx = 10238 msgs) 
     [m3vpss ]  7805: SYSTEM  : FREE SPACE : SR0 Heap         = 16805760 B (16 MB) 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  7512: ENCODE: Creating CH8 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  7805: SYSTEM  : FREE SPACE : Frame Buffer     = 176704384 B (168 MB) 
     [m3vpss ]  7806: SYSTEM  : FREE SPACE : Bitstream Buffer = 109027200 B (103 MB) 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  7512: ENCODE: Creating CH9 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  7806: DISPLAY: Start in progress !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  7513: ENCODE: Creating CH10 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ] TILER_STATS: CNT :8BIT
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    16384 x 8192
     [m3video]  7513: ENCODE: Creating CH11 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 16384 x 8188
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3video]  7514: ENCODE: Creating CH12 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134152192 (99 %)
     [m3video]  7515: ENCODE: Creating CH13 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  7515: ENCODE: Creating CH14 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ] TILER_STATS: CNT :16BIT
     [m3video]  7516: ENCODE: Creating CH15 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    32768 x 4096
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 32768 x 4096
     [m3video]  7517: ENCODE: All CH Create ... DONE !!!
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3video] ENCLINK:HEAPID:0     USED:33144
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3video] ENCLINK:HEAPID:2     USED:16588800
     [m3video]  7518: ENCODE: Create ... DONE !!!
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134217728 (100 %)
     [m3video]  7518: IPC_BITS_OUT   : Create in progress !!!
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3video]  7520: IPC_BITS_OUT   : Create Done !!!
     [m3vpss ]  7807: SYSTEM  : FREE SPACE : Tiler 8-bit      = 134152192 B (127 MB)  - TILER ON 
     [m3vpss ]  7807: SYSTEM  : FREE SPACE : Tiler 16-bit     = 134217728 B (128 MB)  - TILER ON 
     [m3vpss ]  7858: DISPLAY: Start Done !!!
     [m3vpss ]  7858: DISPLAY: DVO2(BP1)  : 38 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) DropCount:0 DispLatency (Min / Max) = ( 7811 / 0 ) !!! 
     [m3vpss ]  7858: SWMS: Start in Progress !!!
     [m3vpss ]  7858: SWMS: Start Done !!!
     [m3vpss ]  7859: DISPLAY DRV: DVO2(BP1)  : Q:[2] Display:[2], Repeat:[1], DQ:[0]
     [m3vpss ]  7859: SWMS: Start in Progress !!!
     [m3vpss ]  7859: SWMS: Start Done !!!
    
    Fix Screen Info:
    ----------------
    Line Length - 3840
    Physical Address = dea00000
    Buffer Length = 8294400
    
    Var Screen Info:
    ----------------
    Xres - 1920
    Yres - 1080
    Xres Virtual - 1920
    Yres Virtual - 1080
    Bits Per Pixel - 16
    Pixel Clk - 6734
    Rotation - 0
    buf_size - 4147200 Bytes
    
    Fix Screen Info:
    ----------------
    Line Length - 3840
    Physical Address = df1e9000
    Buffer Length = 8294400
    
    Var Screen Info:
    ----------------
    Xres - 1920
    Yres - 1080
    Xres Virtual - 1920
    Yres Virtual - 1080
    Bits Per Pixel - 16
    Pixel Clk - 6734
    Rotation - 0
    buf_size - 4147200 Bytes
    
     ===============Switch Display Done========================= 

    Thanks!

  • You have to create decoder for 2048x1536 resolution.

    Set

    gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoHeight

    and

    gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoWidth

    correctly by setting Vdec_params before Vdec_init.

    Your input format is YUV420SP not YUV422 as you initially mentioned.

  • According to your reminder,

    gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoHeight =2048,

    gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoWidth = 1536,

    Can correct the encode.But only open at 12 channel.

    Thanks.

  • I have a question.

    My YUV420 is 2048 * 1536, I'd like to encode 1920 * 1080, how to set up?

  • You should encode the output of MpSclr link if you want 1920x1080 resolution.

  • I added the MpSclr, but the output image

    Excuse me, how should adjust?

  • Attach modified usecase file and console logs from start of application. Your pitch seems to be wrongly set.Try connecting NSF after Mpsclr before encode 

  • /*******************************************************************************
     *                                                                             *
     * Copyright (c) 2009 Texas Instruments Incorporated - http://www.ti.com/      *
     *                        ALL RIGHTS RESERVED                                  *
     *                                                                             *
     ******************************************************************************/
    /*  ========================= TI_816X_BUILD case ==============================
                              |
                            IPC_BITS_OUT_A8 (BitStream)
                              |
                            IPC_BITS_IN (Video)
                              |
                            DEC (YUV420SP)
                              |
                            IPC_OUT (Video)
                              |
                            IPC_IN (Vpss)
                              |   (32 D1 + 10 720P + 6 1080P)
                             DUP
                              |   +----------+------ |
                            MP_SCLR (Vpss)             MP_SCLR                                                 
                              |                                 |
                             DUP                             VENC(Video)
                   (48CH)    | |    (48CH)
             +---------------+ +-------------+
             |                               |
             |                               |
          SW Mosaic                       SW Mosaic
         (SC5 SC1 YUV422I)                (SC4 SC2 YUV422I)
            |  |                             |  |
            |  |                             |  |
           (DDR)(422I)                      (DDR)(422I)
              |                               |
      GRPX0   |                      GRPX1    |
         |    |                          |    |
         On-Chip HDMI                    Off-Chip HDMI
           1080p60                        1080p60
    */
    
    /* ========================= TI_814X_BUILD case ==============================
                              |
                            IPC_BITS_OUT_A8 (BitStream)
                              |
                            IPC_BITS_IN (Video)
                              |
                            DEC (YUV420SP)
                              |
                            IPC_OUT (Video)
                              |
                            IPC_IN (Vpss)
                              |   (16 channels)
                            MP_SCLR (Vpss)
                              |
                             DUP
                   (16CH)    | |    (16CH)
             +---------------+ +-------------+
             |                               |
             |                               |
          SW Mosaic                       SW Mosaic
         (SC5 YUV422I)                (SC5 YUV422I)
            |  |                             |  |
            |  |                             |  |
           (DDR)(422I)                      (DDR)(422I)
              |                               |
      GRPX0   |----Tied---|                   |
         |    |           |                   |
         On-Chip HDMI  Off-Chip HDMI         SDTV
           1080p60       1080p60
    */
    
    #include "mcfw/src_linux/mcfw_api/usecases/multich_common.h"
    #include "mcfw/src_linux/mcfw_api/usecases/multich_ipcbits.h"
    #include "mcfw/interfaces/link_api/system_tiler.h"
    #include "mcfw/interfaces/link_api/avsync_hlos.h"
    
    /* =============================================================================
     * Externs
     * =============================================================================
     */
    
    
    /* =============================================================================
     * Use case code
     * =============================================================================
     */
    
    
    
    #define MAX_DEC_OUT_FRAMES_PER_CH                           (5)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_NUM_CHANNELS       (16)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH        (720)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_HEIGHT       (480)
    #define MULTICH_NUM_SWMS_MAX_BUFFERS                        (7)
    
    #define     MAX_BUFFERING_QUEUE_LEN_PER_CH           (50)
    
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_CIF           (10)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_SD            (6)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_HD            (5)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_720P          (4)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_HMP           (4)
    
    
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
    static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 0,
            .EncChList = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 16,
            .DecChList = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
        },
    };
    #define NUM_STATIC_CHANNELS   (6)
    #else
    /*
    Max channels per IVA-HD MUST be < 16,
    i.e total number of channels for decode can be 48.
    
    Example CH allocation for SD+HD,
    
    32CH SD    :  0 to 31
     6CH 1080P : 32 to 38
    10CH 720P  : 39 to 48
    
    */
    static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 5,
            .EncChList = {0, 3, 6, 9, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 17,
            .DecChList = {   0,  3,  6,  9, 12, 15, 18, 21,
                            24, 27, 30, 33, 36, 39, 42, 45,
                            48
                         },
        },
        .ivaMap[1] =
        {
            .EncNumCh  = 5,
            .EncChList = {1, 4, 7, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 17,
            .DecChList = {   1,  4,  7, 10, 13, 16, 19, 22,
                            25, 28, 31, 34, 37, 40, 43, 46,
                            49
                         },
        },
        .ivaMap[2] =
        {
            .EncNumCh  = 6,
            .EncChList = {2, 5, 8, 11, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 16,
            .DecChList = {   2,  5,  8, 11, 14, 17, 20, 23,
                            26, 29, 32, 35, 38, 41, 44, 47
                         },
        },
    };
    #define NUM_STATIC_CHANNELS   (8)
    #endif
    
    typedef struct {
    
        UInt32 dupId;
        UInt32 ipcOutVideoId;
        UInt32 ipcInVpssId;
        UInt32 mergeId;
        Bool   enableVideoFrameExport;
        AvsyncLink_LinkSynchConfigParams   avsyncCfg[VDIS_DEV_MAX];
        UInt32 mpSclrId;	
        UInt32 snapshotmpSclrId;
        UInt32 decSnapshotDup;
        UInt32 ipcFramesOutVpssId;
        IpcFramesOutLinkRTOS_CreateParams ipcFramesOutVpssPrm;
        UInt32 ipcFramesInVideoId;
        IpcFramesInLinkRTOS_CreateParams ipcFramesInVideoPrm;
        UInt32 encId;
        EncLink_CreateParams encPrm;
        UInt32 ipcBitsOutVideoId;
        IpcBitsOutLinkRTOS_CreateParams ipcBitsOutVideoPrm;
        UInt32 ipcBitsInHostId;
        IpcBitsInLinkHLOS_CreateParams ipcBitsInHostPrm;
    } MultiCh_VdecVdisObj;
    
    MultiCh_VdecVdisObj gMultiCh_VdecVdisObj;
    
    static Void MultiCh_setIpcFramesOutInQueInfo(System_LinkQueInfo *inQueInfo)
    {
        Int i;
    
        inQueInfo->numCh = MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_NUM_CHANNELS;
        for (i = 0; i < inQueInfo->numCh; i++)
        {
            inQueInfo->chInfo[i].bufType = SYSTEM_BUF_TYPE_VIDFRAME;
            inQueInfo->chInfo[i].dataFormat = SYSTEM_DF_YUV422I_YUYV;
            inQueInfo->chInfo[i].memType    = SYSTEM_MT_NONTILEDMEM;
            inQueInfo->chInfo[i].scanFormat = SYSTEM_SF_PROGRESSIVE;
            inQueInfo->chInfo[i].startX     = 0;
            inQueInfo->chInfo[i].startY     = 0;
            inQueInfo->chInfo[i].width      =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH;
            inQueInfo->chInfo[i].height     =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_HEIGHT;
            inQueInfo->chInfo[i].pitch[0]   =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH * 2;
            inQueInfo->chInfo[i].pitch[1]   = 0;
            inQueInfo->chInfo[i].pitch[2]   = 0;
        }
    }
    
    static
    Void mulich_vdec_vdis_set_avsync_vidque_prm(Avsync_SynchConfigParams *queCfg,
                                                Int chnum,
                                                UInt32 avsStartChNum,
                                                UInt32 avsEndChNum,
                                                VDIS_DEV vdDevId)
    {
        queCfg->chNum = chnum;
        queCfg->audioPresent = FALSE;
        if ((queCfg->chNum >= avsStartChNum)
            &&
            (queCfg->chNum <= avsEndChNum)
            &&
            (gVsysModuleContext.vsysConfig.enableAVsync))
        {
            queCfg->avsyncEnable = TRUE;
        }
        else
        {
            queCfg->avsyncEnable = FALSE;
        }
    
        queCfg->clkAdjustPolicy.refClkType = AVSYNC_REFCLKADJUST_NONE;
        queCfg->clkAdjustPolicy.clkAdjustLead = AVSYNC_VIDEO_TIMEBASESHIFT_MAX_LEAD_MS;
        queCfg->clkAdjustPolicy.clkAdjustLag  = AVSYNC_VIDEO_TIMEBASESHIFT_MAX_LAG_MS;
        queCfg->vidSynchPolicy.maxReplayLead  = AVSYNC_VIDEO_FUTURE_FRAME_DROP_THRESHOLD_MS;
        queCfg->vidSynchPolicy.playMaxLag  = 180;
        queCfg->vidSynchPolicy.playMaxLead = 0;
        queCfg->vidSynchPolicy.doMarginScaling = FALSE;
        queCfg->playTimerStartTimeout = 0;
        queCfg->playStartMode = AVSYNC_PLAYBACK_START_MODE_WAITSYNCH;
        queCfg->ptsInitMode   = AVSYNC_PTS_INIT_MODE_APP;
    }
    
    static
    Void mulich_vdec_vdis_set_avsync_prm(AvsyncLink_LinkSynchConfigParams *avsyncPrm,
                                         UInt32 swMsIdx,
                                         VDIS_DEV vdDevId)
    {
        Int i;
        Int32 status;
    
        Vdis_getAvsyncConfig(vdDevId,avsyncPrm);
        avsyncPrm->displayLinkID        = Vdis_getDisplayId(vdDevId);
        avsyncPrm->videoSynchLinkID = gVdisModuleContext.swMsId[swMsIdx];
        avsyncPrm->numCh            = gVdecModuleContext.vdecConfig.numChn;
        avsyncPrm->syncMasterChnum =  AVSYNC_INVALID_CHNUM;
        for (i = 0; i < avsyncPrm->numCh;i++)
        {
            mulich_vdec_vdis_set_avsync_vidque_prm(&avsyncPrm->queCfg[i],
                                                   i,
                                                   0,
                                                   (0 + gVdecModuleContext.vdecConfig.numChn),
                                                   vdDevId);
        }
        if (0 == swMsIdx)
        {
            Vdis_setAvsyncConfig(VDIS_DEV_HDMI,avsyncPrm);
        }
        else
        {
            Vdis_setAvsyncConfig(VDIS_DEV_SD,avsyncPrm);
        }
    
        status = Avsync_configSyncConfigInfo(avsyncPrm);
        OSA_assert(status == 0);
    }
    
    static Void mulich_vdec_vdis_set_mjpeg_enc_ch_params (EncLink_CreateParams *encPrm, Int32 startChNum, Int32 endChNum)
    {
        Int32 i;
    
        EncLink_ChCreateParams *pLinkChPrm;
        EncLink_ChDynamicParams *pLinkDynPrm;
        VENC_CHN_DYNAMIC_PARAM_S *pDynPrm;
        VENC_CHN_PARAMS_S *pChPrm;
    	
        printf ("----------------endChNum=%d\n",endChNum);
        for (i=startChNum; i<endChNum; i++)
        {
            pLinkChPrm  = &encPrm->chCreateParams[i];
            pLinkDynPrm = &pLinkChPrm->defaultDynamicParams;
    
            pChPrm      = &gVencModuleContext.vencConfig.encChannelParams[i];
            pDynPrm     = &pChPrm->dynamicParam;
    
            pLinkChPrm->format                 = IVIDEO_MJPEG;
            pLinkChPrm->profile                = 0;
            pLinkChPrm->dataLayout             = VCODEC_FIELD_SEPARATED;
            pLinkChPrm->fieldMergeEncodeEnable = FALSE;
            pLinkChPrm->enableAnalyticinfo     = 0;
            pLinkChPrm->enableWaterMarking     = 0;
            pLinkChPrm->maxBitRate             = 0;
            pLinkChPrm->encodingPreset         = 0;
            pLinkChPrm->rateControlPreset      = 0;
            pLinkChPrm->enableSVCExtensionFlag = 0;
            pLinkChPrm->numTemporalLayer       = 0;
    
            pLinkDynPrm->intraFrameInterval    = 0;
            pLinkDynPrm->targetBitRate         = 100*1000;
            pLinkDynPrm->interFrameInterval    = 0;
            pLinkDynPrm->mvAccuracy            = 0;
            pLinkDynPrm->inputFrameRate        = pDynPrm->inputFrameRate;
            pLinkDynPrm->qpMin                 = 0;
            pLinkDynPrm->qpMax                 = 0;
            pLinkDynPrm->qpInit                = -1;
            pLinkDynPrm->vbrDuration           = 0;
            pLinkDynPrm->vbrSensitivity        = 0;
        }
    }
    Void MultiCh_createVdecVdis()
    {
        IpcBitsOutLinkHLOS_CreateParams   ipcBitsOutHostPrm;
        IpcBitsInLinkRTOS_CreateParams    ipcBitsInVideoPrm;
        DecLink_CreateParams        decPrm;
        IpcLink_CreateParams        ipcOutVideoPrm;
        IpcLink_CreateParams        ipcInVpssPrm;
        DupLink_CreateParams        dupPrm,dupSnapshotPrm;
        static SwMsLink_CreateParams       swMsPrm[VDIS_DEV_MAX];
        DisplayLink_CreateParams    displayPrm[VDIS_DEV_MAX];
        IpcFramesOutLinkHLOS_CreateParams  ipcFramesOutHostPrm;
        IpcFramesInLinkRTOS_CreateParams   ipcFramesInVpssFromHostPrm;
        MergeLink_CreateParams             mergePrm;
        MpSclrLink_CreateParams            mpSclrPrm;
        MpSclrLink_CreateParams            mpSclrSnapshotPrm;
    
        UInt32 i;
        UInt32 enableGrpx;
        Bool tilerEnable;
        Bool enableVideoFrameExport;
    
        MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcInVpssPrm);
        MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcOutVideoPrm);
        MULTICH_INIT_STRUCT(IpcBitsOutLinkHLOS_CreateParams,ipcBitsOutHostPrm);
        MULTICH_INIT_STRUCT(IpcBitsInLinkRTOS_CreateParams,ipcBitsInVideoPrm);
        MULTICH_INIT_STRUCT(DecLink_CreateParams, decPrm);
        MULTICH_INIT_STRUCT(IpcFramesOutLinkHLOS_CreateParams ,ipcFramesOutHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams  ,ipcFramesInVpssFromHostPrm);
        for (i = 0; i < VDIS_DEV_MAX;i++)
        {
            MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm[i]);
            MULTICH_INIT_STRUCT(SwMsLink_CreateParams ,swMsPrm[i]);
        }
    
        MULTICH_INIT_STRUCT(MpSclrLink_CreateParams, mpSclrPrm);
        MULTICH_INIT_STRUCT(MpSclrLink_CreateParams, mpSclrSnapshotPrm);
    
        MultiCh_detectBoard();
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VPSS,
            SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES,
            NULL,
            0,
            TRUE
            );
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VIDEO,
            SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,
            &systemVid_encDecIvaChMapTbl,
            sizeof(SystemVideo_Ivahd2ChMap_Tbl),
            TRUE
        );
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
        enableGrpx   = FALSE;
    #else
        enableGrpx   = TRUE;
    #endif
    
        tilerEnable  = FALSE;
    
        if (tilerEnable == FALSE)
        {
            /* Disable tiler allocator for this usecase
             * for that tiler memory can be reused for
             * non-tiled allocation
             */
            SystemTiler_disableAllocator();
        }
        else
        {
            SystemTiler_BucketGeometry_t bucketRes;
    
            bucketRes.bucketWidth  = SYSTEM_TILER_ALLOCATOR_BUCKET_WIDTH_DEFAULT;
            bucketRes.bucketHeight = SYSTEM_TILER_ALLOCATOR_BUCKET_HEIGHT_DEFAULT;
            bucketRes.minResolution = SYSTEM_TILER_RESOLUTION_CIF;
            bucketRes.setSingleBucketGeometry = FALSE;
            SystemTiler_setBucketGeometry(&bucketRes);
        }
    
        enableVideoFrameExport = FALSE;
    
        gVdecModuleContext.ipcBitsOutHLOSId = SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0;
        gVdecModuleContext.ipcBitsInRTOSId  = SYSTEM_VIDEO_LINK_ID_IPC_BITS_IN_0;
        gVdecModuleContext.decId            = SYSTEM_LINK_ID_VDEC_0;
    
        gMultiCh_VdecVdisObj.ipcOutVideoId  = SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0;
        gMultiCh_VdecVdisObj.ipcInVpssId    = SYSTEM_VPSS_LINK_ID_IPC_IN_M3_0;
        gMultiCh_VdecVdisObj.dupId          = SYSTEM_VPSS_LINK_ID_DUP_0;
        gMultiCh_VdecVdisObj.mpSclrId       = SYSTEM_LINK_ID_MP_SCLR_INST_0;
        gVdisModuleContext.mpSclrId         = SYSTEM_LINK_ID_MP_SCLR_INST_0;
        gVdisModuleContext.swMsId[0]        = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;
        gMultiCh_VdecVdisObj.snapshotmpSclrId= SYSTEM_LINK_ID_MP_SCLR_INST_1;
    
        gVdisModuleContext.displayId[0]     = SYSTEM_LINK_ID_DISPLAY_0; // ON AND OFF CHIP HDMI
    
    	gMultiCh_VdecVdisObj.decSnapshotDup = SYSTEM_VPSS_LINK_ID_DUP_1;
    
        if (gVsysModuleContext.vsysConfig.numDisplays > 1)
        {
            gVdisModuleContext.swMsId[1]        = SYSTEM_LINK_ID_SW_MS_MULTI_INST_1;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            gVdisModuleContext.displayId[1]     = SYSTEM_LINK_ID_DISPLAY_2; // SDTV
    #else
            gVdisModuleContext.displayId[1]     = SYSTEM_LINK_ID_DISPLAY_1; // OFF CHIP HDMI
    #endif
        }
    
        if (enableVideoFrameExport)
        {
            gMultiCh_VdecVdisObj.mergeId                 = SYSTEM_VPSS_LINK_ID_MERGE_0;
            gVdisModuleContext.ipcFramesOutHostId        = SYSTEM_HOST_LINK_ID_IPC_FRAMES_OUT_0;
            gVdisModuleContext.ipcFramesInVpssFromHostId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_IN_0;
        }
    
        if(enableGrpx)
        {
            // GRPX is enabled in Vdis_start() based on the link ID set here
            gVdisModuleContext.grpxId[0]    = SYSTEM_LINK_ID_GRPX_0;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            gVdisModuleContext.grpxId[1]    = SYSTEM_LINK_ID_INVALID;
    #else
            gVdisModuleContext.grpxId[1]    = SYSTEM_LINK_ID_GRPX_1;
    #endif
        }
    
        gMultiCh_VdecVdisObj.ipcFramesOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_1;
        gMultiCh_VdecVdisObj.ipcFramesInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_FRAMES_IN_0;
        gMultiCh_VdecVdisObj.encId              = SYSTEM_LINK_ID_VENC_0;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoId      = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;
        gMultiCh_VdecVdisObj.ipcBitsInHostId       = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;
        ipcBitsOutHostPrm.baseCreateParams.outQueParams[0].nextLink= gVdecModuleContext.ipcBitsInRTOSId;
        ipcBitsOutHostPrm.baseCreateParams.notifyNextLink       = FALSE;
        ipcBitsOutHostPrm.baseCreateParams.notifyPrevLink       = FALSE;
        ipcBitsOutHostPrm.baseCreateParams.noNotifyMode         = TRUE;
        ipcBitsOutHostPrm.baseCreateParams.numOutQue            = 1;
        ipcBitsOutHostPrm.inQueInfo.numCh                       = gVdecModuleContext.vdecConfig.numChn;
    
        for (i=0; i<ipcBitsOutHostPrm.inQueInfo.numCh; i++)
        {
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].width =
                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoWidth;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].height =
                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoHeight;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].scanFormat =
                SYSTEM_SF_PROGRESSIVE;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].bufType        = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].codingformat   = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].dataFormat     = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].memType        = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startX         = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startY         = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[0]       = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[1]       = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[2]       = 0; // NOT USED
    
            ipcBitsOutHostPrm.maxQueueDepth[i] = MAX_BUFFERING_QUEUE_LEN_PER_CH;
            ipcBitsOutHostPrm.chMaxReqBufSize[i] = 
                    (ipcBitsOutHostPrm.inQueInfo.chInfo[i].width * ipcBitsOutHostPrm.inQueInfo.chInfo[i].height); 
            ipcBitsOutHostPrm.totalBitStreamBufferSize [i] = 
                    (ipcBitsOutHostPrm.chMaxReqBufSize[i] * BIT_BUF_LENGTH_LIMIT_FACTOR_HD);
    
        }
    
        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkId    = gVdecModuleContext.ipcBitsOutHLOSId;
        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        ipcBitsInVideoPrm.baseCreateParams.outQueParams[0].nextLink  = gVdecModuleContext.decId;
        ipcBitsInVideoPrm.baseCreateParams.noNotifyMode              = TRUE;
        ipcBitsInVideoPrm.baseCreateParams.notifyNextLink            = TRUE;
        ipcBitsInVideoPrm.baseCreateParams.notifyPrevLink            = FALSE;
        ipcBitsInVideoPrm.baseCreateParams.numOutQue                 = 1;
    
        for (i=0; i<ipcBitsOutHostPrm.inQueInfo.numCh; i++)
        {
            if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_H264)
                decPrm.chCreateParams[i].format                 = IVIDEO_H264HP;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MPEG4)
                decPrm.chCreateParams[i].format                 = IVIDEO_MPEG4ASP;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MJPEG)
                decPrm.chCreateParams[i].format                 = IVIDEO_MJPEG;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MPEG2)
                decPrm.chCreateParams[i].format                 = IVIDEO_MPEG2HP;
    
            decPrm.chCreateParams[i].numBufPerCh
                             = gVdecModuleContext.vdecConfig.decChannelParams[i].numBufPerCh;
            decPrm.chCreateParams[i].profile                = IH264VDEC_PROFILE_ANY;
            decPrm.chCreateParams[i].displayDelay
                             = gVdecModuleContext.vdecConfig.decChannelParams[i].displayDelay;
            decPrm.chCreateParams[i].dpbBufSizeInFrames = IH264VDEC_DPB_NUMFRAMES_AUTO;
            if (gVdecModuleContext.vdecConfig.decChannelParams[i].fieldPicture)
            {
                OSA_printf("MULTICH_VDEC_VDIS:INFO ChId[%d] configured for field picture\n",i);
                decPrm.chCreateParams[i].processCallLevel   = VDEC_FIELDLEVELPROCESSCALL;
            }
            else
            {
                decPrm.chCreateParams[i].processCallLevel   = VDEC_FRAMELEVELPROCESSCALL;
            }
            decPrm.chCreateParams[i].targetMaxWidth  =
                ipcBitsOutHostPrm.inQueInfo.chInfo[i].width;
    
            decPrm.chCreateParams[i].targetMaxHeight =
                ipcBitsOutHostPrm.inQueInfo.chInfo[i].height;
    
            decPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate =
                gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.frameRate;
    
            decPrm.chCreateParams[i].defaultDynamicParams.targetBitRate =
                gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.targetBitRate;
            if (FALSE == tilerEnable)
            {
            	decPrm.chCreateParams[i].tilerEnable = FALSE;
            }
            else
            {
            	decPrm.chCreateParams[i].tilerEnable = gVdecModuleContext.vdecConfig.decChannelParams[i].tilerEnable;
            }
            decPrm.chCreateParams[i].enableWaterMarking = 
                gVdecModuleContext.vdecConfig.decChannelParams[i].enableWaterMarking;
        }
    
        decPrm.inQueParams.prevLinkId       = gVdecModuleContext.ipcBitsInRTOSId;
        decPrm.inQueParams.prevLinkQueId    = 0;
        decPrm.outQueParams.nextLink        = gMultiCh_VdecVdisObj.ipcOutVideoId;
    
        ipcOutVideoPrm.inQueParams.prevLinkId    = gVdecModuleContext.decId;
        ipcOutVideoPrm.inQueParams.prevLinkQueId = 0;
        ipcOutVideoPrm.outQueParams[0].nextLink     = gMultiCh_VdecVdisObj.ipcInVpssId;
        ipcOutVideoPrm.notifyNextLink            = TRUE;
        ipcOutVideoPrm.notifyPrevLink            = TRUE;
        ipcOutVideoPrm.numOutQue                 = 1;
    
        ipcInVpssPrm.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.ipcOutVideoId;
        ipcInVpssPrm.inQueParams.prevLinkQueId = 0;
        ipcInVpssPrm.notifyNextLink            = TRUE;
        ipcInVpssPrm.notifyPrevLink            = TRUE;
        ipcInVpssPrm.numOutQue                 = 1;
    
        dupSnapshotPrm.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcInVpssId;
        dupSnapshotPrm.inQueParams.prevLinkQueId = 0;
        dupSnapshotPrm.notifyNextLink = TRUE;
        dupSnapshotPrm.numOutQue = 2;
        if (enableVideoFrameExport)
        {
            ipcFramesOutHostPrm.baseCreateParams.noNotifyMode = TRUE;
            ipcFramesOutHostPrm.baseCreateParams.notifyNextLink = FALSE;
            ipcFramesOutHostPrm.baseCreateParams.notifyPrevLink = FALSE;
            ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkId = SYSTEM_LINK_ID_INVALID;
            ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
            ipcFramesOutHostPrm.baseCreateParams.numOutQue = 1;
            ipcFramesOutHostPrm.baseCreateParams.outQueParams[0].nextLink = gVdisModuleContext.ipcFramesInVpssFromHostId;
            MultiCh_setIpcFramesOutInQueInfo(&ipcFramesOutHostPrm.inQueInfo);
    
            ipcFramesInVpssFromHostPrm.baseCreateParams.noNotifyMode = TRUE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.notifyNextLink = TRUE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.notifyPrevLink = FALSE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.inQueParams.prevLinkId = gVdisModuleContext.ipcFramesOutHostId;
            ipcFramesInVpssFromHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
            ipcFramesInVpssFromHostPrm.baseCreateParams.numOutQue = 1;
            ipcFramesInVpssFromHostPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.mergeId;
    
    
            ipcInVpssPrm.outQueParams[0].nextLink     = gMultiCh_VdecVdisObj.mergeId;
    
            mergePrm.numInQue                     = 2;
            mergePrm.inQueParams[0].prevLinkId    = gMultiCh_VdecVdisObj.decSnapshotDup;
            mergePrm.inQueParams[0].prevLinkQueId = 0;
            dupSnapshotPrm.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.mergeId;
            mergePrm.inQueParams[1].prevLinkId    = gVdisModuleContext.ipcFramesInVpssFromHostId;
            mergePrm.inQueParams[1].prevLinkQueId = 0;
    
            mergePrm.outQueParams.nextLink        = gMultiCh_VdecVdisObj.mpSclrId;
            mergePrm.notifyNextLink               = TRUE;
            mpSclrPrm.inQueParams.prevLinkId      = gMultiCh_VdecVdisObj.mergeId;
        }
        else
        {
            mpSclrPrm.inQueParams.prevLinkId        = gMultiCh_VdecVdisObj.decSnapshotDup;
            mpSclrPrm.inQueParams.prevLinkQueId     = 0;
            dupSnapshotPrm.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.mpSclrId;
            ipcInVpssPrm.outQueParams[0].nextLink   = gMultiCh_VdecVdisObj.decSnapshotDup;
    
        }
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
        mpSclrPrm.pathId = MP_SCLR_LINK_SEC0_SC3_VIP0;
    #else
        mpSclrPrm.pathId = MP_SCLR_LINK_SEC1_SC4_VIP1;
    #endif
    
    #if 0
        mpSclrPrm.numCh = 4;
    #else
        mpSclrPrm.numCh = 16;
    
    #endif
        mpSclrSnapshotPrm.pathId = MP_SCLR_LINK_SEC1_SC4_VIP1;
    
    	mpSclrSnapshotPrm.inQueParams.prevLinkId		= gMultiCh_VdecVdisObj.decSnapshotDup;
    	mpSclrSnapshotPrm.inQueParams.prevLinkQueId 	= 1;
    	mpSclrSnapshotPrm.numCh = 16;
    	mpSclrSnapshotPrm.enableLineSkip = FALSE;
    	mpSclrSnapshotPrm.outQueParams.nextLink 	  = gMultiCh_VdecVdisObj.ipcFramesOutVpssId;	
    
        mpSclrPrm.enableLineSkip = FALSE;
    
        mpSclrPrm.outQueParams.nextLink       = gMultiCh_VdecVdisObj.dupId;
        dupPrm.inQueParams.prevLinkId         = gMultiCh_VdecVdisObj.mpSclrId;
    
        dupPrm.inQueParams.prevLinkQueId      = 0;
        dupPrm.numOutQue                      = gVsysModuleContext.vsysConfig.numDisplays;
        dupPrm.outQueParams[0].nextLink       = gVdisModuleContext.swMsId[0];
        dupPrm.outQueParams[1].nextLink       = gVdisModuleContext.swMsId[1];
        dupPrm.notifyNextLink                 = TRUE;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
    
        swMsPrm[0].numSwMsInst = 1;
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
    
        swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].swMsInstStartWin[1]  = 10;
    
        swMsPrm[1].numSwMsInst = 1;
        swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
    
        swMsPrm[1].swMsInstStartWin[0]  = 0;
        swMsPrm[1].swMsInstStartWin[1]  = 10;
    
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableProcessTieWithDisplay = FALSE;
    
        /* We do not require dual output, this free up SC3 scalar */
        swMsPrm[0].includeVipScInDrvPath = FALSE;
        swMsPrm[1].includeVipScInDrvPath = FALSE;
    #else
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
        swMsPrm[0].swMsInstId[1]        = SYSTEM_SW_MS_SC_INST_VIP1_SC;
    
        swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
        swMsPrm[1].swMsInstId[1]        = SYSTEM_SW_MS_SC_INST_VIP0_SC;
    
        swMsPrm[0].numSwMsInst          = 2;
    
        swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].swMsInstStartWin[1]  = 16;
    
        swMsPrm[1].numSwMsInst          = swMsPrm[0].numSwMsInst;
        swMsPrm[1].swMsInstStartWin[0]  = swMsPrm[0].swMsInstStartWin[0];
        swMsPrm[1].swMsInstStartWin[1]  = swMsPrm[0].swMsInstStartWin[1];
    
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableProcessTieWithDisplay = TRUE;
    
    #endif
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
        {
            VDIS_DEV vdDevId = VDIS_DEV_HDMI;
    
            swMsPrm[i].inQueParams.prevLinkId     = gMultiCh_VdecVdisObj.dupId;
            swMsPrm[i].inQueParams.prevLinkQueId  = i;
            swMsPrm[i].outQueParams.nextLink      = gVdisModuleContext.displayId[i];
            swMsPrm[i].numOutBuf                 = MULTICH_NUM_SWMS_MAX_BUFFERS;
    
            /* Disable inQue drop at SwMs as input may arrive very fast in VDEC->VDIS use case */
            swMsPrm[i].maxInputQueLen             = SYSTEM_SW_MS_INVALID_INPUT_QUE_LEN;
            if (i == 0)
            {
                vdDevId = VDIS_DEV_HDMI;
                swMsPrm[i].maxOutRes              = VSYS_STD_1080P_60;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_HDMI].resolution;
            }
            else if (i == 1)
            {
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
                vdDevId = VDIS_DEV_SD;
                swMsPrm[i].maxOutRes              = VSYS_STD_PAL;
                swMsPrm[i].outQueParams.nextLink  = SYSTEM_LINK_ID_DISPLAY_2;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;
    
    #else
                vdDevId = VDIS_DEV_DVO2;
                swMsPrm[i].maxOutRes              = VSYS_STD_1080P_60;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_DVO2].resolution;
    #endif
            }
            /* low cost line skip mode of scaling can be used, when tiler is off */
            if(tilerEnable)
                swMsPrm[i].lineSkipMode           = FALSE;
            else
                swMsPrm[i].lineSkipMode           = TRUE;
    
            swMsPrm[i].enableLayoutGridDraw = gVdisModuleContext.vdisConfig.enableLayoutGridDraw;
    
            MultiCh_swMsGetDefaultLayoutPrm(vdDevId, &swMsPrm[i], FALSE);    /* both from 0-16 chnl */
    
            displayPrm[i].inQueParams[0].prevLinkId    = gVdisModuleContext.swMsId[i];
            displayPrm[i].inQueParams[0].prevLinkQueId = 0;
            displayPrm[i].displayRes                = swMsPrm[i].initOutRes;
            if (i == 1)
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
                            displayPrm[i].displayRes            = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;
    #else
                            displayPrm[i].displayRes            = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_DVO2].resolution;
    #endif
            mulich_vdec_vdis_set_avsync_prm(&gMultiCh_VdecVdisObj.avsyncCfg[i],i,vdDevId);
        }
    
        dupSnapshotPrm.outQueParams[1].nextLink = gMultiCh_VdecVdisObj.snapshotmpSclrId;
        IpcFramesOutLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm);
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.snapshotmpSclrId;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inputFrameRate  = 30;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.outputFrameRate = 3;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.noNotifyMode    = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.notifyNextLink  = FALSE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.notifyPrevLink  = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.ipcFramesInVideoId;
    
        IpcFramesInLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcFramesInVideoPrm);
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcFramesOutVpssId;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.noNotifyMode = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.notifyPrevLink = FALSE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.notifyNextLink = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.encId;
    
        EncLink_CreateParams_Init(&gMultiCh_VdecVdisObj.encPrm);
    	gMultiCh_VdecVdisObj.encPrm.numBufPerCh[0] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[1] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[2] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[3] = 6;
        gMultiCh_VdecVdisObj.encPrm.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.ipcFramesInVideoId;
        gMultiCh_VdecVdisObj.encPrm.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.encPrm.outQueParams.nextLink     = gMultiCh_VdecVdisObj.ipcBitsOutVideoId;
        mulich_vdec_vdis_set_mjpeg_enc_ch_params(&gMultiCh_VdecVdisObj.encPrm, 0, ipcBitsOutHostPrm.inQueInfo.numCh);
    
        IpcBitsOutLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm);
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.encId;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.numOutQue                 = 1;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink  = gMultiCh_VdecVdisObj.ipcBitsInHostId;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.notifyPrevLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.notifyNextLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.noNotifyMode   = FALSE;
    
    
        IpcBitsInLinkHLOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcBitsInHostPrm);
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcBitsOutVideoId;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.numOutQue = 0;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.outQueParams[0].nextLink = SYSTEM_LINK_ID_INVALID;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.notifyPrevLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.notifyNextLink = FALSE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.noNotifyMode   = FALSE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.cbFxn = gVencModuleContext.callbackFxn.newDataAvailableCb; // register the encode callback function for snapshot
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.cbCtx = gVencModuleContext.callbackArg;                    // register the encode callback context for snapshot
        System_linkCreate(gVdecModuleContext.ipcBitsOutHLOSId,&ipcBitsOutHostPrm,sizeof(ipcBitsOutHostPrm));
        System_linkCreate(gVdecModuleContext.ipcBitsInRTOSId,&ipcBitsInVideoPrm,sizeof(ipcBitsInVideoPrm));
        System_linkCreate(gVdecModuleContext.decId, &decPrm, sizeof(decPrm));
    
        System_linkCreate(gMultiCh_VdecVdisObj.ipcOutVideoId, &ipcOutVideoPrm, sizeof(ipcOutVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcInVpssId  , &ipcInVpssPrm, sizeof(ipcInVpssPrm));
    
        System_linkCreate(gMultiCh_VdecVdisObj.decSnapshotDup,&dupSnapshotPrm,sizeof(dupSnapshotPrm));
        if (enableVideoFrameExport)
        {
            System_linkCreate(gVdisModuleContext.ipcFramesOutHostId     , &ipcFramesOutHostPrm    , sizeof(ipcFramesOutHostPrm));
            System_linkCreate(gVdisModuleContext.ipcFramesInVpssFromHostId     , &ipcFramesInVpssFromHostPrm    , sizeof(ipcFramesInVpssFromHostPrm));
            System_linkCreate(gMultiCh_VdecVdisObj.mergeId,&mergePrm,sizeof(mergePrm));
        }
    
        System_linkCreate(gMultiCh_VdecVdisObj.mpSclrId, &mpSclrPrm, sizeof(mpSclrPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.dupId     , &dupPrm    , sizeof(dupPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.decSnapshotDup, &dupSnapshotPrm    , sizeof(dupSnapshotPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.snapshotmpSclrId, &mpSclrSnapshotPrm, sizeof(mpSclrSnapshotPrm));
    
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
            System_linkCreate(gVdisModuleContext.swMsId[i]  , &swMsPrm[i], sizeof(swMsPrm[i]));
    
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
            System_linkCreate(gVdisModuleContext.displayId[i], &displayPrm[i], sizeof(displayPrm[i]));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcFramesOutVpssId, &gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm, sizeof(gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcFramesInVideoId, &gMultiCh_VdecVdisObj.ipcFramesInVideoPrm, sizeof(gMultiCh_VdecVdisObj.ipcFramesInVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.encId, &gMultiCh_VdecVdisObj.encPrm, sizeof(gMultiCh_VdecVdisObj.encPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcBitsOutVideoId, &gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm, sizeof(gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcBitsInHostId, &gMultiCh_VdecVdisObj.ipcBitsInHostPrm, sizeof(gMultiCh_VdecVdisObj.ipcBitsInHostPrm));
    
        MultiCh_memPrintHeapStatus();
        gMultiCh_VdecVdisObj.enableVideoFrameExport = enableVideoFrameExport;
        {
            MultiCh_setDec2DispMap(VDIS_DEV_HDMI,gVdecModuleContext.vdecConfig.numChn,0,0);
            #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            MultiCh_setDec2DispMap(VDIS_DEV_SD,gVdecModuleContext.vdecConfig.numChn,0,0);
            #else
            MultiCh_setDec2DispMap(VDIS_DEV_HDCOMP,gVdecModuleContext.vdecConfig.numChn,0,0);
            #endif
       }
    
    }
    
    Void MultiCh_deleteVdecVdis()
    {
        Bool tilerEnable;
    
        tilerEnable  = FALSE;
    
        /* delete can be done in any order */
        Vdec_delete();
        Vdis_delete();
    
        if (gMultiCh_VdecVdisObj.enableVideoFrameExport)
        {
            System_linkDelete(gMultiCh_VdecVdisObj.mergeId);
        }
    
        System_linkDelete(gMultiCh_VdecVdisObj.mpSclrId);
        System_linkDelete(gMultiCh_VdecVdisObj.dupId);
        System_linkDelete(gMultiCh_VdecVdisObj.ipcOutVideoId );
        System_linkDelete(gMultiCh_VdecVdisObj.ipcInVpssId );
    
        System_linkDelete(gMultiCh_VdecVdisObj.decSnapshotDup);
        System_linkDelete(gMultiCh_VdecVdisObj.snapshotmpSclrId);
    
        /* Print the HWI, SWI and all tasks load */
        /* Reset the accumulated timer ticks */
        MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE);
    
    
        if (tilerEnable == FALSE)
        {
            /* Disable tiler allocator for this usecase
             * for that tiler memory can be reused for
             * non-tiled allocation
             */
            SystemTiler_enableAllocator();
        }
        else
        {
            SystemTiler_BucketGeometry_t bucketRes;
    
            bucketRes.minResolution = SYSTEM_TILER_RESOLUTION_CIF;
            bucketRes.setSingleBucketGeometry = TRUE;
            SystemTiler_setBucketGeometry(&bucketRes);
        }
    
    }
    

    root@dm816x:/opt/dvr_rdk/ti816x# ./run_gui.sh 
    net.core.rmem_max = 8738000
    net.ipv4.tcp_rmem = 8192 873800 8738000
    vm.min_free_kbytes = 65536
    *** Bootargs Validated for mem param ***
    *** Bootargs Validated for notifyk.vpssm3 params ***
    *** Kernel Base address validated ***
    Kernel bootargs validated
    numid=101,iface=MIXER,name='Left DAC Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=3
      ; Item #0 'DAC_L1'
      ; Item #1 'DAC_L3'
      ; Item #2 'DAC_L2'
      : values=2
    numid=99,iface=MIXER,name='Right DAC Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=3
      ; Item #0 'DAC_R1'
      ; Item #1 'DAC_R3'
      ; Item #2 'DAC_R2'
      : values=2
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
    SysLink version : 2.20.02.20
    SysLink module created on Date:Jan 24 2014 Time:14:30:51
    Trace enabled
    Trace SetFailureReason enabled
     Setting DMM priority for [DUCATI  ] to [0] ( 0x4e000624 = 0x08000000 )
     Setting DMM priority for [HDVICP0 ] to [2] ( 0x4e000634 = 0x0000000a )
     Setting DMM priority for [HDVICP1 ] to [2] ( 0x4e000634 = 0x000a0000 )
     Setting DMM priority for [HDVICP2 ] to [2] ( 0x4e000634 = 0x00a00000 )
     
     *** TVP5158 probe : START ***
     
     TI VS EVM : TVP5158 device address : 0x58, 0x5a, 0x5c, 0x5e
     TI DVR    : TVP5158 device address : 0x5c, 0x5d, 0x5e, 0x5f
     
     Device found     : I2C (0xXX): 0x08 = 0x51
                        I2C (0xXX): 0x09 = 0x58
     
     Device NOT found : I2C (0xXX): Read ERROR !!! (reg[0x08], count = 2)
     
     I2C (0x58): 0x08 = 0xff 
     I2C (0x58): 0x09 = 0xff 
     I2C (0x5a): 0x08 = 0xff 
     I2C (0x5a): 0x09 = 0xff 
     I2C (0x5c): 0x08 = 0xff 
     I2C (0x5c): 0x09 = 0xff 
     I2C (0x5d): 0x08 = 0xff 
     I2C (0x5d): 0x09 = 0xff 
     I2C (0x5e): Read ERROR !!! (reg[0x08], count = 2)
     I2C (0x5f): Read ERROR !!! (reg[0x08], count = 2)
     
     *** TVP5158 probe : END ***
     
    /opt/dvr_rdk/ti816x
    Attached to slave procId 2.
    Loaded file ../firmware/dvr_rdk_fw_m3vpss_2048M_512M.xem3 on slave procId 2.
    Started slave procId 2.
    After Ipc_loadcallback status [0x00000000]
     [m3vpss ] ***** VPSS Firmware build time 16:05:39 Feb 17 2014  EDG gcc 3.0 mode
     [m3vpss ] ***** SYSTEM  : Frequency <ORG> - 250000000, <NEW> - 274909088
     [m3vpss ] notify_attach  rtnVal  0
     [m3vpss ] initProxyServer  rtnVal  0
     [m3vpss ]  
     [m3vpss ]  *** UTILS: CPU KHz = 549818 Khz ***
     [m3vpss ]  
     [m3vpss ]  35: SYSTEM  : System Common Init in progress !!!
     [m3vpss ]  35: SYSTEM: IPC init in progress !!!
     [m3vpss ]  35: SYSTEM: Attaching to [HOST] ... 
     [m3vpss ]  37: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
    After Ipc_startcallback status [0x00000000]
    Attached to slave procId 1.
    DMA: Module install successful, device major num = 250 
    DRV: Module install successful
    DRV: Module built on Jan 24 2014 14:31:37 
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
    Attached to slave procId 0.
    Loaded file ../firmware/dvr_rdk_fw_m3video_2048M_512M.xem3 on slave procId 1.
    Started slave procId 1.
    After Ipc_loadcallback status [0x00000000]
     [m3video] ***** VIDEO Firmware build time 16:05:55 Feb 17 2014  EDG gcc 3.0 mode
     [m3video] ***** SYSTEM  : Frequency <ORG> - 250000000, <NEW> - 274909088
     [m3video]  
     [m3video]  *** UTILS: CPU KHz = 549818 Khz ***
     [m3video]  
     [m3video]  717: SYSTEM  : System Common Init in progress !!!
     [m3video]  717: SYSTEM: IPC init in progress !!!
     [m3video]  717: SYSTEM: Attaching to [HOST] ... 
     [m3video]  720: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
    Loaded file ../firmware/dvr_rdk_fw_c6xdsp_2048M_512M.xe674 on slave procId 0.
    Started slave procId 0.
    After Ipc_loadcallback status [0x00000000]
     [c6xdsp ] ***** VIDEO Firmware build time 16:05:24 Feb 17 2014  EDG gcc 3.0 mode
     [c6xdsp ] ***** SYSTEM  : Frequency <ORG> - 800000000, <NEW> - 1000000000
     [c6xdsp ]  
     [c6xdsp ]  *** UTILS: CPU KHz = 1000000 Khz ***
     [c6xdsp ]  
     [c6xdsp ]  5: SYSTEM  : System Common Init in progress !!!
     [c6xdsp ]  5: SYSTEM: IPC init in progress !!!
     [c6xdsp ]  5: SYSTEM: Attaching to [HOST] ... 
     [c6xdsp ]  8: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
    After Ipc_startcallback status [0x00000000]
    After Ipc_startcallback status [0x00000000]
     [c6xdsp ]  10: SYSTEM: Attaching to [VIDEO-M3] ... SUCCESS !!!
     [m3video]  735: SYSTEM: Attaching to [DSP] ... SUCCESS !!!
     [m3vpss ]  736: SYSTEM: Attaching to [DSP] ... SUCCESS !!!
     [c6xdsp ]  12: SYSTEM: Attaching to [VPSS-M3] ... SUCCESS !!!
     [m3video]  739: SYSTEM: Attaching to [VPSS-M3] ... SUCCESS !!!
     [m3vpss ]  739: SYSTEM: Attaching to [VIDEO-M3] ... SUCCESS !!!
     [c6xdsp ]  12: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_0] ...
     [m3video]  739: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_1] ...
     [m3vpss ]  739: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_2] ...
     [c6xdsp ]  12: SYSTEM: Creating MsgQ [DSP_MSGQ] ...
     [m3video]  739: SYSTEM: Creating MsgQ [VIDEO-M3_MSGQ] ...
     [m3vpss ]  739: SYSTEM: Creating MsgQ [VPSS-M3_MSGQ] ...
     [c6xdsp ]  12: SYSTEM: Creating MsgQ [DSP_ACK_MSGQ] ...
     [m3video]  739: SYSTEM: Creating MsgQ [VIDEO-M3_ACK_MSGQ] ...
     [m3vpss ]  739: SYSTEM: Creating MsgQ [VPSS-M3_ACK_MSGQ] ...
     [c6xdsp ]  12: SYSTEM: Notify register to [HOST] line 0, event 15 ... 
     [m3video]  741: SYSTEM: Notify register to [HOST] line 0, event 15 ... 
     [m3vpss ]  741: SYSTEM: Notify register to [HOST] line 0, event 15 ... 
     [c6xdsp ]  12: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     [m3video]  741: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     [m3vpss ]  741: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     [c6xdsp ]  12: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     [m3video]  741: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     [m3vpss ]  741: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     [c6xdsp ]  13: SYSTEM: IPC init DONE !!!
     [m3video]  741: SYSTEM: IPC init DONE !!!
     [m3vpss ]  741: SYSTEM: IPC init DONE !!!
     [c6xdsp ]  15: MEM: Shared Region 2: Base = 0x96000000, Length = 0x28000000 (640 MB) 
     [c6xdsp ]  15: MEM: Shared Region 1: Base = 0x80000000, Length = 0x11600000 (278 MB) 
     [c6xdsp ]  15: SYSTEM  : System Common Init Done !!!
     [c6xdsp ]  10: SYSTEM  : System DSP Init in progress !!!
     [c6xdsp ]  10: SYSTEM  : RpeServer_init() done... Ret Val 0!!!
     [c6xdsp ]  18: SYSTEM: Creating ListMP [DSP_IPC_OUT_19] in region 0 ...
     [c6xdsp ]  18: SYSTEM: Creating ListMP [DSP_IPC_IN_19] in region 0 ...
     [c6xdsp ]  18: SYSTEM: ListElem Shared Addr = 0xbe1b3e00
     [c6xdsp ]  18: SYSTEM: Creating ListMP [DSP_IPC_OUT_20] in region 0 ...
     [c6xdsp ]  18: SYSTEM: Creating ListMP [DSP_IPC_IN_20] in region 0 ...
     [c6xdsp ]  18: SYSTEM: ListElem Shared Addr = 0xbe1d9600
     [c6xdsp ]  19: SYSTEM: Creating ListMP [DSP_IPC_OUT_21] in region 0 ...
     [c6xdsp ]  19: SYSTEM: Creating ListMP [DSP_IPC_IN_21] in region 0 ...
     [c6xdsp ]  19: SYSTEM: ListElem Shared Addr = 0xbe1fee00
     [c6xdsp ]  20: SYSTEM: Creating ListMP [DSP_IPC_OUT_24] in region 0 ...
     [m3video]  747: MEM: Shared Region 2: Base = 0x96000000, Length = 0x28000000 (640 MB) 
     [m3vpss ]  747: MEM: Shared Region 2: Base = 0x96000000, Length = 0x28000000 (640 MB) 
     [c6xdsp ]  20: SYSTEM: Creating ListMP [DSP_IPC_IN_24] in region 0 ...
     [m3video]  747: MEM: Shared Region 1: Base = 0x80000000, Length = 0x11600000 (278 MB) 
     [m3vpss ]  747: MEM: Shared Region 1: Base = 0x80000000, Length = 0x11600000 (278 MB) 
     [c6xdsp ]  20: SYSTEM: ListElem Shared Addr = 0xbe224600
     [m3video]  749: SYSTEM  : System Common Init Done !!!
     [m3vpss ]  749: SYSTEM  : System Common Init Done !!!
     [c6xdsp ]  20: SYSTEM: Creating ListMP [DSP_IPC_OUT_25] in region 0 ...
     [m3video]  749: SYSTEM  : System Video Init in progress !!!
     [m3vpss ]  749: SYSTEM  : System VPSS Init in progress !!!
     [c6xdsp ]  20: SYSTEM: Creating ListMP [DSP_IPC_IN_25] in region 0 ...
     [m3video]  749: SYSTEM  : System Video Init Done !!!
     [m3vpss ]  749: SYSTEM: All VPDMA Free !!! 
     [c6xdsp ]  20: SYSTEM: ListElem Shared Addr = 0xbe243080
     [m3video]  750: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_0] in region 0 ...
     [m3vpss ] === HDVPSS Clocks are enabled ===
     [c6xdsp ] !!WARNING.Resource already registered:2
     [c6xdsp ]  15: SYSTEM  : Initializing Links !!! 
     [m3video]  750: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_0] in region 0 ...
     [m3vpss ] === HDVPSS is fully functional ===
     [m3video]  750: SYSTEM: ListElem Shared Addr = 0xbe261b00
     [m3vpss ] === HDVPSS module is not in standby ===
     [c6xdsp ]  21: SYSTEM  : FREE SPACE : System Heap      = 10342016 B, Mbx = 10240 msgs) 
     [m3video]  752: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_1] in region 0 ...
     [m3vpss ] === I2C1 Clk is active ===
     [m3video]  752: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_1] in region 0 ...
     [m3vpss ]  758: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_0] in region 0 ...
     [c6xdsp ]  24: SYSTEM  : Initializing Links ... DONE !!! 
     [m3video]  753: SYSTEM: ListElem Shared Addr = 0xbe265000
     [m3vpss ]  758: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_0] in region 0 ...
     [m3video]  758: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_19] in region 0 ...
     [m3vpss ]  758: SYSTEM: ListElem Shared Addr = 0xbe268500
     [c6xdsp ]  ETH_OFFLOAD: Init !!!
     [m3video]  759: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_19] in region 0 ...
     [m3vpss ]  760: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_1] in region 0 ...
     [c6xdsp ]  25: SYSTEM  : System DSP Init Done !!!
     [m3video]  759: SYSTEM: ListElem Shared Addr = 0xbe26ba00
     [m3vpss ]  761: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_1] in region 0 ...
     [m3video]  761: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_20] in region 0 ...
     [m3vpss ]  761: SYSTEM: ListElem Shared Addr = 0xbe291200
     [m3video]  761: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_20] in region 0 ...
     [m3vpss ]  775: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_19] in region 0 ...
     [m3video]  762: SYSTEM: ListElem Shared Addr = 0xbe294700
     [m3vpss ]  775: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_19] in region 0 ...
     [m3video]  764: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_21] in region 0 ...
     [m3vpss ]  775: SYSTEM: ListElem Shared Addr = 0xbe2df700
     [m3video]  764: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_21] in region 0 ...
     [m3vpss ]  777: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_20] in region 0 ...
     [m3video]  764: SYSTEM: ListElem Shared Addr = 0xbe2b9f00
     [m3vpss ]  778: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_20] in region 0 ...
     [m3video]  778: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_24] in region 0 ...
     [m3vpss ]  778: SYSTEM: ListElem Shared Addr = 0xbe305480
     [m3video]  778: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_24] in region 0 ...
     [m3vpss ] Received character 's'
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
     [m3video] Received character 's'
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
     [c6xdsp ] Received character 's'
     [m3vpss ]  780: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_21] in region 0 ...
     [m3video]  778: SYSTEM: ListElem Shared Addr = 0xbe32a700
     [m3vpss ]  781: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_21] in region 0 ...
     [m3video]  780: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_25] in region 0 ...
     [m3vpss ]  781: SYSTEM: ListElem Shared Addr = 0xbe367c00
     [m3video]  781: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_25] in region 0 ...
    /opt/dvr_rdk/ti816x
     [m3vpss ]  782: SYSTEM : HDVPSS Drivers Version: HDVPSS_01_00_01_37
     [m3video]  781: SYSTEM: ListElem Shared Addr = 0xbe349700
     [m3vps[module] vpss probe done.
    s ]  783: SYSTEM  : FVID2 Init in progress !!!
     [m3video]  782: HDVICP: Doing PRCM for IVAHD[0] ... 
     [m3video]  783: HDVICP: PRCM for IVAHD[0] ... DONE.
     [m3video]  783: HDVICP: Doing PRCM for IVAHD[1] ... 
     [m3video]  783: HDVICP: PRCM for IVAHD[1] ... DONE.
     [m3video]  783: HDVICP: Doing PRCM fo[module] ti81xxfb probe done.
    r IVAHD[2] ... 
     [m3vpss ] TILER_STATS: CNT :8BIT
     [m3video]  783: HDVICP: PRCM for IVAHD[2] ... DONE.
     [m3video]  783: SYSTEM  : Initializing Links !!! 
     [m3vpss ] TILER_STATS: CNT RESOLUHDMI W1 rev 2.0
    TION:    16384 xHDMI CEC Spec version 1.2
     8192
     [m3video]  783: SYSTEM  : FREE SPACE : System Heap      = 6279304 B, Mbx = 10240 msgs) 
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 16384 x 8188
     [m3video]  784: SYSTEM  : FREE SPACE : SR0 Heap         = 20394496 B (19 MB) 
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3video]  784: SYSTEM  : FREE SPACE : Frame Buffer     = 671088512 B (639 MB) 
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3video]  784: SYSTEM  : FREE SPACE : Bitstream Buffer = 291504000 B (277 MB) 
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134152192 (99 %)
     [m3video]  784: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3video]  786: SYSTEM  : FREE SPACE : Tiler 8-bit      = 134152192 B (127 MB)  - TILER ON 
     [m3video]  786: SYSTEM  : FREE SPACE : Tiler 16-bit     = 134217728 B (128 MB)  - TILER ON 
     [m3video]  821: SYSTEM  : Initializing Links ... DONE !!! 
     [m3vpss ] TILER_STATS: CNT :16BIT
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    32768 x 4096
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 32768 x 4096
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134217728 (100 %)
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3vpss ]  853: SYSTEM  : FVID2 Init in progress DONE !!!
     [m3vpss ]  853: SYSTEM  : Device Init in progress !!!
     [m3vpss ]  856: SYSTEM  : Device Init in progress DONE !!!
     [m3vpss ]  896: SYSTEM  : System VPSS Init Done !!!
     [m3vpss ]  897: UTILS: DMA: HWI Create for INT63 !!!
     [m3vpss ]  897: SYSTEM  : Initializing Links !!! 
     [m3vpss ]  897: SYSTEM  : FREE SPACE : System Heap      = 74056 B, Mbx = 10240 msgs) 
     [m3vpss ]  898: SYSTEM  : FREE SPACE : SR0 Heap         = 20394496 B (19 MB) 
     [m3vpss ]  898: SYSTEM  : FREE SPACE : Frame Buffer     = 666778496 B (635 MB) 
     [m3vpss ]  898: SYSTEM  : FREE SPACE : Bitstream Buffer = 291504000 B (277 MB) 
     [m3vpss ] TILER_STATS: CNT :8BIT
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    16384 x 8192
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 16384 x 8188
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134152192 (99 %)
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
    I2C No Ack
    
    HDMI failed to read E-EDID
     [m3vpss ] TILER_STATS: CNT :16BIT
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    32768 x 4096
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 32768 x 4096
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134217728 (100 %)
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3vpss ]  899: SYSTEM  : FREE SPACE : Tiler 8-bit      = 134152192 B (127 MB)  - TILER ON 
     [m3vpss ]  899: SYSTEM  : FREE SPACE : Tiler 16-bit     = 134217728 B (128 MB)  - TILER ON 
     [m3vpss ]  1016: SYSTEM  : Initializing Links ... DONE !!! 
     [m3vpss ]  1016: SYSTEM  : Set Static L3 pressure for HDVPSS as High
     
     ORG 0x46c00524: 0
     NEW 0x46c00524: 2
     
     [ETH OFFLOAD] Shared memory address = 0x40300000, size =0x0000f400 !!!
     [ETH OFFLOAD] GRO is ENABLED !!!
     [ETH OFFLOAD] EMAC-1 is ENABLED !!!
     [ETH_OFFLOAD] RX CSUM is ENABLED !!!
     [c6xdsp ]  [ETH_OFFLOAD] OPENED !!!
     [c6xdsp ] EMAC_start returned 0
    /opt/dvr_rdk/ti816x
     Setting DMM priority for [A8      ] to [0] ( 0x4e000620 = 0x00000008 )
    gVIDEOMOTION_ctrl.bufSize = 21120
    gVIDEOMOTION_ctrl.bufNum  = 16
    app_pb: app_playback_init ... success
    lib_dvr_app.c DVR_StartSystem 988 
     0: SYSTEM: System Common Init in progress !!!
     1: SYSTEM: IPC init in progress !!!
     19: SYSTEM: CPU [DSP] syslink proc ID is [0] !!!
     19: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [1] !!!
     19: SYSTEM: CPU [VPSS-M3] syslink proc ID is [2] !!!
     19: SYSTEM: CPU [HOST] syslink proc ID is [3] !!!
     20: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_3] ...
     24: SYSTEM: Creating MsgQ [HOST_MSGQ] ...
     25: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ...
     27: SYSTEM: Opening MsgQ [DSP_MSGQ] ...
     30: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
     31: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     32: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     32: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     33: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     34: SYSTEM: IPC init DONE !!!
     36: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ...
     38: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ...
     40: SYSTEM: ListElem Shared Addr = 0x5dba6700
     41: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ...
     43: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ...
     44: SYSTEM: ListElem Shared Addr = 0x5dbdd500
     46: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 ...
     48: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 ...
     50: SYSTEM: ListElem Shared Addr = 0x5dc14300
     51: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 ...
     53: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 ...
     54: SYSTEM: ListElem Shared Addr = 0x5dc57600
     55: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 ...
     58: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 ...
     59: SYSTEM: ListElem Shared Addr = 0x5dc9a900
     76: SYSTEM: System Common Init Done !!!
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    vdMosaicParam->numberOfWindows =16 startChId 0 maxChns 32 
    vdMosaicParam->numberOfWindows =16 startChId 16 maxChns 32 
     [host] HDMI Ctrl :Initializing
    [HOST] 
    ThreadName:Vdis_hdmiControlThread_0,ThreadID:850
     [host] HDMI Ctrl :Initialized
    ==========yhao image===================yhao image11=========
     [host] APP_WRITER:WRITER_recordFxn:Entered...=====Going to Vsys_create=========
     141: MCFW  : CPU Revision [ES2.0] !!! 
    ----------------endChNum=12
    [HOST] 
    ThreadName:IpcBitsOutLink_tskMain_30000018,ThreadID:840
    
     [host]  143: IPC_BITS_OUT   : Create in progress !!!
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:0,Size:0x9E3400
     [host] 
    ******* RingBuf 0 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x5ef4f080 To Phy:0x80000080
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 5EF4F080 / PhyAddr 80000080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:1,Size:0x9E3400
     [host] 
    ******* RingBuf 1 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x5f932480 To Phy:0x809e3480
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 5F932480 / PhyAddr 809E3480
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:2,Size:0x9E3400
     [host] 
    ******* RingBuf 2 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x60315880 To Phy:0x813c6880
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 60315880 / PhyAddr 813C6880
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:3,Size:0x9E3400
     [host] 
    ******* RingBuf 3 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x60cf8c80 To Phy:0x81da9c80
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 60CF8C80 / PhyAddr 81DA9C80
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:4,Size:0x9E3400
     [host] 
    ******* RingBuf 4 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x616dc080 To Phy:0x8278d080
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 616DC080 / PhyAddr 8278D080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:5,Size:0x9E3400
     [host] 
    ******* RingBuf 5 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x620bf480 To Phy:0x83170480
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 620BF480 / PhyAddr 83170480
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:6,Size:0x9E3400
     [host] 
    ******* RingBuf 6 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x62aa2880 To Phy:0x83b53880
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 62AA2880 / PhyAddr 83B53880
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:7,Size:0x9E3400
     [host] 
    ******* RingBuf 7 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x63485c80 To Phy:0x84536c80
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 63485C80 / PhyAddr 84536C80
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:8,Size:0x9E3400
     [host] 
    ******* RingBuf 8 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x63e69080 To Phy:0x84f1a080
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 63E69080 / PhyAddr 84F1A080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:9,Size:0x9E3400
     [host] 
    ******* RingBuf 9 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6484c480 To Phy:0x858fd480
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6484C480 / PhyAddr 858FD480
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:10,Size:0x9E3400
     [host] 
    ******* RingBuf 10 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6522f880 To Phy:0x862e0880
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6522F880 / PhyAddr 862E0880
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:11,Size:0x9E3400
     [host] 
    ******* RingBuf 11 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x65c12c80 To Phy:0x86cc3c80
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 65C12C80 / PhyAddr 86CC3C80
    
     [host]  481: IPC_BITS_OUT   : Create Done !!!
    [HOST] 
    ThreadName:IpcBitsOutLink_periodicTaskFxn_30000018,ThreadID:856
     [m3vpss ] WARNING!!.Tiler Memory cannot be accessed by M3 in 2G build.Will not disable
     [m3video]  5044: IPC_BITS_IN   : Create in progress !!!
     [m3video]  5044: SYSTEM: Opening ListMP [HOST_IPC_OUT_24] ...
     [m3video]  5045: SYSTEM: Opening ListMP [HOST_IPC_IN_24] ...
     [m3video]  5045: SYSTEM: Opening MsgQ [HOST_MSGQ] ...
     [m3video]  5047: IPC_BITS_IN   : Create Done !!!
     [m3video]  5047: DECODE: Create in progress ... !!!
     [m3video] DECLINK_H264:HEAPID:0        USED:4264
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5174: DECODE: Creating CH0 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5299: DECODE: Creating CH1 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5424: DECODE: Creating CH2 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5549: DECODE: Creating CH3 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5674: DECODE: Creating CH4 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5800: DECODE: Creating CH5 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5925: DECODE: Creating CH6 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6050: DECODE: Creating CH7 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6175: DECODE: Creating CH8 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6300: DECODE: Creating CH9 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6426: DECODE: Creating CH10 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
    net eth1: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:02, id=1cc914, speed=100)
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6551: DECODE: Creating CH11 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3vpss ]  6558: IPC_IN_M3   : Create in progress !!!
     [m3video]  6552: DECODE: All CH Create ... DONE !!!
     [m3vpss ]  6558: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_0] ...
     [m3vpss ]  6558: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_0] ...
     [m3vpss ]  6559: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
     [m3video] DECLINK:HEAPID:0     USED:30432
     [m3video] DECLINK:HEAPID:3     USED:324009984
     [m3video]  6556: DECODE: Create ... DONE !!!
     [m3video]  6557: IPC_OUT_M3   : Create in progress !!!
     [m3video]  6557: IPC_OUT_M3   : Create Done !!!
     [m3vpss ]  6560: IPC_IN_M3   : Create Done !!!
     [m3vpss ]  6564: DUP:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6564: DUP:  1: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6564: DUP:  2: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6564: DUP:  3: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6564: DUP:  4: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6564: DUP:  5: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6565: DUP:  6: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6565: DUP:  7: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6565: DUP:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6565: DUP:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6565: DUP: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6565: DUP: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6566: DUP   : Create Done !!!
     [m3vpss ]  6567: MP_SCLR: Create in progress !!!
     [m3vpss ]  6571: MP_SCLR: Configured to use scalar instance 4 !!! 
     [m3vpss ]  MP_SCLR: chID[0]Res[1776]
     [m3vpss ]  MP_SCLR: chID[1]Res[1776]
     [m3vpss ]  MP_SCLR: chID[2]Res[1776]
     [m3vpss ]  MP_SCLR: chID[3]Res[1776]
     [m3vpss ]  MP_SCLR: chID[4]Res[1776]
     [m3vpss ]  MP_SCLR: chID[5]Res[1776]
     [m3vpss ]  MP_SCLR: chID[6]Res[1776]
     [m3vpss ]  MP_SCLR: chID[7]Res[1776]
     [m3vpss ]  MP_SCLR: chID[8]Res[1776]
     [m3vpss ]  MP_SCLR: chID[9]Res[1776]
     [m3vpss ]  MP_SCLR: chID[10]Res[1776]
     [m3vpss ]  MP_SCLR: chID[11]Res[1776]
     [m3vpss ]  MP_SCLR: chID[12]Res[1776]
     [m3vpss ]  MP_SCLR: chID[13]Res[1776]
     [m3vpss ]  MP_SCLR: chID[14]Res[1776]
     [m3vpss ]  MP_SCLR: chID[15]Res[1776]
     [m3vpss ]  6574: MP_SCLR: Create Done !!!
     [m3vpss ]  6578: DUP:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6578: DUP:  1: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6578: DUP:  2: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6578: DUP:  3: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6578: DUP:  4: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6578: DUP:  5: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6578: DUP:  6: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6578: DUP:  7: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6578: DUP:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6578: DUP:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6579: DUP: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6579: DUP: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6580: DUP   : Create Done !!!
     [m3vpss ]  6580: MP_SCLR: Create in progress !!!
     [m3vpss ]  6584: MP_SCLR: Configured to use scalar instance 4 !!! 
     [m3vpss ]  MP_SCLR: chID[0]Res[1776]
     [m3vpss ]  MP_SCLR: chID[1]Res[1776]
     [m3vpss ]  MP_SCLR: chID[2]Res[1776]
     [m3vpss ]  MP_SCLR: chID[3]Res[1776]
     [m3vpss ]  MP_SCLR: chID[4]Res[1776]
     [m3vpss ]  MP_SCLR: chID[5]Res[1776]
     [m3vpss ]  MP_SCLR: chID[6]Res[1776]
     [m3vpss ]  MP_SCLR: chID[7]Res[1776]
     [m3vpss ]  MP_SCLR: chID[8]Res[1776]
     [m3vpss ]  MP_SCLR: chID[9]Res[1776]
     [m3vpss ]  MP_SCLR: chID[10]Res[1776]
     [m3vpss ]  MP_SCLR: chID[11]Res[1776]
     [m3vpss ]  MP_SCLR: chID[12]Res[1776]
     [m3vpss ]  MP_SCLR: chID[13]Res[1776]
     [m3vpss ]  MP_SCLR: chID[14]Res[1776]
     [m3vpss ]  MP_SCLR: chID[15]Res[1776]
     [m3vpss ]  6587: MP_SCLR: Create Done !!!
     [m3vpss ]  6588: SWMS: Create in progress !!!
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 58 (58)
     [m3vpss ]  UTILS: DMA: 0 of 1: Allocated PaRAM = 58 (0x49004740)
     [m3vpss ] SWMS: instance 0, sc id 7, start win 0 end win 15
     [m3vpss ] SWMS: instance 1, sc id 4, start win 16 end win 33
     [m3vpss ]  6728: SWMS    : VipScReq is FALSE!!!
     [m3vpss ]  6731: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  6731: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  6731: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  6735: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  6735: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  6735: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  6735: SWMS:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6736: SWMS:  1: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6736: SWMS:  2: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6736: SWMS:  3: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6736: SWMS:  4: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6736: SWMS:  5: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6736: SWMS:  6: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6736: SWMS:  7: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6736: SWMS:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6736: SWMS:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6736: SWMS: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6736: SWMS: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6737: SWMS    : ******* Configuring clock 45 secs... 
     [m3vpss ]  6737: SWMS0    : Loading Vertical Co-effs (7/16)x ... 
     [m3vpss ]  6737: SWMS0    : Loading Horizontal Co-effs (3/16)x ... 
     [m3vpss ]  6737: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  6737: SWMS0    : Loading Vertical Co-effs (7/16)x ... 
     [m3vpss ]  6737: SWMS0    : Loading Horizontal Co-effs (3/16)x ... 
     [m3vpss ]  6737: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ] SWMS:HEAPID:0        USED:288
     [m3vpss ] SWMS:HEAPID:1        USED:60832
     [m3vpss ] SWMS:HEAPID:4        USED:29030400
     [m3vpss ]  6737: SWMS: Create Done !!!
     [m3vpss ]  6738: SWMS: Create in progress !!!
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 59 (59)
     [m3vpss ]  UTILS: DMA: 0 of 1: Allocated PaRAM = 59 (0x49004760)
     [m3vpss ] SWMS: instance 0, sc id 6, start win 0 end win 15
     [m3vpss ] SWMS: instance 1, sc id 3, start win 16 end win 33
     [m3vpss ]  6877: SWMS    : VipScReq is FALSE!!!
     [m3vpss ]  6881: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  6881: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  6881: SWMS    : Co-effs Loading ... DONE !!!
     [m3video]  6892: IPC_FRAMES_IN   : Create in progress !!!
     [m3vpss ]  6885: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3video]  6893: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_20] ...
     [m3vpss ]  6885: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3video]  6893: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_20] ...
     [m3vpss ]  6885: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  6886: SWMS:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6886: SWMS:  1: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6886: SWMS:  2: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6886: SWMS:  3: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6886: SWMS:  4: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6886: SWMS:  5: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6886: SWMS:  6: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6886: SWMS:  7: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6887: SWMS:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6887: SWMS:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6887: SWMS: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6887: SWMS: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6887: SWMS    : ******* Configuring clock 30 secs... 
     [m3vpss ]  6887: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  6887: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  6887: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  6887: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
    
     [host] IpcBitsInLink_tskMain:Entered[HOST] 
    ThreadName:IpcBitsInLink_tskMain_3000001a,ThreadID:838
    
     [host]  2666: IPC_BITS_IN   : Create in progress !!!
    
     [host]  2666: IPC_BITS_IN   : ListMPOpen start !!!
    
     [host]  2666: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_24] ...
     [m3vpss ]  6887: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  6887: SWMS    : Co-effs Loading ... DONE !!!
     2668: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_24] ...
     [m3video] IPC_FRAMES_IN:HEAPID:0       USED:304
     [m3video]  6896: IPC_FRAMES_IN   : Create Done !!!
     [m3video]  6896: ENCODE: Create in progress ... !!!
    
     [host]  2669: IPC_BITS_IN   : ListMPOpen done !!!
     [m3vpss ] SWMS:HEAPID:0        USED:288
     [m3video] ENCLINK:INFO: !!!Number of output buffers for ch[0] set to [1]
     [m3video]  6957: ENCODE: Creating CH0 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ] SWMS:HEAPID:1        USED:66656
     [m3vpss ] SWMS:HEAPID:4        USED:29030400
     [m3vpss ]  6888: SWMS: Create Done !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  6888: DISPLAY: Create in progress !!!
     [m3video]  6957: ENCODE: Creating CH1 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  6889: DISPLAY: Create Done !!!
     [m3vpss ]  6889: DISPLAY: Create in progress !!!
     [m3vpss ]  6890: DISPLAY: Create Done !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
    
     [host]  2670: IPC_BITS_IN   : System_linkGetInfo done !!!
    
     [host]  2670: IPC_BITS_IN   : Create Done !!!
     [m3vpss ]  6890: IPC_FRAMES_OUT   : Create in progress !!!
     [m3video]  6958: ENCODE: Creating CH2 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  6892: IPC_FRAMES_OUT   : Create Done !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  7235: DISPLAY: Start in progress !!!
     [m3video]  6958: ENCODE: Creating CH3 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  6959: ENCODE: Creating CH4 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  7271: DISPLAY: Start Done !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  7271: DISPLAY: HDDAC(BP0) : 55 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) DropCount:0 DispLatency (Min / Max) = ( 7811 / 0 ) !!! 
     [m3video]  6960: ENCODE: Creating CH5 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  7271: DISPLAY DRV: HDDAC(BP0) : Q:[2] Display:[2], Repeat:[1], DQ:[0]
     [m3vpss ]  7271: DISPLAY: UNDERFLOW COUNT: HDMI(BP0) 1, HDDAC(BP0) 1, DVO2(BP1) 1, SDDAC(SEC1) 1 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  7271: SYSTEM  : FREE SPACE : System Heap      = 67240 B, Mbx = 10238 msgs) 
     [m3video]  6960: ENCODE: Creating CH6 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  7271: SYSTEM  : FREE SPACE : SR0 Heap         = 16805760 B (16 MB) 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  7271: SYSTEM  : FREE SPACE : Frame Buffer     = 284707712 B (271 MB) 
     [m3video]  6961: ENCODE: Creating CH7 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  7271: SYSTEM  : FREE SPACE : Bitstream Buffer = 154646400 B (147 MB) 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  7272: DISPLAY: Start in progress !!!
     [m3video]  6961: ENCODE: Creating CH8 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  6962: ENCODE: Creating CH9 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ] TILER_STATS: CNT :8BIT
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    16384 x 8192
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  6963: ENCODE: Creating CH10 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 16384 x 8188
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  6963: ENCODE: Creating CH11 of 1920 x 1080, pitch = (2048, 2048) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134152192 (99 %)
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  6964: ENCODE: All CH Create ... DONE !!!
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3video] ENCLINK:HEAPID:0     USED:24888
     [m3video] ENCLINK:HEAPID:2     USED:12441600
     [m3video]  6965: ENCODE: Create ... DONE !!!
     [m3video]  6966: IPC_BITS_OUT   : Create in progress !!!
     [m3vpss ] TILER_STATS: CNT :16BIT
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    32768 x 4096
     [m3video]  6968: IPC_BITS_OUT   : Create Done !!!
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 32768 x 4096
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134217728 (100 %)
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3vpss ]  7273: SYSTEM  : FREE SPACE : Tiler 8-bit      = 134152192 B (127 MB)  - TILER ON 
     [m3vpss ]  7273: SYSTEM  : FREE SPACE : Tiler 16-bit     = 134217728 B (128 MB)  - TILER ON 
     [m3vpss ]  7308: DISPLAY: Start Done !!!
     [m3vpss ]  7309: DISPLAY: DVO2(BP1)  : 54 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) DropCount:0 DispLatency (Min / Max) = ( 7811 / 0 ) !!! 
     [m3vpss ]  7309: SWMS: Start in Progress !!!
     [m3vpss ]  7309: SWMS: Start Done !!!
     [m3vpss ]  7309: DISPLAY DRV: DVO2(BP1)  : Q:[2] Display:[2], Repeat:[1], DQ:[0]
     [m3vpss ]  7309: SWMS: Start in Progress !!!
     [m3vpss ]  7309: SWMS: Start Done !!!
    
    Fix Screen Info:
    ----------------
    Line Length - 3840
    Physical Address = dea00000
    Buffer Length = 8294400
    
    Var Screen Info:
    ----------------
    Xres - 1920
    Yres - 1080
    Xres Virtual - 1920
    Yres Virtual - 1080
    Bits Per Pixel - 16
    Pixel Clk - 6734
    Rotation - 0
    buf_size - 4147200 Bytes
    
    Fix Screen Info:
    ----------------
    Line Length - 3840
    Physical Address = df1e9000
    Buffer Length = 8294400
    
    Var Screen Info:
    ----------------
    Xres - 1920
    Yres - 1080
    Xres Virtual - 1920
    Yres Virtual - 1080
    Bits Per Pixel - 16
    Pixel Clk - 6734
    Rotation - 0
    buf_size - 4147200 Bytes
    
     ===============Switch Display Done========================= 
    
     ===============Main Output Resolution Switch Done========== 
    
     ===============Sub Output Resolution Switch Done=========== 
    
    Close Channel: 0 
    
    IPCBITS Close Channel: 0 
    
     [host] 
    3581: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[0] [m3video] DEC : Delete CH0 Got the Dummy Object queued !!!
     [m3video]  8143: DECODE: CH0: Decoder flush needed (0)!!!
     [m3video]  8143: DECODE: CH0: Decoder Flushing !!!
     [m3video] DEC : Delete CH0, Dummy Object queued !!!
     [m3video] MemoryLeak:STAGE:0   HEAPNUM:0       ALLOC=4264      FREED=2368
    
     [host] 
    3593: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[0]
     [host] IPC_BITSOUT:BitBuffer Free.chID:0,Size:0x9E3400
     [host] ******* RingBuf 0 deleted ********
    
     [host] 
    3602: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[0].Total Time[21] [m3video] 8150: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[0]
     [m3video]  8151: DECODE: CH0: 
     [m3video] Queing flush Frame to processQ
     [m3video]  8151: DECODE: CH0: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  8151: DECODE: CH0: 
     [m3video] Freeing flush Frame
     [m3video] 8151: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[0]
    
    Close Channel: 1 
     [m3video] DEC : Delete CH1 Got the Dummy Object queued !!!
     [m3video]  8365: DECODE: CH1: Decoder flush needed (0)!!!
     [m3video]  8366: DECODE: CH1: Decoder Flushing !!!
     [m3video] DEC : Delete CH1, Dummy Object queued !!!
    
    IPCBITS Close Channel: 1 
    
     [host] 
    3803: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[1]
     [host] 
    3817: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[1]
     [host] IPC_BITSOUT:BitBuffer Free.chID:1,Size:0x9E3400
     [host] ******* RingBuf 1 deleted ********
    
     [host] 
    3826: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[1].Total Time[22] [m3video] 8374: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[1]
     [m3video]  8375: DECODE: CH1: 
     [m3video] Queing flush Frame to processQ
     [m3video]  8375: DECODE: CH1: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  8375: DECODE: CH1: 
     [m3video] Freeing flush Frame
     [m3video] 8376: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[1]
    
    Close Channel: 2 
    
    IPCBITS Close Channel: 2 
    
     [host] 
    4028: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[2] [m3video] DEC : Delete CH2 Got the Dummy Object queued !!!
     [m3video]  8589: DECODE: CH2: Decoder flush needed (0)!!!
     [m3video]  8590: DECODE: CH2: Decoder Flushing !!!
     [m3video] DEC : Delete CH2, Dummy Object queued !!!
    
     [host] 
    4041: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[2]
     [host] IPC_BITSOUT:BitBuffer Free.chID:2,Size:0x9E3400
     [host] ******* RingBuf 2 deleted ********
    
     [host] 
    4050: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[2].Total Time[22] [m3video] 8598: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[2]
     [m3video]  8599: DECODE: CH2: 
     [m3video] Queing flush Frame to processQ
     [m3video]  8599: DECODE: CH2: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  8599: DECODE: CH2: 
     [m3video] Freeing flush Frame
     [m3video] 8600: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[2]
    
    Close Channel: 3 
     [m3video] DEC : Delete CH3 Got the Dummy Object queued !!!
     [m3video]  8814: DECODE: CH3: Decoder flush needed (0)!!!
     [m3video]  8814: DECODE: CH3: Decoder Flushing !!!
     [m3video] DEC : Delete CH3, Dummy Object queued !!!
    
    IPCBITS Close Channel: 3 
    
     [host] 
    4252: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[3]
     [host] 
    4266: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[3]
     [host] IPC_BITSOUT:BitBuffer Free.chID:3,Size:0x9E3400
     [host] ******* RingBuf 3 deleted ********
    
     [host] 
    4274: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[3].Total Time[22] [m3video] 8822: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[3]
     [m3video]  8823: DECODE: CH3: 
     [m3video] Queing flush Frame to processQ
     [m3video]  8823: DECODE: CH3: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  8823: DECODE: CH3: 
     [m3video] Freeing flush Frame
     [m3video] 8824: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[3]
    
    Close Channel: 4 
     [m3video] DEC : Delete CH4 Got the Dummy Object queued !!!
     [m3video]  9038: DECODE: CH4: Decoder flush needed (0)!!!
     [m3video]  9038: DECODE: CH4: Decoder Flushing !!!
     [m3video] DEC : Delete CH4, Dummy Object queued !!!
    
    IPCBITS Close Channel: 4 
    
     [host] 
    4476: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[4]
     [host] 
    4490: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[4]
     [host] IPC_BITSOUT:BitBuffer Free.chID:4,Size:0x9E3400
     [host] ******* RingBuf 4 deleted ********
    
     [host] 
    4498: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[4].Total Time[22] [m3video] 9046: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[4]
     [m3video]  9047: DECODE: CH4: 
     [m3video] Queing flush Frame to processQ
     [m3video]  9047: DECODE: CH4: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  9047: DECODE: CH4: 
     [m3video] Freeing flush Frame
     [m3video] 9048: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[4]
    
    Close Channel: 5 
     [m3video] DEC : Delete CH5 Got the Dummy Object queued !!!
     [m3video]  9262: DECODE: CH5: Decoder flush needed (0)!!!
     [m3video]  9262: DECODE: CH5: Decoder Flushing !!!
     [m3video] DEC : Delete CH5, Dummy Object queued !!!
    
    IPCBITS Close Channel: 5 
    
     [host] 
    4700: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[5]
     [host] 
    4714: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[5]
     [host] IPC_BITSOUT:BitBuffer Free.chID:5,Size:0x9E3400
     [host] ******* RingBuf 5 deleted ********
    
     [host] 
    4722: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[5].Total Time[22] [m3video] 9270: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[5]
     [m3video]  9271: DECODE: CH5: 
     [m3video] Queing flush Frame to processQ
     [m3video]  9271: DECODE: CH5: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  9271: DECODE: CH5: 
     [m3video] Freeing flush Frame
     [m3video] 9272: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[5]
    
    Close Channel: 6 
     [m3video] DEC : Delete CH6 Got the Dummy Object queued !!!
     [m3video]  9486: DECODE: CH6: Decoder flush needed (0)!!!
     [m3video]  9486: DECODE: CH6: Decoder Flushing !!!
     [m3video] DEC : Delete CH6, Dummy Object queued !!!
    
    IPCBITS Close Channel: 6 
    
     [host] 
    4924: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[6]
     [host] 
    4938: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[6]
     [host] IPC_BITSOUT:BitBuffer Free.chID:6,Size:0x9E3400
     [host] ******* RingBuf 6 deleted ********
    
     [host] 
    4947: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[6].Total Time[23] [m3video] 9494: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[6]
     [m3video]  9495: DECODE: CH6: 
     [m3video] Queing flush Frame to processQ
     [m3video]  9495: DECODE: CH6: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  9495: DECODE: CH6: 
     [m3video] Freeing flush Frame
     [m3video] 9496: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[6]
    
    Close Channel: 7 
    
    IPCBITS Close Channel: 7 
    
     [host] 
    5148: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[7] [m3video] DEC : Delete CH7 Got the Dummy Object queued !!!
     [m3video]  9710: DECODE: CH7: Decoder flush needed (0)!!!
     [m3video]  9710: DECODE: CH7: Decoder Flushing !!!
     [m3video] DEC : Delete CH7, Dummy Object queued !!!
    
     [host] 
    5162: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[7]
     [host] IPC_BITSOUT:BitBuffer Free.chID:7,Size:0x9E3400
     [host] ******* RingBuf 7 deleted ********
    
     [host] 
    5171: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[7].Total Time[23] [m3video] 9718: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[7]
     [m3video]  9719: DECODE: CH7: 
     [m3video] Queing flush Frame to processQ
     [m3video]  9719: DECODE: CH7: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  9719: DECODE: CH7: 
     [m3video] Freeing flush Frame
     [m3video] 9719: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[7]
    
    Close Channel: 8 
     [m3video] DEC : Delete CH8 Got the Dummy Object queued !!!
     [m3video]  9934: DECODE: CH8: Decoder flush needed (0)!!!
     [m3video]  9934: DECODE: CH8: Decoder Flushing !!!
     [m3video] DEC : Delete CH8, Dummy Object queued !!!
    
    IPCBITS Close Channel: 8 
    
     [host] 
    5372: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[8]
     [host] 
    5386: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[8]
     [host] IPC_BITSOUT:BitBuffer Free.chID:8,Size:0x9E3400
     [host] ******* RingBuf 8 deleted ********
    
     [host] 
    5395: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[8].Total Time[23] [m3video] 9942: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[8]
     [m3video]  9943: DECODE: CH8: 
     [m3video] Queing flush Frame to processQ
     [m3video]  9943: DECODE: CH8: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  9943: DECODE: CH8: 
     [m3video] Freeing flush Frame
     [m3video] 9944: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[8]
    
    Close Channel: 9 
     [m3video] DEC : Delete CH9 Got the Dummy Object queued !!!
     [m3video]  10159: DECODE: CH9: Decoder flush needed (0)!!!
     [m3video]  10159: DECODE: CH9: Decoder Flushing !!!
     [m3video] DEC : Delete CH9, Dummy Object queued !!!
    
    IPCBITS Close Channel: 9 
    
     [host] 
    5597: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[9]
     [host] 
    5611: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[9]
     [host] IPC_BITSOUT:BitBuffer Free.chID:9,Size:0x9E3400
     [host] ******* RingBuf 9 deleted ********
    
     [host] 
    5619: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[9].Total Time[22] [m3video] 10166: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[9]
     [m3video]  10167: DECODE: CH9: 
     [m3video] Queing flush Frame to processQ
     [m3video]  10167: DECODE: CH9: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  10167: DECODE: CH9: 
     [m3video] Freeing flush Frame
     [m3video] 10168: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[9]
    
    Close Channel: 10 
     [m3video] DEC : Delete CH10 Got the Dummy Object queued !!!
     [m3video]  10383: DECODE: CH10: Decoder flush needed (0)!!!
     [m3video]  10383: DECODE: CH10: Decoder Flushing !!!
     [m3video] DEC : Delete CH10, Dummy Object queued !!!
    
    IPCBITS Close Channel: 10 
    
     [host] 
    5821: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[10]
     [host] 
    5835: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[10]
     [host] IPC_BITSOUT:BitBuffer Free.chID:10,Size:0x9E3400
     [host] ******* RingBuf 10 deleted ********
    
     [host] 
    5843: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[10].Total Time[22] [m3video] 10390: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[10]
     [m3video]  10391: DECODE: CH10: 
     [m3video] Queing flush Frame to processQ
     [m3video]  10391: DECODE: CH10: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  10391: DECODE: CH10: 
     [m3video] Freeing flush Frame
     [m3video] 10392: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[10]
    
    Close Channel: 11 
     [m3video] DEC : Delete CH11 Got the Dummy Object queued !!!
     [m3video]  10607: DECODE: CH11: Decoder flush needed (0)!!!
     [m3video]  10607: DECODE: CH11: Decoder Flushing !!!
     [m3video] DEC : Delete CH11, Dummy Object queued !!!
    
    IPCBITS Close Channel: 11 
    
     [host] 
    6045: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Sent for chId[11]
     [host] 
    6059: IPCBITSOUT:Link[30000018]:
     [host] Flush Frame Received for chId[11]
     [host] IPC_BITSOUT:BitBuffer Free.chID:11,Size:0x9E3400
     [host] ******* RingBuf 11 deleted ********
    
     [host] 
    6067: IPCBITSOUT:Link[30000018]:
     [host] Ch buffer delete completed for chId[11].Total Time[22]plughw:0,1: AUDIO open!!
     [m3video] 10614: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame received for ch[11]
     [m3video]  10615: DECODE: CH11: 
     [m3video] Queing flush Frame to processQ
     [m3video]  10615: DECODE: CH11: 
     [m3video] Flush Frame Received in ProcessQue
     [m3video]  10615: DECODE: CH11: 
     [m3video] Freeing flush Frame
     [m3video] 10616: IPCBITSIN:Link[1000001a]:
     [m3video] Flush Frame freed for ch[11]
    AUDIO open success!!
    
     ================DVR_StartSystem Done===================== 
    app_pb: app_tplay_save_layout,  mode=9, ch=0
    err: Error create uinput device -1.
    dio: data read start
     wait 1 time 500000  io.val = 0  
    dio: alarm_handler start
    app: dvr_init() ... done
    [BACKUP] - app_backup: app_backup_init success
    dio: DVR_setSensor() iSensorId=0 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=1 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=2 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=3 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=4 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=5 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=6 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=7 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=8 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=9 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=10 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=11 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=12 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=13 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=14 iSensorEnable=0 iSensorType=0
    dio: DVR_setSensor() iSensorId=15 iSensorEnable=0 iSensorType=0
    dio: DVR_setAlarm() iAlarmId=0 iAlarmEnable=0 iAlarmType=0 iAlarmDelay=3
    dio: DVR_setAlarm() iAlarmId=1 iAlarmEnable=0 iAlarmType=0 iAlarmDelay=3
    dio: DVR_setAlarm() iAlarmId=2 iAlarmEnable=0 iAlarmType=0 iAlarmDelay=3
    dio: DVR_setAlarm() iAlarmId=3 iAlarmEnable=0 iAlarmType=0 iAlarmDelay=3
    hrtimer: interrupt took 5592 ns
     wait 2 time 1000000  io.val = 0  
     wait 3 time 1500000  io.val = 0  
    plughw:0,1: AUDIO open!!
    AUDIO open success!!
     wait 4 time 2000000  io.val = 0  
     wait 5 time 2500000  io.val = 0  
     wait 6 time 3000000  io.val = 0  
     wait 7 time 3500000  io.val = 0  
     wait 8 time 4000000  io.val = 0  
    lib_dvr_app.c DVR_GetDiskInfo 2135 begin get_dvr_disk_info 
    /dev/sda1 fstype :ext3 
    lib_dvr_app.c DVR_GetDiskInfo 2137 begin get_dvr_disk_info 
    basket_rec.c BKTREC_updateHddInfo 3083 begin get_dvr_disk_info 
    /dev/sda1 fstype :ext3 
     wait 9 time 4500000  io.val = 0  
     wait 10 time 5000000  io.val = 0  
     tm.nextHddIdx = 2
    
    begin dio_poweroff
    [BKTREC] - basket_rec.c(2058):  BKTREC_exit:Failed close basket file and index file. Already basket file is closed.
    err: BKTREC_exit() Error !!!!
    begin cut power !!!!!!
    dio: dvr_send_alarm() alarmidx=4 alarmOnOff=1
    =================================================
             UPDATE MULTI-HDD INFORMATION            
    =================================================
     IDX      Date            Path       Prev   Next 
    =================================================
      00   1394013237     /media/sda1     00     00
    =================================================
    
    
    =================================================
               GET TARGET DISK INFORMATION           
    =================================================
      IDX        Path  
    =================================================
       00     /media/sda1
    =================================================
    
    vdMosaicParam->numberOfWindows =16 startChId 0 maxChns 16 
     [m3vpss ]  17320: SWMS    : ******* Configuring clock 45 secs... 
     [m3vpss ]  17320: SWMS0    : Loading Vertical Co-effs (7/16)x ... 
     [m3vpss ]  17320: SWMS0    : Loading Horizontal Co-effs (3/16)x ... 
     [m3vpss ]  17320: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  17320: SWMS0    : Loading Vertical Co-effs (7/16)x ... 
     [m3vpss ]  17320: SWMS0    : Loading Horizontal Co-effs (3/16)x ... 
     [m3vpss ]  17320: SWMS    : Co-effs Loading ... DONE !!!
    

    Thanks very much!

  • You are again creating decoder for 1920x1080. I have already explained previously you have to create decoder for 2048x1536 resolution

  • Sorry,app_log_1.txt is wrong,Should be the next

    root@dm816x:/opt/dvr_rdk/ti816x# ./run_gui.sh 
    net.core.rmem_max = 8738000
    net.ipv4.tcp_rmem = 8192 873800 8738000
    vm.min_free_kbytes = 65536
    *** Bootargs Validated for mem param ***
    *** Bootargs Validated for notifyk.vpssm3 params ***
    *** Kernel Base address validated ***
    Kernel bootargs validated
    numid=101,iface=MIXER,name='Left DAC Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=3
      ; Item #0 'DAC_L1'
      ; Item #1 'DAC_L3'
      ; Item #2 'DAC_L2'
      : values=2
    numid=99,iface=MIXER,name='Right DAC Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=3
      ; Item #0 'DAC_R1'
      ; Item #1 'DAC_R3'
      ; Item #2 'DAC_R2'
      : values=2
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
    SysLink version : 2.20.02.20
    SysLink module created on Date:Jan 24 2014 Time:14:30:51
    Trace enabled
    Trace SetFailureReason enabled
     Setting DMM priority for [DUCATI  ] to [0] ( 0x4e000624 = 0x08000000 )
     Setting DMM priority for [HDVICP0 ] to [2] ( 0x4e000634 = 0x0000000a )
     Setting DMM priority for [HDVICP1 ] to [2] ( 0x4e000634 = 0x000a0000 )
     Setting DMM priority for [HDVICP2 ] to [2] ( 0x4e000634 = 0x00a00000 )
     
     *** TVP5158 probe : START ***
     
     TI VS EVM : TVP5158 device address : 0x58, 0x5a, 0x5c, 0x5e
     TI DVR    : TVP5158 device address : 0x5c, 0x5d, 0x5e, 0x5f
     
     Device found     : I2C (0xXX): 0x08 = 0x51
                        I2C (0xXX): 0x09 = 0x58
     
     Device NOT found : I2C (0xXX): Read ERROR !!! (reg[0x08], count = 2)
     
     I2C (0x58): 0x08 = 0xff 
     I2C (0x58): 0x09 = 0xff 
     I2C (0x5a): 0x08 = 0xff 
     I2C (0x5a): 0x09 = 0xff 
     I2C (0x5c): 0x08 = 0xff 
     I2C (0x5c): 0x09 = 0xff 
     I2C (0x5d): 0x08 = 0xff 
     I2C (0x5d): 0x09 = 0xff 
     I2C (0x5e): Read ERROR !!! (reg[0x08], count = 2)
     I2C (0x5f): Read ERROR !!! (reg[0x08], count = 2)
     
     *** TVP5158 probe : END ***
     
    /opt/dvr_rdk/ti816x
    Attached to slave procId 2.
    Loaded file ../firmware/dvr_rdk_fw_m3vpss_2048M_512M.xem3 on slave procId 2.
    Started slave procId 2.
    After Ipc_loadcallback status [0x00000000]
     [m3vpss ] ***** VPSS Firmware build time 16:05:39 Feb 17 2014  EDG gcc 3.0 mode
     [m3vpss ] ***** SYSTEM  : Frequency <ORG> - 250000000, <NEW> - 274909088
     [m3vpss ] notify_attach  rtnVal  0
     [m3vpss ] initProxyServer  rtnVal  0
     [m3vpss ]  
     [m3vpss ]  *** UTILS: CPU KHz = 549818 Khz ***
     [m3vpss ]  
     [m3vpss ]  35: SYSTEM  : System Common Init in progress !!!
     [m3vpss ]  35: SYSTEM: IPC init in progress !!!
     [m3vpss ]  35: SYSTEM: Attaching to [HOST] ... 
     [m3vpss ]  37: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
    After Ipc_startcallback status [0x00000000]
    Attached to slave procId 0.
    DMA: Module install successful, device major num = 250 
    DRV: Module install successful
    DRV: Module built on Jan 24 2014 14:31:37 
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
    Attached to slave procId 1.
    Loaded file ../firmware/dvr_rdk_fw_c6xdsp_2048M_512M.xe674 on slave procId 0.
    Started slave procId 0.
    After Ipc_loadcallback status [0x00000000]
     [c6xdsp ] ***** VIDEO Firmware build time 16:05:24 Feb 17 2014  EDG gcc 3.0 mode
     [c6xdsp ] ***** SYSTEM  : Frequency <ORG> - 800000000, <NEW> - 1000000000
     [c6xdsp ]  
     [c6xdsp ]  *** UTILS: CPU KHz = 1000000 Khz ***
     [c6xdsp ]  
     [c6xdsp ]  5: SYSTEM  : System Common Init in progress !!!
     [c6xdsp ]  5: SYSTEM: IPC init in progress !!!
     [c6xdsp ]  5: SYSTEM: Attaching to [HOST] ... 
     [c6xdsp ]  8: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
    Loaded file ../firmware/dvr_rdk_fw_m3video_2048M_512M.xem3 on slave procId 1.
    Started slave procId 1.
    After Ipc_loadcallback status [0x00000000]
    After Ipc_startcallback status [0x00000000]
    After Ipc_startcallback status [0x00000000]
     [c6xdsp ]  16: SYSTEM: Attaching to [VIDEO-M3] ... SUCCESS !!!
     [m3video] ***** VIDEO Firmware build time 16:05:55 Feb 17 2014  EDG gcc 3.0 mode
     [m3vpss ]  731: SYSTEM: Attaching to [DSP] ... SUCCESS !!!
     [c6xdsp ]  17: SYSTEM: Attaching to [VPSS-M3] ... SUCCESS !!!
     [m3video] ***** SYSTEM  : Frequency <ORG> - 250000000, <NEW> - 274909088
     [m3vpss ]  732: SYSTEM: Attaching to [VIDEO-M3] ... SUCCESS !!!
     [c6xdsp ]  17: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_0] ...
     [m3video]  
     [m3vpss ]  732: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_2] ...
     [c6xdsp ]  17: SYSTEM: Creating MsgQ [DSP_MSGQ] ...
     [m3video]  *** UTILS: CPU KHz = 549818 Khz ***
     [c6xdsp ]  17: SYSTEM: Creating MsgQ [DSP_ACK_MSGQ] ...
     [m3video]  
     [c6xdsp ]  18: SYSTEM: Notify register to [HOST] line 0, event 15 ... 
     [m3video]  726: SYSTEM  : System Common Init in progress !!!
     [c6xdsp ]  18: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     [m3video]  726: SYSTEM: IPC init in progress !!!
     [c6xdsp ]  18: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     [m3video]  726: SYSTEM: Attaching to [HOST] ... 
     [c6xdsp ]  18: SYSTEM: IPC init DONE !!!
     [m3video]  729: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
     [m3video]  730: SYSTEM: Attaching to [DSP] ... SUCCESS !!!
     [m3video]  732: SYSTEM: Attaching to [VPSS-M3] ... SUCCESS !!!
     [m3video]  732: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_1] ...
     [m3vpss ]  733: SYSTEM: Creating MsgQ [VPSS-M3_MSGQ] ...
     [c6xdsp ]  20: MEM: Shared Region 2: Base = 0x96000000, Length = 0x28000000 (640 MB) 
     [m3video]  733: SYSTEM: Creating MsgQ [VIDEO-M3_MSGQ] ...
     [m3vpss ]  733: SYSTEM: Creating MsgQ [VPSS-M3_ACK_MSGQ] ...
     [c6xdsp ]  20: MEM: Shared Region 1: Base = 0x80000000, Length = 0x11600000 (278 MB) 
     [m3video]  733: SYSTEM: Creating MsgQ [VIDEO-M3_ACK_MSGQ] ...
     [m3vpss ]  734: SYSTEM: Notify register to [HOST] line 0, event 15 ... 
     [c6xdsp ]  21: SYSTEM  : System Common Init Done !!!
     [m3video]  734: SYSTEM: Notify register to [HOST] line 0, event 15 ... 
     [m3vpss ]  735: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     [c6xdsp ]  15: SYSTEM  : System DSP Init in progress !!!
     [m3video]  735: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     [m3vpss ]  735: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     [c6xdsp ]  15: SYSTEM  : RpeServer_init() done... Ret Val 0!!!
     [m3video]  735: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     [m3vpss ]  735: SYSTEM: IPC init DONE !!!
     [c6xdsp ]  23: SYSTEM: Creating ListMP [DSP_IPC_OUT_19] in region 0 ...
     [m3video]  735: SYSTEM: IPC init DONE !!!
     [m3vpss ]  741: MEM: Shared Region 2: Base = 0x96000000, Length = 0x28000000 (640 MB) 
     [c6xdsp ]  23: SYSTEM: Creating ListMP [DSP_IPC_IN_19] in region 0 ...
     [m3video]  741: MEM: Shared Region 2: Base = 0x96000000, Length = 0x28000000 (640 MB) 
     [m3vpss ]  741: MEM: Shared Region 1: Base = 0x80000000, Length = 0x11600000 (278 MB) 
     [c6xdsp ]  23: SYSTEM: ListElem Shared Addr = 0xbe1b3e00
     [m3video]  741: MEM: Shared Region 1: Base = 0x80000000, Length = 0x11600000 (278 MB) 
     [m3vpss ]  743: SYSTEM  : System Common Init Done !!!
     [c6xdsp ]  24: SYSTEM: Creating ListMP [DSP_IPC_OUT_20] in region 0 ...
     [m3video]  743: SYSTEM  : System Common Init Done !!!
     [m3vpss ]  743: SYSTEM  : System VPSS Init in progress !!!
     [c6xdsp ]  24: SYSTEM: Creating ListMP [DSP_IPC_IN_20] in region 0 ...
     [m3video]  743: SYSTEM  : System Video Init in progress !!!
     [m3vpss ]  743: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [c6xdsp ]  24: SYSTEM: ListElem Shared Addr = 0xbe1d9600
     [m3video]  743: SYSTEM  : System Video Init Done !!!
     [c6xdsp ]  24: SYSTEM: Creating ListMP [DSP_IPC_OUT_21] in region 0 ...
     [m3video]  743: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_0] in region 0 ...
     [c6xdsp ]  24: SYSTEM: Creating ListMP [DSP_IPC_IN_21] in region 0 ...
     [m3video]  744: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_0] in region 0 ...
     [c6xdsp ]  24: SYSTEM: ListElem Shared Addr = 0xbe1fee00
     [m3video]  744: SYSTEM: ListElem Shared Addr = 0xbe261b00
     [c6xdsp ]  25: SYSTEM: Creating ListMP [DSP_IPC_OUT_24] in region 0 ...
     [m3video]  746: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_1] in region 0 ...
     [m3vpss ] TILER_STATS: CNT :8BIT
     [c6xdsp ]  25: SYSTEM: Creating ListMP [DSP_IPC_IN_24] in region 0 ...
     [m3video]  746: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_1] in region 0 ...
     [c6xdsp ]  25: SYSTEM: ListElem Shared Addr = 0xbe224600
     [m3video]  746: SYSTEM: ListElem Shared Addr = 0xbe265000
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    0 x 0
     [c6xdsp ]  26: SYSTEM: Creating ListMP [DSP_IPC_OUT_25] in region 0 ...
     [m3video]  752: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_19] in region 0 ...
     [c6xdsp ]  26: SYSTEM: Creating ListMP [DSP_IPC_IN_25] in region 0 ...
     [m3video]  752: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_19] in region 0 ...
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 0 x 0
     [c6xdsp ]  26: SYSTEM: ListElem Shared Addr = 0xbe243080
     [m3video]  752: SYSTEM: ListElem Shared Addr = 0xbe268500
     [c6xdsp ] !!WARNING.Resource already registered:2
     [c6xdsp ]  20: SYSTEM  : Initializing Links !!! 
     [m3video]  754: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_20] in region 0 ...
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  0
     [m3video]  755: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_20] in region 0 ...
     [c6xdsp ]  26: SYSTEM  : FREE SPACE : System Heap      = 10342016 B, Mbx = 10240 msgs) 
     [m3video]  755: SYSTEM: ListElem Shared Addr = 0xbe28dd00
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3video]  757: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_21] in region 0 ...
     [c6xdsp ]  29: SYSTEM  : Initializing Links ... DONE !!! 
     [m3video]  757: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_21] in region 0 ...
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   0 (0 %)
     [m3video]  757: SYSTEM: ListElem Shared Addr = 0xbe2b3500
     [c6xdsp ]  ETH_OFFLOAD: Init !!!
     [m3video]  770: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_24] in region 0 ...
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [c6xdsp ]  30: SYSTEM  : System DSP Init Done !!!
     [m3video]  771: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_24] in region 0 ...
     [m3video]  771: SYSTEM: ListElem Shared Addr = 0xbe2d8d00
     [m3video]  773: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_25] in region 0 ...
     [m3video]  773: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_25] in region 0 ...
     [m3video]  773: SYSTEM: ListElem Shared Addr = 0xbe2f7780
     [m3video]  775: HDVICP: Doing PRCM for IVAHD[0] ... 
     [m3vpss ] TILER_STATS: CNT :16BIT
     [m3video]  775: HDVICP: PRCM for IVAHD[0] ... DONE.
     [m3video]  775: HDVICP: Doing PRCM for IVAHD[1] ... 
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    0 x 0
     [m3video]  775: HDVICP: PRCM for IVAHD[1] ... DONE.
     [m3video]  775: HDVICP: Doing PRCM for IVAHD[2] ... 
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 0 x 0
     [m3video]  775: HDVICP: PRCM for IVAHD[2] ... DONE.
     [m3video]  776: SYSTEM  : Initializing Links !!! 
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  0
     [m3video]  776: SYSTEM  : FREE SPACE : System Heap      = 6279304 B, Mbx = 10240 msgs) 
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3video]  776: SYSTEM  : FREE SPACE : SR0 Heap         = 20882432 B (19 MB) 
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   0 (0 %)
     [m3video]  776: SYSTEM  : FREE SPACE : Frame Buffer     = 671088512 B (639 MB) 
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3video]  776: SYSTEM  : FREE SPACE : Bitstream Buffer = 291504000 B (277 MB) 
     [m3video]  776: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     [m3video]  778: SYSTEM  : FREE SPACE : Tiler 8-bit      = 0 B (0 MB)  - TILER ON 
     [m3video]  778: SYSTEM  : FREE SPACE : Tiler 16-bit     = 0 B (0 MB)  - TILER ON 
     [m3video]  812: SYSTEM  : Initializing Links ... DONE !!! 
     [m3vpss ]  1742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  2742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  3742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  4742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  5742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  6742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  7742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  8742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  9742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  10742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  11742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  12742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  13742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  14742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  15742: SYSTEM: VPDMA is Busy (0x00200000) !!!
     [m3vpss ]  16742: SYSTEM: All VPDMA Free !!! 
     [m3vpss ] === HDVPSS Clocks are enabled ===
     [m3vpss ] === HDVPSS is fully functional ===
     [m3vpss ] === HDVPSS module is not in standby ===
     [m3vpss ] === I2C1 Clk is active ===
     [m3vpss ]  16750: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_0] in region 0 ...
     [m3vpss ]  16751: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_0] in region 0 ...
     [m3vpss ]  16751: SYSTEM: ListElem Shared Addr = 0xbe316200
     [m3vpss ]  16753: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_1] in region 0 ...
     [m3vpss ]  16753: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_1] in region 0 ...
     [m3vpss ]  16753: SYSTEM: ListElem Shared Addr = 0xbe319700
     [m3vpss ]  16767: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_19] in region 0 ...
     [m3vpss ]  16767: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_19] in region 0 ...
     [m3vpss ]  16767: SYSTEM: ListElem Shared Addr = 0xbe31cc00
     [m3vpss ]  16769: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_20] in region 0 ...
     [m3vpss ]  16770: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_20] in region 0 ...
     [m3vpss ]  16770: SYSTEM: ListElem Shared Addr = 0xbe342400
     [m3vpss ]  16772: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_21] in region 0 ...
     [m3vpss ]  16772: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_21] in region 0 ...
     [m3vpss ]  16773: SYSTEM: ListElem Shared Addr = 0xbe367c00
     [m3vpss ]  16774: SYSTEM : HDVPSS Drivers Version: HDVPSS_01_00_01_37
     [m3vpss ]  16774: SYSTEM  : FVID2 Init in progress !!!
     [m3vpss ]  16843: SYSTEM  : FVID2 Init in progress DONE !!!
     [m3vpss ]  16843: SYSTEM  : Device Init in progress !!!
     [m3vpss ]  16846: SYSTEM  : Device Init in progress DONE !!!
     [m3vpss ]  16886: SYSTEM  : System VPSS Init Done !!!
     [m3vpss ]  16887: UTILS: DMA: HWI Create for INT63 !!!
     [m3vpss ]  16887: SYSTEM  : Initializing Links !!! 
     [m3vpss ]  16887: SYSTEM  : FREE SPACE : System Heap      = 74056 B, Mbx = 10240 msgs) 
     [m3vpss ]  16887: SYSTEM  : FREE SPACE : SR0 Heap         = 20394496 B (19 MB) 
     [m3vpss ]  16887: SYSTEM  : FREE SPACE : Frame Buffer     = 666778496 B (635 MB) 
     [m3vpss ]  16888: SYSTEM  : FREE SPACE : Bitstream Buffer = 291504000 B (277 MB) 
     [m3vpss ] TILER_STATS: CNT :8BIT
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    16384 x 8192
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 16384 x 8188
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3vpss ] Received character 's'
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
     [m3video] Received character 's'
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
     [c6xdsp ] Received character 's'
    /opt/dvr_rdk/ti816x
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134152192 (99 %)
     [[module] vpss probe done.
    m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
    [module] ti81xxfb probe done.
    HDMI W1 rev 2.0
    HDMI CEC Spec version 1.2
     [m3vpss ] TILER_STATS: CNT :16BIT
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    32768 x 4096
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 32768 x 4096
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134217728 (100 %)
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3vpss ]  16889: SYSTEM  : FREE SPACE : Tiler 8-bit      = 134152192 B (127 MB)  - TILER ON 
     [m3vpss ]  16889: SYSTEM  : FREE SPACE : Tiler 16-bit     = 134217728 B (128 MB)  - TILER ON 
     [m3vpss ]  17005: SYSTEM  : Initializing Links ... DONE !!! 
     [m3vpss ]  17005: SYSTEM  : Set Static L3 pressure for HDVPSS as High
    I2C No Ack
    
    HDMI failed to read E-EDID
     
     ORG 0x46c00524: 0
     NEW 0x46c00524: 2
     
     [ETH OFFLOAD] Shared memory address = 0x40300000, size =0x0000f400 !!!
     [ETH OFFLOAD] GRO is ENABLED !!!
     [ETH OFFLOAD] EMAC-1 is ENABLED !!!
     [ETH_OFFLOAD] RX CSUM is ENABLED !!!
     [c6xdsp ]  [ETH_OFFLOAD] OPENED !!!
     [c6xdsp ] EMAC_start returned 0
    /opt/dvr_rdk/ti816x
     Setting DMM priority for [A8      ] to [0] ( 0x4e000620 = 0x00000008 )
    gVIDEOMOTION_ctrl.bufSize = 21120
    gVIDEOMOTION_ctrl.bufNum  = 16
    app_pb: app_playback_init ... success
    lib_dvr_app.c DVR_StartSystem 988 
     0: SYSTEM: System Common Init in progress !!!
     1: SYSTEM: IPC init in progress !!!
     19: SYSTEM: CPU [DSP] syslink proc ID is [0] !!!
     19: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [1] !!!
     19: SYSTEM: CPU [VPSS-M3] syslink proc ID is [2] !!!
     19: SYSTEM: CPU [HOST] syslink proc ID is [3] !!!
     20: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_3] ...
     23: SYSTEM: Creating MsgQ [HOST_MSGQ] ...
     25: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ...
     27: SYSTEM: Opening MsgQ [DSP_MSGQ] ...
     29: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
     30: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     30: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     31: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     32: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     32: SYSTEM: IPC init DONE !!!
     35: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ...
     37: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ...
     38: SYSTEM: ListElem Shared Addr = 0x5f2b2700
     39: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ...
     41: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ...
     43: SYSTEM: ListElem Shared Addr = 0x5f2e9500
     44: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 ...
     46: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 ...
     48: SYSTEM: ListElem Shared Addr = 0x5f320300
     49: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 ...
     51: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 ...
     52: SYSTEM: ListElem Shared Addr = 0x5f363600
     53: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 ...
     56: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 ...
     57: SYSTEM: ListElem Shared Addr = 0x5f3a6900
     74: SYSTEM: System Common Init Done !!!
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 2048  maxVideoHeight  1536 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    vdMosaicParam->numberOfWindows =16 startChId 0 maxChns 32 
    vdMosaicParam->numberOfWindows =16 startChId 16 maxChns 32 
     [host] HDMI Ctrl :Initializing
    [HOST] 
    ThreadName:Vdis_hdmiControlThread_0,ThreadID:847
     [host] HDMI Ctrl :Initialized
    ==========yhao image===================yhao image11=========
     [host] APP_WRITER:WRITER_recordFxn:Entered...=====Going to Vsys_create=========
     139: MCFW  : CPU Revision [ES2.0] !!! 
    ----------------endChNum=12
    [HOST] 
    ThreadName:IpcBitsOutLink_tskMain_30000018,ThreadID:837
    
     [host]  141: IPC_BITS_OUT   : Create in progress !!!
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:0,Size:0xF00000
     [host] 
    ******* RingBuf 0 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6061d080 To Phy:0x80000080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6061D080 / PhyAddr 80000080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:1,Size:0xF00000
     [host] 
    ******* RingBuf 1 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6151d080 To Phy:0x80f00080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6151D080 / PhyAddr 80F00080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:2,Size:0xF00000
     [host] 
    ******* RingBuf 2 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6241d080 To Phy:0x81e00080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6241D080 / PhyAddr 81E00080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:3,Size:0xF00000
     [host] 
    ******* RingBuf 3 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6331d080 To Phy:0x82d00080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6331D080 / PhyAddr 82D00080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:4,Size:0xF00000
     [host] 
    ******* RingBuf 4 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6421d080 To Phy:0x83c00080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6421D080 / PhyAddr 83C00080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:5,Size:0xF00000
     [host] 
    ******* RingBuf 5 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6511d080 To Phy:0x84b00080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6511D080 / PhyAddr 84B00080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:6,Size:0xF00000
     [host] 
    ******* RingBuf 6 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6601d080 To Phy:0x85a00080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6601D080 / PhyAddr 85A00080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:7,Size:0xF00000
     [host] 
    ******* RingBuf 7 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x66f1d080 To Phy:0x86900080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 66F1D080 / PhyAddr 86900080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:8,Size:0xF00000
     [host] 
    ******* RingBuf 8 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x67e1d080 To Phy:0x87800080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 67E1D080 / PhyAddr 87800080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:9,Size:0xF00000
     [host] 
    ******* RingBuf 9 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x68d1d080 To Phy:0x88700080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 68D1D080 / PhyAddr 88700080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:10,Size:0xF00000
     [host] 
    ******* RingBuf 10 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x69c1d080 To Phy:0x89600080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 69C1D080 / PhyAddr 89600080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:11,Size:0xF00000
     [host] 
    ******* RingBuf 11 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6ab1d080 To Phy:0x8a500080
     [host] 
    ###Bit buff of size from the SR # 1 : 15728640 / bufsize 3145728, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6AB1D080 / PhyAddr 8A500080
    
     [host]  479: IPC_BITS_OUT   : Create Done !!!
    [HOST] 
    ThreadName:IpcBitsOutLink_periodicTaskFxn_30000018,ThreadID:853
     [m3vpss ] WARNING!!.Tiler Memory cannot be accessed by M3 in 2G build.Will not disable
     [m3video]  20624: IPC_BITS_IN   : Create in progress !!!
     [m3video]  20625: SYSTEM: Opening ListMP [HOST_IPC_OUT_24] ...
     [m3video]  20625: SYSTEM: Opening ListMP [HOST_IPC_IN_24] ...
     [m3video]  20626: SYSTEM: Opening MsgQ [HOST_MSGQ] ...
     [m3video]  20627: IPC_BITS_IN   : Create Done !!!
     [m3video]  20627: DECODE: Create in progress ... !!!
     [m3video] DECLINK_H264:HEAPID:0        USED:4264
     [m3video] DECLINK_H264:HEAPID:3        USED:41316352
     [m3video]  20980: DECODE: Creating CH0 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:41316352
     [m3video]  21331: DECODE: Creating CH1 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:41316352
     [m3video]  21682: DECODE: Creating CH2 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:41316352
    net eth1: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:02, id=1cc914, speed=100)
     [m3video]  22033: DECODE: Creating CH3 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:41316352
     [m3video]  22384: DECODE: Creating CH4 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:41316352
     [m3video]  22735: DECODE: Creating CH5 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:41316352
     [m3video]  23086: DECODE: Creating CH6 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:41316352
     [m3video]  23436: DECODE: Creating CH7 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:41316352
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe0000000 ,alloc size = 6998016 B, free space = 261437440 B)
     [m3video]  23692: SYSTEM: Opening MsgQ [DSP_MSGQ] ...
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe06ac800 ,alloc size = 6998016 B, free space = 254439424 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe0d59000 ,alloc size = 6998016 B, free space = 247441408 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe1405800 ,alloc size = 40894464 B, free space = 206546944 B)
     [m3video]  23745: DECODE: Creating CH8 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe3b05800 ,alloc size = 6998016 B, free space = 199548928 B)
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:421888
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe41b2000 ,alloc size = 6998016 B, free space = 192550912 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe485e800 ,alloc size = 6998016 B, free space = 185552896 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe4f0b000 ,alloc size = 6998016 B, free space = 178554880 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe55b7800 ,alloc size = 6998016 B, free space = 171556864 B)
     [m3video]  23940: DECODE: Creating CH9 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe5c64000 ,alloc size = 40894464 B, free space = 130662400 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe8364000 ,alloc size = 6998016 B, free space = 123664384 B)
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:421888
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe8a10800 ,alloc size = 6998016 B, free space = 116666368 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe90bd000 ,alloc size = 6998016 B, free space = 109668352 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe9769800 ,alloc size = 6998016 B, free space = 102670336 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xe9e16000 ,alloc size = 6998016 B, free space = 95672320 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xea4c2800 ,alloc size = 131072 B, free space = 95541248 B)
     [m3video]  24137: DECODE: Creating CH10 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xea4e2800 ,alloc size = 81920 B, free space = 95459328 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xea4f6800 ,alloc size = 40960 B, free space = 95418368 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xea500800 ,alloc size = 40894464 B, free space = 54523904 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xecc00800 ,alloc size = 6998016 B, free space = 47525888 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xed2ad000 ,alloc size = 6998016 B, free space = 40527872 B)
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:167936
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xed959800 ,alloc size = 6998016 B, free space = 33529856 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xee006000 ,alloc size = 6998016 B, free space = 26531840 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xee6b2800 ,alloc size = 6998016 B, free space = 19533824 B)
     [m3video]  24335: DECODE: Creating CH11 of 2048 x 1536 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3vpss ]  24342: IPC_IN_M3   : Create in progress !!!
     [m3video]  24337: DECODE: All CH Create ... DONE !!!
     [m3vpss ]  24342: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_0] ...
     [m3vpss ]  24343: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_0] ...
     [m3vpss ]  24343: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
     [m3video] DECLINK:HEAPID:0     USED:30432
     [m3vpss ]  24345: IPC_IN_M3   : Create Done !!!
     [m3video] DECLINK:HEAPID:3     USED:666775552
     [m3video]  24341: DECODE: Create ... DONE !!!
     [m3video]  24341: IPC_OUT_M3   : Create in progress !!!
     [m3video]  24342: IPC_OUT_M3   : Create Done !!!
     [m3vpss ]  24349: DUP:  0: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24349: DUP:  1: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24349: DUP:  2: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24349: DUP:  3: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24349: DUP:  4: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24349: DUP:  5: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24349: DUP:  6: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24349: DUP:  7: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24349: DUP:  8: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24349: DUP:  9: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24350: DUP: 10: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24350: DUP: 11: Format: PROGRESSIVE, 2048 x 1536
     [m3vpss ]  24351: DUP   : Create Done !!!
     [m3vpss ]  24351: MP_SCLR: Create in progress !!!
     [m3vpss ]  24355: MP_SCLR: Configured to use scalar instance 4 !!! 
     [m3vpss ]  MP_SCLR: chID[0]Res[1776]
     [m3vpss ]  MP_SCLR: chID[1]Res[1776]
     [m3vpss ]  MP_SCLR: chID[2]Res[1776]
     [m3vpss ]  MP_SCLR: chID[3]Res[1776]
     [m3vpss ]  MP_SCLR: chID[4]Res[1776]
     [m3vpss ]  MP_SCLR: chID[5]Res[1776]
     [m3vpss ]  MP_SCLR: chID[6]Res[1776]
     [m3vpss ]  MP_SCLR: chID[7]Res[1776]
     [m3vpss ]  MP_SCLR: chID[8]Res[1776]
     [m3vpss ]  MP_SCLR: chID[9]Res[1776]
     [m3vpss ]  MP_SCLR: chID[10]Res[1776]
     [m3vpss ]  MP_SCLR: chID[11]Res[1776]
     [m3vpss ]  MP_SCLR: chID[12]Res[1776]
     [m3vpss ]  MP_SCLR: chID[13]Res[1776]
     [m3vpss ]  MP_SCLR: chID[14]Res[1776]
     [m3vpss ]  MP_SCLR: chID[15]Res[1776]
     [m3vpss ]  24358: MP_SCLR: Create Done !!!
     [m3vpss ]  24362: DUP:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24362: DUP:  1: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24362: DUP:  2: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24362: DUP:  3: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24363: DUP:  4: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24363: DUP:  5: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24363: DUP:  6: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24363: DUP:  7: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24363: DUP:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24363: DUP:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24363: DUP: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24363: DUP: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24365: DUP   : Create Done !!!
     [m3vpss ]  24365: MP_SCLR: Create in progress !!!
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xeed5f000 ,alloc size = 4147200 B, free space = 15386624 B)
     [m3vpss ]  24369: MP_SCLR: Configured to use scalar instance 4 !!! 
     [m3vpss ]  MP_SCLR: chID[0]Res[1776]
     [m3vpss ]  MP_SCLR: chID[1]Res[1776]
     [m3vpss ]  MP_SCLR: chID[2]Res[1776]
     [m3vpss ]  MP_SCLR: chID[3]Res[1776]
     [m3vpss ]  MP_SCLR: chID[4]Res[1776]
     [m3vpss ]  MP_SCLR: chID[5]Res[1776]
     [m3vpss ]  MP_SCLR: chID[6]Res[1776]
     [m3vpss ]  MP_SCLR: chID[7]Res[1776]
     [m3vpss ]  MP_SCLR: chID[8]Res[1776]
     [m3vpss ]  MP_SCLR: chID[9]Res[1776]
     [m3vpss ]  MP_SCLR: chID[10]Res[1776]
     [m3vpss ]  MP_SCLR: chID[11]Res[1776]
     [m3vpss ]  MP_SCLR: chID[12]Res[1776]
     [m3vpss ]  MP_SCLR: chID[13]Res[1776]
     [m3vpss ]  MP_SCLR: chID[14]Res[1776]
     [m3vpss ]  MP_SCLR: chID[15]Res[1776]
     [m3vpss ]  24372: MP_SCLR: Create Done !!!
     [m3vpss ]  24372: SWMS: Create in progress !!!
     [m3vpss ]  24374: SYSTEM: Opening MsgQ [DSP_MSGQ] ...
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xef153800 ,alloc size = 4147200 B, free space = 11239424 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xef548000 ,alloc size = 4147200 B, free space = 7092224 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0xef93c800 ,alloc size = 4147200 B, free space = 2945024 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0x00000000 ,alloc size = 4147200 B, free space = 2945024 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0x00000000 ,alloc size = 4147200 B, free space = 2945024 B)
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0x00000000 ,alloc size = 4147200 B, free space = 2945024 B)
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 58 (58)
     [m3vpss ]  UTILS: DMA: 0 of 1: Allocated PaRAM = 58 (0x49004740)
     [m3vpss ] SWMS: instance 0, sc id 7, start win 0 end win 15
     [m3vpss ] SWMS: instance 1, sc id 4, start win 16 end win 33
     [m3vpss ]  24479: SWMS    : VipScReq is FALSE!!!
     [m3vpss ]  24482: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  24482: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  24482: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  24486: SWMS0    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  24486: SWMS0    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  24486: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  24486: SWMS:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24487: SWMS:  1: Format: PROGRESSIVE, 1920 x 1080
    
     [host] IpcBitsInLink_tskMain:Entered[HOST] 
    ThreadName:IpcBitsInLink_tskMain_3000001a,ThreadID:835
    
     [host]  4678: IPC_BITS_IN   : Create in progress !!!
    
     [host]  4678: IPC_BITS_IN   : ListMPOpen start !!!
    
     [host]  4678: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_24] ...
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0x00000000 ,alloc size = 4147200 B, free space = 2945024 B)
     [m3video]  24645: IPC_FRAMES_IN   : Create in progress !!!
     [m3vpss ]  24487: SWMS:  2: Format: PROGRESSIVE, 1920 x 1080
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0x00000000 ,alloc size = 4147200 B, free space = 2945024 B)
     [m3video]  24646: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_20] ...
     [m3vpss ]  24487: SWMS:  3: Format: PROGRESSIVE, 1920 x 1080
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0x00000000 ,alloc size = 4147200 B, free space = 2945024 B)
     [m3video]  24646: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_20] ...
     [m3vpss ]  24487: SWMS:  4: Format: PROGRESSIVE, 1920 x 1080
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0x00000000 ,alloc size = 4147200 B, free space = 2945024 B)
     [m3vpss ]  24487: SWMS:  5: Format: PROGRESSIVE, 1920 x 1080
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0x00000000 ,alloc size = 4147200 B, free space = 2945024 B)
     [m3vpss ]  24487: SWMS:  6: Format: PROGRESSIVE, 1920 x 1080
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0x00000000 ,alloc size = 4147200 B, free space = 2945024 B)
     [m3video] IPC_FRAMES_IN:HEAPID:0       USED:304
     [m3vpss ]  24487: SWMS:  7: Format: PROGRESSIVE, 1920 x 1080
     [c6xdsp ]  UTILS: MEM: BUF alloc from EXTRA REMOTE FRAME BUF. (addr = 0x00000000 ,alloc size = 4147200 B, free space = 2945024 B)
     [m3video]  24649: IPC_FRAMES_IN   : Create Done !!!
     [m3vpss ]  24487: SWMS:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3video]  24649: ENCODE: Create in progress ... !!!
     [m3vpss ]  24487: SWMS:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3video] ENCLINK:INFO: !!!Number of output buffers for ch[0] set to [1]
     [m3video]  24709: ENCODE: Creating CH0 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  24487: SWMS: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24487: SWMS: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24488: SWMS    : ******* Configuring clock 45 secs... 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  24488: SWMS0    : Loading Vertical Co-effs (7/16)x ... 
     [m3video]  24710: ENCODE: Creating CH1 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  24488: SWMS0    : Loading Horizontal Co-effs (3/16)x ... 
     [m3vpss ]  24488: SWMS    : Co-effs Loading ... DONE !!!
     [m3vpss ]  24488: SWMS0    : Loading Vertical Co-effs (7/16)x ... 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  24488: SWMS0    : Loading Horizontal Co-effs (3/16)x ... 
     [m3video]  24711: ENCODE: Creating CH2 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  24488: SWMS    : Co-effs Loading ... DONE !!!
     4681: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_24] ...
    
     [host]  4682: IPC_BITS_IN   : ListMPOpen done !!!
    
     [host]  4683: IPC_BITS_IN   : System_linkGetInfo done !!!
    
     [host]  4683: IPC_BITS_IN   : Create Done !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ] SWMS:HEAPID:0        USED:288
     [m3video]  24711: ENCODE: Creating CH3 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ] SWMS:HEAPID:1        USED:60832
     [m3vpss ] SWMS:HEAPID:3        USED:12441600
     [m3vpss ]  24488: SWMS: Create Done !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  24489: SWMS: Create in progress !!!
     [m3video]  24712: ENCODE: Creating CH4 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 59 (59)
     [m3vpss ]  UTILS: DMA: 0 of 1: Allocated PaRAM = 59 (0x49004760)
     [m3vpss ] SWMS: instance 0, sc id 6, start win 0 end win 15
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ] SWMS: instance 1, sc id 3, start win 16 end win 33
     [m3video]  24712: ENCODE: Creating CH5 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  24631: SWMS    : VipScReq is FALSE!!!
     [m3vpss ]  24634: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  24634: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  24634: SWMS    : Co-effs Loading ... DONE !!!
     [m3video]  24713: ENCODE: Creating CH6 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  24638: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  24638: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  24638: SWMS    : Co-effs Loading ... DONE !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  24639: SWMS:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3video]  24714: ENCODE: Creating CH7 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  24639: SWMS:  1: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24639: SWMS:  2: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24639: SWMS:  3: Format: PROGRESSIVE, 1920 x 1080
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  24639: SWMS:  4: Format: PROGRESSIVE, 1920 x 1080
     [m3video]  24714: ENCODE: Creating CH8 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  24639: SWMS:  5: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24639: SWMS:  6: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24639: SWMS:  7: Format: PROGRESSIVE, 1920 x 1080
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  24639: SWMS:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3video]  24715: ENCODE: Creating CH9 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  24640: SWMS:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24640: SWMS: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  24640: SWMS: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  24640: SWMS    : ******* Configuring clock 30 secs... 
     [m3video]  24715: ENCODE: Creating CH10 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  24640: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3vpss ]  24640: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  24640: SWMS    : Co-effs Loading ... DONE !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3vpss ]  24640: SWMS1    : Loading Vertical Co-effs (UPSCALE)x ... 
     [m3video]  24716: ENCODE: Creating CH11 of 1920 x 1080, pitch = (3840, 2176) [PROGRESSIVE] [NON-TILED  ], bitrate = 100 Kbps, I-P Interval 0... 
     [m3vpss ]  24640: SWMS1    : Loading Horizontal Co-effs (UPSCALE)x ... 
     [m3vpss ]  24640: SWMS    : Co-effs Loading ... DONE !!!
     [m3video] ENCLINK_JPEG:HEAPID:0        USED:2064
     [m3video]  24717: ENCODE: All CH Create ... DONE !!!
     [m3vpss ] SWMS:HEAPID:0        USED:288
     [m3vpss ] SWMS:HEAPID:1        USED:66656
     [m3vpss ] SWMS:HEAPID:3        USED:29030400
     [m3video] ENCLINK:HEAPID:0     USED:24888
     [m3vpss ]  24641: SWMS: Create Done !!!
     [m3video] ENCLINK:HEAPID:2     USED:12441600
     [m3vpss ]  24641: DISPLAY: Create in progress !!!
     [m3video]  24718: ENCODE: Create ... DONE !!!
     [m3vpss ]  24642: DISPLAY: Create Done !!!
     [m3video]  24719: IPC_BITS_OUT   : Create in progress !!!
     [m3vpss ]  24642: DISPLAY: Create in progress !!!
     [m3vpss ]  24643: DISPLAY: Create Done !!!
     [m3vpss ]  24643: IPC_FRAMES_OUT   : Create in progress !!!
    
    Fix Screen Info:
    ----------------
    Line Length - 3840
    Physical Address = dea00000
    Buffer Length = 8294400
     [m3video]  24720: IPC_BITS_OUT   : Create Done !!!
    
    Var Screen Info:
    ----------------
    Xres - 1920
    Yres - 1080
    Xres Virtual - 1920
    Yres Virtual - 1080
    Bits Per Pixel - 16
    Pixel Clk - 6734
    Rotation - 0
    buf_size - 4147200 Bytes
     [m3vpss ]  24645: IPC_FRAMES_OUT   : Create Done !!!
     [m3vpss ]  24830: DISPLAY: Start in progress !!!
     [m3vpss ]  24884: DISPLAY: Start Done !!!
     [m3vpss ]  24884: DISPLAY: HDDAC(BP0) : 37 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) DropCount:0 DispLatency (Min / Max) = ( 7811 / 0 ) !!! 
     [m3vpss ]  24884: DISPLAY DRV: HDDAC(BP0) : Q:[2] Display:[2], Repeat:[1], DQ:[0]
     [m3vpss ]  24884: DISPLAY: UNDERFLOW COUNT: HDMI(BP0) 1, HDDAC(BP0) 1, DVO2(BP1) 1, SDDAC(SEC1) 1 
     [m3vpss ]  24884: SYSTEM  : FREE SPACE : System Heap      = 67240 B, Mbx = 10238 msgs) 
     [m3vpss ]  24884: SYSTEM  : FREE SPACE : SR0 Heap         = 16805760 B (16 MB) 
     [m3vpss ]  24884: SYSTEM  : FREE SPACE : Frame Buffer     = 2944 B (0 MB) 
     [m3vpss ]  24884: SYSTEM  : FREE SPACE : Bitstream Buffer = 48846720 B (46 MB) 
     [m3vpss ]  24885: DISPLAY: Start in progress !!!
    
    Fix Screen Info:
    ----------------
    Line Length - 3840
    Physical Address = df1e9000
    Buffer Length = 8294400
     [m3vpss ] TILER_STATS: CNT :8BIT
    
    Var Screen Info:
    ----------------
    Xres - 1920
    Yres - 1080
    Xres Virtual - 1920
    Yres Virtual - 1080
    Bits Per Pixel - 16
    Pixel Clk - 6734
    Rotation - 0
    buf_size - 4147200 Bytes
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    16384 x 8192
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 16384 x 8188
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134152192 (99 %)
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
    
     ===============Switch Display Done========================= 
    
     ===============Main Output Resolution Switch Done========== 
    
     ===============Sub Output Resolution Switch Done=========== 
     [m3vpss ] TILER_STATS: CNT :16BIT
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    32768 x 4096
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 32768 x 4096
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134217728 (100 %)
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3vpss ]  24886: SYSTEM  : FREE SPACE : Tiler 8-bit      = 134152192 B (127 MB)  - TILER ON 
     [m3vpss ]  24886: SYSTEM  : FREE SPACE : Tiler 16-bit     = 134217728 B (128 MB)  - TILER ON 
     [m3vpss ]  24930: DISPLAY: Start Done !!!
     [m3vpss ]  24931: DISPLAY: DVO2(BP1)  : 43 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) DropCount:0 DispLatency (Min / Max) = ( 7811 / 0 ) !!! 
     [m3vpss ]  24931: SWMS: Start in Progress !!!
     [m3vpss ]  24931: SWMS: Start Done !!!
     [m3vpss ]  24931: DISPLAY DRV: DVO2(BP1)  : Q:[2] Display:[2], Repeat:[1], DQ:[0]
     [m3vpss ]  24931: SWMS: Start in Progress !!!
     [m3vpss ]  24931: SWMS: Start Done !!!
    

    My goal is to  YUV(2048*1536)->MP_SCLR(1920*1080)->ENCODE(JPEG&1920*1080)

  • There appears to be bug in MJPEG encoder version you are using where the encoder doesn't consider pitch and assumes it is equal to width which is wrong when using YUV422I format. You can either get latest MJPEG encoder version from TI FAE and migrate to it (REL.500.V.MJPEG.E.IVAHD.01.00.14.00) or add nsfLink after MpSclr link to convert input format to YUV420SP for JPEG encoder to workaround the limitation.

  • Very thank you for your patience!

    According to your reminder, I add nsf link into usecaes like as:

    ipcInVpss->dup->MPSclr->nsf->venc

    When I run my code the system happen an assert failed, message as following.

    [m3vpss ] 24218: NSF: Create in progress !!!
    [m3vpss ] 24747: Assertion @ Line: 218 in links_m3vpss/nsf/nsfLink_drv.c: pObj->fvidHandleNsf != NULL : failed !!!

    I can't find out why.

    /*******************************************************************************
     *                                                                             *
     * Copyright (c) 2009 Texas Instruments Incorporated - http://www.ti.com/      *
     *                        ALL RIGHTS RESERVED                                  *
     *                                                                             *
     ******************************************************************************/
    /*  ========================= TI_816X_BUILD case ==============================
                              |
                            IPC_BITS_OUT_A8 (BitStream)
                              |
                            IPC_BITS_IN (Video)
                              |
                            DEC (YUV420SP)
                              |
                            IPC_OUT (Video)
                              |
                            IPC_IN (Vpss)
                              |   (32 D1 + 10 720P + 6 1080P)
                             DUP
                              |   +----------+------ |
                            MP_SCLR (Vpss)             MP_SCLR                                                 
                              |                                 |
                             DUP                             VENC(Video)
                   (48CH)    | |    (48CH)
             +---------------+ +-------------+
             |                               |
             |                               |
          SW Mosaic                       SW Mosaic
         (SC5 SC1 YUV422I)                (SC4 SC2 YUV422I)
            |  |                             |  |
            |  |                             |  |
           (DDR)(422I)                      (DDR)(422I)
              |                               |
      GRPX0   |                      GRPX1    |
         |    |                          |    |
         On-Chip HDMI                    Off-Chip HDMI
           1080p60                        1080p60
    */
    
    /* ========================= TI_814X_BUILD case ==============================
                              |
                            IPC_BITS_OUT_A8 (BitStream)
                              |
                            IPC_BITS_IN (Video)
                              |
                            DEC (YUV420SP)
                              |
                            IPC_OUT (Video)
                              |
                            IPC_IN (Vpss)
                              |   (16 channels)
                            MP_SCLR (Vpss)
                              |
                             DUP
                   (16CH)    | |    (16CH)
             +---------------+ +-------------+
             |                               |
             |                               |
          SW Mosaic                       SW Mosaic
         (SC5 YUV422I)                (SC5 YUV422I)
            |  |                             |  |
            |  |                             |  |
           (DDR)(422I)                      (DDR)(422I)
              |                               |
      GRPX0   |----Tied---|                   |
         |    |           |                   |
         On-Chip HDMI  Off-Chip HDMI         SDTV
           1080p60       1080p60
    */
    
    #include "mcfw/src_linux/mcfw_api/usecases/multich_common.h"
    #include "mcfw/src_linux/mcfw_api/usecases/multich_ipcbits.h"
    #include "mcfw/interfaces/link_api/system_tiler.h"
    #include "mcfw/interfaces/link_api/avsync_hlos.h"
    
    /* =============================================================================
     * Externs
     * =============================================================================
     */
    
    
    /* =============================================================================
     * Use case code
     * =============================================================================
     */
    
    
    
    #define MAX_DEC_OUT_FRAMES_PER_CH                           (5)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_NUM_CHANNELS       (16)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH        (720)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_HEIGHT       (480)
    #define MULTICH_NUM_SWMS_MAX_BUFFERS                        (7)
    
    #define     MAX_BUFFERING_QUEUE_LEN_PER_CH           (50)
    
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_CIF           (10)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_SD            (6)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_HD            (5)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_720P          (4)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_HMP           (4)
    
    
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
    static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 0,
            .EncChList = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 16,
            .DecChList = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
        },
    };
    #define NUM_STATIC_CHANNELS   (6)
    #else
    /*
    Max channels per IVA-HD MUST be < 16,
    i.e total number of channels for decode can be 48.
    
    Example CH allocation for SD+HD,
    
    32CH SD    :  0 to 31
     6CH 1080P : 32 to 38
    10CH 720P  : 39 to 48
    
    */
    static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 5,
            .EncChList = {0, 3, 6, 9, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 17,
            .DecChList = {   0,  3,  6,  9, 12, 15, 18, 21,
                            24, 27, 30, 33, 36, 39, 42, 45,
                            48
                         },
        },
        .ivaMap[1] =
        {
            .EncNumCh  = 5,
            .EncChList = {1, 4, 7, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 17,
            .DecChList = {   1,  4,  7, 10, 13, 16, 19, 22,
                            25, 28, 31, 34, 37, 40, 43, 46,
                            49
                         },
        },
        .ivaMap[2] =
        {
            .EncNumCh  = 6,
            .EncChList = {2, 5, 8, 11, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 16,
            .DecChList = {   2,  5,  8, 11, 14, 17, 20, 23,
                            26, 29, 32, 35, 38, 41, 44, 47
                         },
        },
    };
    #define NUM_STATIC_CHANNELS   (8)
    #endif
    
    typedef struct {
    
        UInt32 dupId;
        UInt32 ipcOutVideoId;
        UInt32 ipcInVpssId;
        UInt32 mergeId;
        Bool   enableVideoFrameExport;
        AvsyncLink_LinkSynchConfigParams   avsyncCfg[VDIS_DEV_MAX];
        UInt32 mpSclrId;	
        UInt32 snapshotmpSclrId;
        UInt32 decSnapshotDup;
    	UInt32 nsfId;
        UInt32 ipcFramesOutVpssId;
        IpcFramesOutLinkRTOS_CreateParams ipcFramesOutVpssPrm;
        UInt32 ipcFramesInVideoId;
        IpcFramesInLinkRTOS_CreateParams ipcFramesInVideoPrm;
        UInt32 encId;
        EncLink_CreateParams encPrm;
        UInt32 ipcBitsOutVideoId;
        IpcBitsOutLinkRTOS_CreateParams ipcBitsOutVideoPrm;
        UInt32 ipcBitsInHostId;
        IpcBitsInLinkHLOS_CreateParams ipcBitsInHostPrm;
    } MultiCh_VdecVdisObj;
    
    MultiCh_VdecVdisObj gMultiCh_VdecVdisObj;
    
    static Void MultiCh_setIpcFramesOutInQueInfo(System_LinkQueInfo *inQueInfo)
    {
        Int i;
    
        inQueInfo->numCh = MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_NUM_CHANNELS;
        for (i = 0; i < inQueInfo->numCh; i++)
        {
            inQueInfo->chInfo[i].bufType = SYSTEM_BUF_TYPE_VIDFRAME;
            inQueInfo->chInfo[i].dataFormat = SYSTEM_DF_YUV422I_YUYV;
            inQueInfo->chInfo[i].memType    = SYSTEM_MT_NONTILEDMEM;
            inQueInfo->chInfo[i].scanFormat = SYSTEM_SF_PROGRESSIVE;
            inQueInfo->chInfo[i].startX     = 0;
            inQueInfo->chInfo[i].startY     = 0;
            inQueInfo->chInfo[i].width      =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH;
            inQueInfo->chInfo[i].height     =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_HEIGHT;
            inQueInfo->chInfo[i].pitch[0]   =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH * 2;
            inQueInfo->chInfo[i].pitch[1]   = 0;
            inQueInfo->chInfo[i].pitch[2]   = 0;
        }
    }
    
    static
    Void mulich_vdec_vdis_set_avsync_vidque_prm(Avsync_SynchConfigParams *queCfg,
                                                Int chnum,
                                                UInt32 avsStartChNum,
                                                UInt32 avsEndChNum,
                                                VDIS_DEV vdDevId)
    {
        queCfg->chNum = chnum;
        queCfg->audioPresent = FALSE;
        if ((queCfg->chNum >= avsStartChNum)
            &&
            (queCfg->chNum <= avsEndChNum)
            &&
            (gVsysModuleContext.vsysConfig.enableAVsync))
        {
            queCfg->avsyncEnable = TRUE;
        }
        else
        {
            queCfg->avsyncEnable = FALSE;
        }
    
        queCfg->clkAdjustPolicy.refClkType = AVSYNC_REFCLKADJUST_NONE;
        queCfg->clkAdjustPolicy.clkAdjustLead = AVSYNC_VIDEO_TIMEBASESHIFT_MAX_LEAD_MS;
        queCfg->clkAdjustPolicy.clkAdjustLag  = AVSYNC_VIDEO_TIMEBASESHIFT_MAX_LAG_MS;
        queCfg->vidSynchPolicy.maxReplayLead  = AVSYNC_VIDEO_FUTURE_FRAME_DROP_THRESHOLD_MS;
        queCfg->vidSynchPolicy.playMaxLag  = 180;
        queCfg->vidSynchPolicy.playMaxLead = 0;
        queCfg->vidSynchPolicy.doMarginScaling = FALSE;
        queCfg->playTimerStartTimeout = 0;
        queCfg->playStartMode = AVSYNC_PLAYBACK_START_MODE_WAITSYNCH;
        queCfg->ptsInitMode   = AVSYNC_PTS_INIT_MODE_APP;
    }
    
    static
    Void mulich_vdec_vdis_set_avsync_prm(AvsyncLink_LinkSynchConfigParams *avsyncPrm,
                                         UInt32 swMsIdx,
                                         VDIS_DEV vdDevId)
    {
        Int i;
        Int32 status;
    
        Vdis_getAvsyncConfig(vdDevId,avsyncPrm);
        avsyncPrm->displayLinkID        = Vdis_getDisplayId(vdDevId);
        avsyncPrm->videoSynchLinkID = gVdisModuleContext.swMsId[swMsIdx];
        avsyncPrm->numCh            = gVdecModuleContext.vdecConfig.numChn;
        avsyncPrm->syncMasterChnum =  AVSYNC_INVALID_CHNUM;
        for (i = 0; i < avsyncPrm->numCh;i++)
        {
            mulich_vdec_vdis_set_avsync_vidque_prm(&avsyncPrm->queCfg[i],
                                                   i,
                                                   0,
                                                   (0 + gVdecModuleContext.vdecConfig.numChn),
                                                   vdDevId);
        }
        if (0 == swMsIdx)
        {
            Vdis_setAvsyncConfig(VDIS_DEV_HDMI,avsyncPrm);
        }
        else
        {
            Vdis_setAvsyncConfig(VDIS_DEV_SD,avsyncPrm);
        }
    
        status = Avsync_configSyncConfigInfo(avsyncPrm);
        OSA_assert(status == 0);
    }
    
    static Void mulich_vdec_vdis_set_mjpeg_enc_ch_params (EncLink_CreateParams *encPrm, Int32 startChNum, Int32 endChNum)
    {
        Int32 i;
    
        EncLink_ChCreateParams *pLinkChPrm;
        EncLink_ChDynamicParams *pLinkDynPrm;
        VENC_CHN_DYNAMIC_PARAM_S *pDynPrm;
        VENC_CHN_PARAMS_S *pChPrm;
    	
        printf ("----------------endChNum=%d\n",endChNum);
        for (i=startChNum; i<endChNum; i++)
        {
            pLinkChPrm  = &encPrm->chCreateParams[i];
            pLinkDynPrm = &pLinkChPrm->defaultDynamicParams;
    
            pChPrm      = &gVencModuleContext.vencConfig.encChannelParams[i];
            pDynPrm     = &pChPrm->dynamicParam;
    
            pLinkChPrm->format                 = IVIDEO_MJPEG;
            pLinkChPrm->profile                = 0;
            pLinkChPrm->dataLayout             = VCODEC_FIELD_SEPARATED;
            pLinkChPrm->fieldMergeEncodeEnable = FALSE;
            pLinkChPrm->enableAnalyticinfo     = 0;
            pLinkChPrm->enableWaterMarking     = 0;
            pLinkChPrm->maxBitRate             = 0;
            pLinkChPrm->encodingPreset         = 0;
            pLinkChPrm->rateControlPreset      = 0;
            pLinkChPrm->enableSVCExtensionFlag = 0;
            pLinkChPrm->numTemporalLayer       = 0;
    
            pLinkDynPrm->intraFrameInterval    = 0;
            pLinkDynPrm->targetBitRate         = 100*1000;
            pLinkDynPrm->interFrameInterval    = 0;
            pLinkDynPrm->mvAccuracy            = 0;
            pLinkDynPrm->inputFrameRate        = pDynPrm->inputFrameRate;
            pLinkDynPrm->qpMin                 = 0;
            pLinkDynPrm->qpMax                 = 0;
            pLinkDynPrm->qpInit                = -1;
            pLinkDynPrm->vbrDuration           = 0;
            pLinkDynPrm->vbrSensitivity        = 0;
        }
    }
    Void MultiCh_createVdecVdis()
    {
        IpcBitsOutLinkHLOS_CreateParams   ipcBitsOutHostPrm;
        IpcBitsInLinkRTOS_CreateParams    ipcBitsInVideoPrm;
        DecLink_CreateParams        decPrm;
        IpcLink_CreateParams        ipcOutVideoPrm;
        IpcLink_CreateParams        ipcInVpssPrm;
        DupLink_CreateParams        dupPrm,dupSnapshotPrm;
        static SwMsLink_CreateParams       swMsPrm[VDIS_DEV_MAX];
        DisplayLink_CreateParams    displayPrm[VDIS_DEV_MAX];
        IpcFramesOutLinkHLOS_CreateParams  ipcFramesOutHostPrm;
        IpcFramesInLinkRTOS_CreateParams   ipcFramesInVpssFromHostPrm;
        MergeLink_CreateParams             mergePrm;
        MpSclrLink_CreateParams            mpSclrPrm;
        MpSclrLink_CreateParams            mpSclrSnapshotPrm;
        NsfLink_CreateParams               nsfPrm;
    
        UInt32 i;
        UInt32 enableGrpx;
        Bool tilerEnable;
        Bool enableVideoFrameExport;
    
        MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcInVpssPrm);
        MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcOutVideoPrm);
        MULTICH_INIT_STRUCT(IpcBitsOutLinkHLOS_CreateParams,ipcBitsOutHostPrm);
        MULTICH_INIT_STRUCT(IpcBitsInLinkRTOS_CreateParams,ipcBitsInVideoPrm);
        MULTICH_INIT_STRUCT(DecLink_CreateParams, decPrm);
        MULTICH_INIT_STRUCT(IpcFramesOutLinkHLOS_CreateParams ,ipcFramesOutHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams  ,ipcFramesInVpssFromHostPrm);
        for (i = 0; i < VDIS_DEV_MAX;i++)
        {
            MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm[i]);
            MULTICH_INIT_STRUCT(SwMsLink_CreateParams ,swMsPrm[i]);
        }
    
        MULTICH_INIT_STRUCT(MpSclrLink_CreateParams, mpSclrPrm);
        MULTICH_INIT_STRUCT(MpSclrLink_CreateParams, mpSclrSnapshotPrm);
    	MULTICH_INIT_STRUCT(NsfLink_CreateParams,nsfPrm);
    
        MultiCh_detectBoard();
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VPSS,
            SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES,
            NULL,
            0,
            TRUE
            );
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VIDEO,
            SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,
            &systemVid_encDecIvaChMapTbl,
            sizeof(SystemVideo_Ivahd2ChMap_Tbl),
            TRUE
        );
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
        enableGrpx   = FALSE;
    #else
        enableGrpx   = TRUE;
    #endif
    
        tilerEnable  = FALSE;
    
        if (tilerEnable == FALSE)
        {
            /* Disable tiler allocator for this usecase
             * for that tiler memory can be reused for
             * non-tiled allocation
             */
            SystemTiler_disableAllocator();
        }
        else
        {
            SystemTiler_BucketGeometry_t bucketRes;
    
            bucketRes.bucketWidth  = SYSTEM_TILER_ALLOCATOR_BUCKET_WIDTH_DEFAULT;
            bucketRes.bucketHeight = SYSTEM_TILER_ALLOCATOR_BUCKET_HEIGHT_DEFAULT;
            bucketRes.minResolution = SYSTEM_TILER_RESOLUTION_CIF;
            bucketRes.setSingleBucketGeometry = FALSE;
            SystemTiler_setBucketGeometry(&bucketRes);
        }
    
        enableVideoFrameExport = FALSE;
    
        gVdecModuleContext.ipcBitsOutHLOSId = SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0;
        gVdecModuleContext.ipcBitsInRTOSId  = SYSTEM_VIDEO_LINK_ID_IPC_BITS_IN_0;
        gVdecModuleContext.decId            = SYSTEM_LINK_ID_VDEC_0;
    
        gMultiCh_VdecVdisObj.ipcOutVideoId  = SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0;
        gMultiCh_VdecVdisObj.ipcInVpssId    = SYSTEM_VPSS_LINK_ID_IPC_IN_M3_0;
        gMultiCh_VdecVdisObj.dupId          = SYSTEM_VPSS_LINK_ID_DUP_0;
        gMultiCh_VdecVdisObj.mpSclrId       = SYSTEM_LINK_ID_MP_SCLR_INST_0;
        gVdisModuleContext.mpSclrId         = SYSTEM_LINK_ID_MP_SCLR_INST_0;
        gVdisModuleContext.swMsId[0]        = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;
        gMultiCh_VdecVdisObj.snapshotmpSclrId= SYSTEM_LINK_ID_MP_SCLR_INST_1;
    
        gVdisModuleContext.displayId[0]     = SYSTEM_LINK_ID_DISPLAY_0; // ON AND OFF CHIP HDMI
    
    	gMultiCh_VdecVdisObj.decSnapshotDup = SYSTEM_VPSS_LINK_ID_DUP_1;
        gMultiCh_VdecVdisObj.nsfId     		= SYSTEM_LINK_ID_NSF_0;
    
        if (gVsysModuleContext.vsysConfig.numDisplays > 1)
        {
            gVdisModuleContext.swMsId[1]        = SYSTEM_LINK_ID_SW_MS_MULTI_INST_1;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            gVdisModuleContext.displayId[1]     = SYSTEM_LINK_ID_DISPLAY_2; // SDTV
    #else
            gVdisModuleContext.displayId[1]     = SYSTEM_LINK_ID_DISPLAY_1; // OFF CHIP HDMI
    #endif
        }
    
        if (enableVideoFrameExport)
        {
            gMultiCh_VdecVdisObj.mergeId                 = SYSTEM_VPSS_LINK_ID_MERGE_0;
            gVdisModuleContext.ipcFramesOutHostId        = SYSTEM_HOST_LINK_ID_IPC_FRAMES_OUT_0;
            gVdisModuleContext.ipcFramesInVpssFromHostId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_IN_0;
        }
    
        if(enableGrpx)
        {
            // GRPX is enabled in Vdis_start() based on the link ID set here
            gVdisModuleContext.grpxId[0]    = SYSTEM_LINK_ID_GRPX_0;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            gVdisModuleContext.grpxId[1]    = SYSTEM_LINK_ID_INVALID;
    #else
            gVdisModuleContext.grpxId[1]    = SYSTEM_LINK_ID_GRPX_1;
    #endif
        }
    
        gMultiCh_VdecVdisObj.ipcFramesOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_1;
        gMultiCh_VdecVdisObj.ipcFramesInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_FRAMES_IN_0;
        gMultiCh_VdecVdisObj.encId              = SYSTEM_LINK_ID_VENC_0;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoId      = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;
        gMultiCh_VdecVdisObj.ipcBitsInHostId       = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;
        ipcBitsOutHostPrm.baseCreateParams.outQueParams[0].nextLink= gVdecModuleContext.ipcBitsInRTOSId;
        ipcBitsOutHostPrm.baseCreateParams.notifyNextLink       = FALSE;
        ipcBitsOutHostPrm.baseCreateParams.notifyPrevLink       = FALSE;
        ipcBitsOutHostPrm.baseCreateParams.noNotifyMode         = TRUE;
        ipcBitsOutHostPrm.baseCreateParams.numOutQue            = 1;
        ipcBitsOutHostPrm.inQueInfo.numCh                       = gVdecModuleContext.vdecConfig.numChn;
    
        for (i=0; i<ipcBitsOutHostPrm.inQueInfo.numCh; i++)
        {
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].width =
                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoWidth;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].height =
                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoHeight;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].scanFormat =
                SYSTEM_SF_PROGRESSIVE;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].bufType        = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].codingformat   = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].dataFormat     = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].memType        = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startX         = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startY         = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[0]       = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[1]       = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[2]       = 0; // NOT USED
    
            ipcBitsOutHostPrm.maxQueueDepth[i] = MAX_BUFFERING_QUEUE_LEN_PER_CH;
            ipcBitsOutHostPrm.chMaxReqBufSize[i] = 
                    (ipcBitsOutHostPrm.inQueInfo.chInfo[i].width * ipcBitsOutHostPrm.inQueInfo.chInfo[i].height); 
            ipcBitsOutHostPrm.totalBitStreamBufferSize [i] = 
                    (ipcBitsOutHostPrm.chMaxReqBufSize[i] * BIT_BUF_LENGTH_LIMIT_FACTOR_HD);
    
        }
    
        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkId    = gVdecModuleContext.ipcBitsOutHLOSId;
        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        ipcBitsInVideoPrm.baseCreateParams.outQueParams[0].nextLink  = gVdecModuleContext.decId;
        ipcBitsInVideoPrm.baseCreateParams.noNotifyMode              = TRUE;
        ipcBitsInVideoPrm.baseCreateParams.notifyNextLink            = TRUE;
        ipcBitsInVideoPrm.baseCreateParams.notifyPrevLink            = FALSE;
        ipcBitsInVideoPrm.baseCreateParams.numOutQue                 = 1;
    
        for (i=0; i<ipcBitsOutHostPrm.inQueInfo.numCh; i++)
        {
            if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_H264)
                decPrm.chCreateParams[i].format                 = IVIDEO_H264HP;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MPEG4)
                decPrm.chCreateParams[i].format                 = IVIDEO_MPEG4ASP;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MJPEG)
                decPrm.chCreateParams[i].format                 = IVIDEO_MJPEG;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MPEG2)
                decPrm.chCreateParams[i].format                 = IVIDEO_MPEG2HP;
    
            decPrm.chCreateParams[i].numBufPerCh
                             = gVdecModuleContext.vdecConfig.decChannelParams[i].numBufPerCh;
            decPrm.chCreateParams[i].profile                = IH264VDEC_PROFILE_ANY;
            decPrm.chCreateParams[i].displayDelay
                             = gVdecModuleContext.vdecConfig.decChannelParams[i].displayDelay;
            decPrm.chCreateParams[i].dpbBufSizeInFrames = IH264VDEC_DPB_NUMFRAMES_AUTO;
            if (gVdecModuleContext.vdecConfig.decChannelParams[i].fieldPicture)
            {
                OSA_printf("MULTICH_VDEC_VDIS:INFO ChId[%d] configured for field picture\n",i);
                decPrm.chCreateParams[i].processCallLevel   = VDEC_FIELDLEVELPROCESSCALL;
            }
            else
            {
                decPrm.chCreateParams[i].processCallLevel   = VDEC_FRAMELEVELPROCESSCALL;
            }
            decPrm.chCreateParams[i].targetMaxWidth  =
                ipcBitsOutHostPrm.inQueInfo.chInfo[i].width;
    
            decPrm.chCreateParams[i].targetMaxHeight =
                ipcBitsOutHostPrm.inQueInfo.chInfo[i].height;
    
            decPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate =
                gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.frameRate;
    
            decPrm.chCreateParams[i].defaultDynamicParams.targetBitRate =
                gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.targetBitRate;
            if (FALSE == tilerEnable)
            {
            	decPrm.chCreateParams[i].tilerEnable = FALSE;
            }
            else
            {
            	decPrm.chCreateParams[i].tilerEnable = gVdecModuleContext.vdecConfig.decChannelParams[i].tilerEnable;
            }
            decPrm.chCreateParams[i].enableWaterMarking = 
                gVdecModuleContext.vdecConfig.decChannelParams[i].enableWaterMarking;
        }
    
        decPrm.inQueParams.prevLinkId       = gVdecModuleContext.ipcBitsInRTOSId;
        decPrm.inQueParams.prevLinkQueId    = 0;
        decPrm.outQueParams.nextLink        = gMultiCh_VdecVdisObj.ipcOutVideoId;
    
        ipcOutVideoPrm.inQueParams.prevLinkId    = gVdecModuleContext.decId;
        ipcOutVideoPrm.inQueParams.prevLinkQueId = 0;
        ipcOutVideoPrm.outQueParams[0].nextLink     = gMultiCh_VdecVdisObj.ipcInVpssId;
        ipcOutVideoPrm.notifyNextLink            = TRUE;
        ipcOutVideoPrm.notifyPrevLink            = TRUE;
        ipcOutVideoPrm.numOutQue                 = 1;
    
        ipcInVpssPrm.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.ipcOutVideoId;
        ipcInVpssPrm.inQueParams.prevLinkQueId = 0;
        ipcInVpssPrm.notifyNextLink            = TRUE;
        ipcInVpssPrm.notifyPrevLink            = TRUE;
        ipcInVpssPrm.numOutQue                 = 1;
    
        dupSnapshotPrm.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcInVpssId;
        dupSnapshotPrm.inQueParams.prevLinkQueId = 0;
        dupSnapshotPrm.notifyNextLink = TRUE;
        dupSnapshotPrm.numOutQue = 2;
        if (enableVideoFrameExport)
        {
            ipcFramesOutHostPrm.baseCreateParams.noNotifyMode = TRUE;
            ipcFramesOutHostPrm.baseCreateParams.notifyNextLink = FALSE;
            ipcFramesOutHostPrm.baseCreateParams.notifyPrevLink = FALSE;
            ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkId = SYSTEM_LINK_ID_INVALID;
            ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
            ipcFramesOutHostPrm.baseCreateParams.numOutQue = 1;
            ipcFramesOutHostPrm.baseCreateParams.outQueParams[0].nextLink = gVdisModuleContext.ipcFramesInVpssFromHostId;
            MultiCh_setIpcFramesOutInQueInfo(&ipcFramesOutHostPrm.inQueInfo);
    
            ipcFramesInVpssFromHostPrm.baseCreateParams.noNotifyMode = TRUE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.notifyNextLink = TRUE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.notifyPrevLink = FALSE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.inQueParams.prevLinkId = gVdisModuleContext.ipcFramesOutHostId;
            ipcFramesInVpssFromHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
            ipcFramesInVpssFromHostPrm.baseCreateParams.numOutQue = 1;
            ipcFramesInVpssFromHostPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.mergeId;
    
    
            ipcInVpssPrm.outQueParams[0].nextLink     = gMultiCh_VdecVdisObj.mergeId;
    
            mergePrm.numInQue                     = 2;
            mergePrm.inQueParams[0].prevLinkId    = gMultiCh_VdecVdisObj.decSnapshotDup;
            mergePrm.inQueParams[0].prevLinkQueId = 0;
            dupSnapshotPrm.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.mergeId;
            mergePrm.inQueParams[1].prevLinkId    = gVdisModuleContext.ipcFramesInVpssFromHostId;
            mergePrm.inQueParams[1].prevLinkQueId = 0;
    
            mergePrm.outQueParams.nextLink        = gMultiCh_VdecVdisObj.mpSclrId;
            mergePrm.notifyNextLink               = TRUE;
            mpSclrPrm.inQueParams.prevLinkId      = gMultiCh_VdecVdisObj.mergeId;
        }
        else
        {
            mpSclrPrm.inQueParams.prevLinkId        = gMultiCh_VdecVdisObj.decSnapshotDup;
            mpSclrPrm.inQueParams.prevLinkQueId     = 0;
            dupSnapshotPrm.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.mpSclrId;
            ipcInVpssPrm.outQueParams[0].nextLink   = gMultiCh_VdecVdisObj.decSnapshotDup;
    
        }
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
        mpSclrPrm.pathId = MP_SCLR_LINK_SEC0_SC3_VIP0;
    #else
        mpSclrPrm.pathId = MP_SCLR_LINK_SEC1_SC4_VIP1;
    #endif
    
    #if 0
        mpSclrPrm.numCh = 4;
    #else
        mpSclrPrm.numCh = 16;
    
    #endif
        mpSclrSnapshotPrm.pathId = MP_SCLR_LINK_SEC1_SC4_VIP1;
    
    	mpSclrSnapshotPrm.inQueParams.prevLinkId		= gMultiCh_VdecVdisObj.decSnapshotDup;
    	mpSclrSnapshotPrm.inQueParams.prevLinkQueId 	= 1;
    	mpSclrSnapshotPrm.numCh = 16;
    	mpSclrSnapshotPrm.enableLineSkip = FALSE;
    	mpSclrSnapshotPrm.outQueParams.nextLink 	  = gMultiCh_VdecVdisObj.nsfId;
    
        mpSclrPrm.enableLineSkip = FALSE;
    
        mpSclrPrm.outQueParams.nextLink       = gMultiCh_VdecVdisObj.dupId;
        dupPrm.inQueParams.prevLinkId         = gMultiCh_VdecVdisObj.mpSclrId;
    
        dupPrm.inQueParams.prevLinkQueId      = 0;
        dupPrm.numOutQue                      = gVsysModuleContext.vsysConfig.numDisplays;
        dupPrm.outQueParams[0].nextLink       = gVdisModuleContext.swMsId[0];
        dupPrm.outQueParams[1].nextLink       = gVdisModuleContext.swMsId[1];
        dupPrm.notifyNextLink                 = TRUE;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
    
        swMsPrm[0].numSwMsInst = 1;
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
    
        swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].swMsInstStartWin[1]  = 10;
    
        swMsPrm[1].numSwMsInst = 1;
        swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
    
        swMsPrm[1].swMsInstStartWin[0]  = 0;
        swMsPrm[1].swMsInstStartWin[1]  = 10;
    
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableProcessTieWithDisplay = FALSE;
    
        /* We do not require dual output, this free up SC3 scalar */
        swMsPrm[0].includeVipScInDrvPath = FALSE;
        swMsPrm[1].includeVipScInDrvPath = FALSE;
    #else
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
        swMsPrm[0].swMsInstId[1]        = SYSTEM_SW_MS_SC_INST_VIP1_SC;
    
        swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
        swMsPrm[1].swMsInstId[1]        = SYSTEM_SW_MS_SC_INST_VIP0_SC;
    
        swMsPrm[0].numSwMsInst          = 2;
    
        swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].swMsInstStartWin[1]  = 16;
    
        swMsPrm[1].numSwMsInst          = swMsPrm[0].numSwMsInst;
        swMsPrm[1].swMsInstStartWin[0]  = swMsPrm[0].swMsInstStartWin[0];
        swMsPrm[1].swMsInstStartWin[1]  = swMsPrm[0].swMsInstStartWin[1];
    
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableProcessTieWithDisplay = TRUE;
    
    #endif
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
        {
            VDIS_DEV vdDevId = VDIS_DEV_HDMI;
    
            swMsPrm[i].inQueParams.prevLinkId     = gMultiCh_VdecVdisObj.dupId;
            swMsPrm[i].inQueParams.prevLinkQueId  = i;
            swMsPrm[i].outQueParams.nextLink      = gVdisModuleContext.displayId[i];
            swMsPrm[i].numOutBuf                 = MULTICH_NUM_SWMS_MAX_BUFFERS;
    
            /* Disable inQue drop at SwMs as input may arrive very fast in VDEC->VDIS use case */
            swMsPrm[i].maxInputQueLen             = SYSTEM_SW_MS_INVALID_INPUT_QUE_LEN;
            if (i == 0)
            {
                vdDevId = VDIS_DEV_HDMI;
                swMsPrm[i].maxOutRes              = VSYS_STD_1080P_60;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_HDMI].resolution;
            }
            else if (i == 1)
            {
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
                vdDevId = VDIS_DEV_SD;
                swMsPrm[i].maxOutRes              = VSYS_STD_PAL;
                swMsPrm[i].outQueParams.nextLink  = SYSTEM_LINK_ID_DISPLAY_2;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;
    
    #else
                vdDevId = VDIS_DEV_DVO2;
                swMsPrm[i].maxOutRes              = VSYS_STD_1080P_60;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_DVO2].resolution;
    #endif
            }
            /* low cost line skip mode of scaling can be used, when tiler is off */
            if(tilerEnable)
                swMsPrm[i].lineSkipMode           = FALSE;
            else
                swMsPrm[i].lineSkipMode           = TRUE;
    
            swMsPrm[i].enableLayoutGridDraw = gVdisModuleContext.vdisConfig.enableLayoutGridDraw;
    
            MultiCh_swMsGetDefaultLayoutPrm(vdDevId, &swMsPrm[i], FALSE);    /* both from 0-16 chnl */
    
            displayPrm[i].inQueParams[0].prevLinkId    = gVdisModuleContext.swMsId[i];
            displayPrm[i].inQueParams[0].prevLinkQueId = 0;
            displayPrm[i].displayRes                = swMsPrm[i].initOutRes;
            if (i == 1)
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
                            displayPrm[i].displayRes            = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;
    #else
                            displayPrm[i].displayRes            = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_DVO2].resolution;
    #endif
            mulich_vdec_vdis_set_avsync_prm(&gMultiCh_VdecVdisObj.avsyncCfg[i],i,vdDevId);
        }
    
        dupSnapshotPrm.outQueParams[1].nextLink = gMultiCh_VdecVdisObj.snapshotmpSclrId;
    	
        NsfLink_CreateParams_Init(&nsfPrm);
        nsfPrm.bypassNsf = TRUE;
        nsfPrm.inputFrameRate  = 30;
        nsfPrm.outputFrameRate = 30;
        nsfPrm.tilerEnable     = FALSE;
        nsfPrm.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.snapshotmpSclrId;
        nsfPrm.inQueParams.prevLinkQueId = 0;
        nsfPrm.numOutQue = 1;
        nsfPrm.outQueParams[0].nextLink  = gMultiCh_VdecVdisObj.ipcFramesOutVpssId;	
        nsfPrm.numBufsPerCh = 3;
    	
        IpcFramesOutLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm);
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.nsfId;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inputFrameRate  = 30;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.outputFrameRate = 3;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.noNotifyMode    = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.notifyNextLink  = FALSE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.notifyPrevLink  = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.ipcFramesInVideoId;
    
        IpcFramesInLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcFramesInVideoPrm);
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcFramesOutVpssId;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.noNotifyMode = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.notifyPrevLink = FALSE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.notifyNextLink = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.encId;
    
        EncLink_CreateParams_Init(&gMultiCh_VdecVdisObj.encPrm);
    	gMultiCh_VdecVdisObj.encPrm.numBufPerCh[0] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[1] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[2] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[3] = 6;
        gMultiCh_VdecVdisObj.encPrm.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.ipcFramesInVideoId;
        gMultiCh_VdecVdisObj.encPrm.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.encPrm.outQueParams.nextLink     = gMultiCh_VdecVdisObj.ipcBitsOutVideoId;
        mulich_vdec_vdis_set_mjpeg_enc_ch_params(&gMultiCh_VdecVdisObj.encPrm, 0, ipcBitsOutHostPrm.inQueInfo.numCh);
    
        IpcBitsOutLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm);
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.encId;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.numOutQue                 = 1;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink  = gMultiCh_VdecVdisObj.ipcBitsInHostId;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.notifyPrevLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.notifyNextLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.noNotifyMode   = FALSE;
    
    
        IpcBitsInLinkHLOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcBitsInHostPrm);
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcBitsOutVideoId;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.numOutQue = 0;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.outQueParams[0].nextLink = SYSTEM_LINK_ID_INVALID;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.notifyPrevLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.notifyNextLink = FALSE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.noNotifyMode   = FALSE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.cbFxn = gVencModuleContext.callbackFxn.newDataAvailableCb; // register the encode callback function for snapshot
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.cbCtx = gVencModuleContext.callbackArg;                    // register the encode callback context for snapshot
        System_linkCreate(gVdecModuleContext.ipcBitsOutHLOSId,&ipcBitsOutHostPrm,sizeof(ipcBitsOutHostPrm));
        System_linkCreate(gVdecModuleContext.ipcBitsInRTOSId,&ipcBitsInVideoPrm,sizeof(ipcBitsInVideoPrm));
        System_linkCreate(gVdecModuleContext.decId, &decPrm, sizeof(decPrm));
    
        System_linkCreate(gMultiCh_VdecVdisObj.ipcOutVideoId, &ipcOutVideoPrm, sizeof(ipcOutVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcInVpssId  , &ipcInVpssPrm, sizeof(ipcInVpssPrm));
    
        System_linkCreate(gMultiCh_VdecVdisObj.decSnapshotDup,&dupSnapshotPrm,sizeof(dupSnapshotPrm));
        if (enableVideoFrameExport)
        {
            System_linkCreate(gVdisModuleContext.ipcFramesOutHostId     , &ipcFramesOutHostPrm    , sizeof(ipcFramesOutHostPrm));
            System_linkCreate(gVdisModuleContext.ipcFramesInVpssFromHostId     , &ipcFramesInVpssFromHostPrm    , sizeof(ipcFramesInVpssFromHostPrm));
            System_linkCreate(gMultiCh_VdecVdisObj.mergeId,&mergePrm,sizeof(mergePrm));
        }
    
        System_linkCreate(gMultiCh_VdecVdisObj.mpSclrId, &mpSclrPrm, sizeof(mpSclrPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.dupId     , &dupPrm    , sizeof(dupPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.decSnapshotDup, &dupSnapshotPrm    , sizeof(dupSnapshotPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.snapshotmpSclrId, &mpSclrSnapshotPrm, sizeof(mpSclrSnapshotPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.nsfId, &nsfPrm, sizeof(nsfPrm));
    
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
            System_linkCreate(gVdisModuleContext.swMsId[i]  , &swMsPrm[i], sizeof(swMsPrm[i]));
    
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
            System_linkCreate(gVdisModuleContext.displayId[i], &displayPrm[i], sizeof(displayPrm[i]));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcFramesOutVpssId, &gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm, sizeof(gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcFramesInVideoId, &gMultiCh_VdecVdisObj.ipcFramesInVideoPrm, sizeof(gMultiCh_VdecVdisObj.ipcFramesInVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.encId, &gMultiCh_VdecVdisObj.encPrm, sizeof(gMultiCh_VdecVdisObj.encPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcBitsOutVideoId, &gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm, sizeof(gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcBitsInHostId, &gMultiCh_VdecVdisObj.ipcBitsInHostPrm, sizeof(gMultiCh_VdecVdisObj.ipcBitsInHostPrm));
    
        MultiCh_memPrintHeapStatus();
        gMultiCh_VdecVdisObj.enableVideoFrameExport = enableVideoFrameExport;
        {
            MultiCh_setDec2DispMap(VDIS_DEV_HDMI,gVdecModuleContext.vdecConfig.numChn,0,0);
            #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            MultiCh_setDec2DispMap(VDIS_DEV_SD,gVdecModuleContext.vdecConfig.numChn,0,0);
            #else
            MultiCh_setDec2DispMap(VDIS_DEV_HDCOMP,gVdecModuleContext.vdecConfig.numChn,0,0);
            #endif
       }
    
    }
    
    Void MultiCh_deleteVdecVdis()
    {
        Bool tilerEnable;
    
        tilerEnable  = FALSE;
    
        /* delete can be done in any order */
        Vdec_delete();
        Vdis_delete();
    
        if (gMultiCh_VdecVdisObj.enableVideoFrameExport)
        {
            System_linkDelete(gMultiCh_VdecVdisObj.mergeId);
        }
    
        System_linkDelete(gMultiCh_VdecVdisObj.mpSclrId);
        System_linkDelete(gMultiCh_VdecVdisObj.dupId);
        System_linkDelete(gMultiCh_VdecVdisObj.ipcOutVideoId );
        System_linkDelete(gMultiCh_VdecVdisObj.ipcInVpssId );
    
        System_linkDelete(gMultiCh_VdecVdisObj.decSnapshotDup);
        System_linkDelete(gMultiCh_VdecVdisObj.snapshotmpSclrId);
        System_linkDelete(gMultiCh_VdecVdisObj.nsfId);
    
        /* Print the HWI, SWI and all tasks load */
        /* Reset the accumulated timer ticks */
        MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE);
    
    
        if (tilerEnable == FALSE)
        {
            /* Disable tiler allocator for this usecase
             * for that tiler memory can be reused for
             * non-tiled allocation
             */
            SystemTiler_enableAllocator();
        }
        else
        {
            SystemTiler_BucketGeometry_t bucketRes;
    
            bucketRes.minResolution = SYSTEM_TILER_RESOLUTION_CIF;
            bucketRes.setSingleBucketGeometry = TRUE;
            SystemTiler_setBucketGeometry(&bucketRes);
        }
    
    }
    

     

  • Your link connections are wrong.You should dup the output of MpSclr and connect it to NSF link .You don't need dupSnapShot link. Just set number of output queues to dupLink after Mpsclr link to 3 and connect output queue 2 to NsfLink. Leave SWMS connection to queue 0 and queue 1 unmodified.

    Data flow should be

    MpSclr -> Dup ->Swms0

                                SwMs1

                                Nsf -> ipcOutM3 -> ipcInM3 -> encLink.

    You can refer below post where slightly different data flow is implemented:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/309305/1076159.aspx#1076159

     

  • I do as you suggest,Still pure in question.

    [m3vpss ] MP_SCLR: chID[11]Res[1776]
    [m3vpss ] MP_SCLR: chID[12]Res[1776]
    [m3vpss ] MP_SCLR: chID[13]Res[1776]
    [m3vpss ] MP_SCLR: chID[14]Res[1776]
    [m3vpss ] MP_SCLR: chID[15]Res[1776]
    [m3vpss ] 24187: MP_SCLR: Create Done !!!
    [m3vpss ] 24191: DUP: 0: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24191: DUP: 1: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24191: DUP: 2: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24191: DUP: 3: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24191: DUP: 4: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24191: DUP: 5: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24191: DUP: 6: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24191: DUP: 7: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24192: DUP: 8: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24192: DUP: 9: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24192: DUP: 10: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24192: DUP: 11: Format: PROGRESSIVE, 1920 x 1080
    [m3vpss ] 24193: DUP : Create Done !!!
    [m3vpss ] 24193: NSF: Create in progress !!!
    [m3vpss ] 24371: Assertion @ Line: 218 in links_m3vpss/nsf/nsfLink_drv.c: pObj->fvidHandleNsf != NULL : failed !!!
    root@dm816x:/opt/dvr_rdk/ti816x# VPSS_FVID2: contrl event 0x10040018 timeout
    VPSS_DCTRL: failed to get node input status
    VPSS_GRPX : failed to set grpx0 nodes
    ti81xxfb ti81xxfb: fvid2 create failed.
    QScreenLinuxFb::connect: Connection timed out

    Looking forward to your advice!

  • /*******************************************************************************
     *                                                                             *
     * Copyright (c) 2009 Texas Instruments Incorporated - http://www.ti.com/      *
     *                        ALL RIGHTS RESERVED                                  *
     *                                                                             *
     ******************************************************************************/
    /*  ========================= TI_816X_BUILD case ==============================
                              |
                            IPC_BITS_OUT_A8 (BitStream)
                              |
                            IPC_BITS_IN (Video)
                              |
                            DEC (YUV420SP)
                              |
                            IPC_OUT (Video)
                              |
                            IPC_IN (Vpss)
                              |   (32 D1 + 10 720P + 6 1080P)
                             DUP
                              |   +----------+------ |
                            MP_SCLR (Vpss)             MP_SCLR                                                 
                              |                                 |
                             DUP                             VENC(Video)
                   (48CH)    | |    (48CH)
             +---------------+ +-------------+
             |                               |
             |                               |
          SW Mosaic                       SW Mosaic
         (SC5 SC1 YUV422I)                (SC4 SC2 YUV422I)
            |  |                             |  |
            |  |                             |  |
           (DDR)(422I)                      (DDR)(422I)
              |                               |
      GRPX0   |                      GRPX1    |
         |    |                          |    |
         On-Chip HDMI                    Off-Chip HDMI
           1080p60                        1080p60
    */
    
    /* ========================= TI_814X_BUILD case ==============================
                              |
                            IPC_BITS_OUT_A8 (BitStream)
                              |
                            IPC_BITS_IN (Video)
                              |
                            DEC (YUV420SP)
                              |
                            IPC_OUT (Video)
                              |
                            IPC_IN (Vpss)
                              |   (16 channels)
                            MP_SCLR (Vpss)
                              |
                             DUP
                   (16CH)    | |    (16CH)
             +---------------+ +-------------+
             |                               |
             |                               |
          SW Mosaic                       SW Mosaic
         (SC5 YUV422I)                (SC5 YUV422I)
            |  |                             |  |
            |  |                             |  |
           (DDR)(422I)                      (DDR)(422I)
              |                               |
      GRPX0   |----Tied---|                   |
         |    |           |                   |
         On-Chip HDMI  Off-Chip HDMI         SDTV
           1080p60       1080p60
    */
    
    #include "mcfw/src_linux/mcfw_api/usecases/multich_common.h"
    #include "mcfw/src_linux/mcfw_api/usecases/multich_ipcbits.h"
    #include "mcfw/interfaces/link_api/system_tiler.h"
    #include "mcfw/interfaces/link_api/avsync_hlos.h"
    
    /* =============================================================================
     * Externs
     * =============================================================================
     */
    
    
    /* =============================================================================
     * Use case code
     * =============================================================================
     */
    
    
    
    #define MAX_DEC_OUT_FRAMES_PER_CH                           (5)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_NUM_CHANNELS       (16)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH        (720)
    #define MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_HEIGHT       (480)
    #define MULTICH_NUM_SWMS_MAX_BUFFERS                        (7)
    
    #define     MAX_BUFFERING_QUEUE_LEN_PER_CH           (50)
    
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_CIF           (10)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_SD            (6)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_HD            (5)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_720P          (4)
    #define     BIT_BUF_LENGTH_LIMIT_FACTOR_HMP           (4)
    
    
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
    static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 0,
            .EncChList = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 16,
            .DecChList = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15},
        },
    };
    #define NUM_STATIC_CHANNELS   (6)
    #else
    /*
    Max channels per IVA-HD MUST be < 16,
    i.e total number of channels for decode can be 48.
    
    Example CH allocation for SD+HD,
    
    32CH SD    :  0 to 31
     6CH 1080P : 32 to 38
    10CH 720P  : 39 to 48
    
    */
    static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl =
    {
        .isPopulated = 1,
        .ivaMap[0] =
        {
            .EncNumCh  = 5,
            .EncChList = {0, 3, 6, 9, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 17,
            .DecChList = {   0,  3,  6,  9, 12, 15, 18, 21,
                            24, 27, 30, 33, 36, 39, 42, 45,
                            48
                         },
        },
        .ivaMap[1] =
        {
            .EncNumCh  = 5,
            .EncChList = {1, 4, 7, 10, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 17,
            .DecChList = {   1,  4,  7, 10, 13, 16, 19, 22,
                            25, 28, 31, 34, 37, 40, 43, 46,
                            49
                         },
        },
        .ivaMap[2] =
        {
            .EncNumCh  = 6,
            .EncChList = {2, 5, 8, 11, 14, 15, 0, 0, 0, 0, 0, 0, 0, 0 , 0, 0},
    
            .DecNumCh  = 16,
            .DecChList = {   2,  5,  8, 11, 14, 17, 20, 23,
                            26, 29, 32, 35, 38, 41, 44, 47
                         },
        },
    };
    #define NUM_STATIC_CHANNELS   (8)
    #endif
    
    typedef struct {
    
        //UInt32 dupId;
        UInt32 ipcOutVideoId;
        UInt32 ipcInVpssId;
        UInt32 mergeId;
        Bool   enableVideoFrameExport;
        AvsyncLink_LinkSynchConfigParams   avsyncCfg[VDIS_DEV_MAX];
        UInt32 mpSclrId;	
        //UInt32 snapshotmpSclrId;
        UInt32 decSnapshotDup;
    	UInt32 nsfId;
        UInt32 ipcFramesOutVpssId;
        IpcFramesOutLinkRTOS_CreateParams ipcFramesOutVpssPrm;
        UInt32 ipcFramesInVideoId;
        IpcFramesInLinkRTOS_CreateParams ipcFramesInVideoPrm;
        UInt32 encId;
        EncLink_CreateParams encPrm;
        UInt32 ipcBitsOutVideoId;
        IpcBitsOutLinkRTOS_CreateParams ipcBitsOutVideoPrm;
        UInt32 ipcBitsInHostId;
        IpcBitsInLinkHLOS_CreateParams ipcBitsInHostPrm;
    } MultiCh_VdecVdisObj;
    
    MultiCh_VdecVdisObj gMultiCh_VdecVdisObj;
    
    static Void MultiCh_setIpcFramesOutInQueInfo(System_LinkQueInfo *inQueInfo)
    {
        Int i;
    
        inQueInfo->numCh = MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_NUM_CHANNELS;
        for (i = 0; i < inQueInfo->numCh; i++)
        {
            inQueInfo->chInfo[i].bufType = SYSTEM_BUF_TYPE_VIDFRAME;
            inQueInfo->chInfo[i].dataFormat = SYSTEM_DF_YUV422I_YUYV;
            inQueInfo->chInfo[i].memType    = SYSTEM_MT_NONTILEDMEM;
            inQueInfo->chInfo[i].scanFormat = SYSTEM_SF_PROGRESSIVE;
            inQueInfo->chInfo[i].startX     = 0;
            inQueInfo->chInfo[i].startY     = 0;
            inQueInfo->chInfo[i].width      =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH;
            inQueInfo->chInfo[i].height     =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_HEIGHT;
            inQueInfo->chInfo[i].pitch[0]   =
                       MULTICH_VDEC_VDIS_IPCFRAMEEXPORT_FRAME_WIDTH * 2;
            inQueInfo->chInfo[i].pitch[1]   = 0;
            inQueInfo->chInfo[i].pitch[2]   = 0;
        }
    }
    
    static
    Void mulich_vdec_vdis_set_avsync_vidque_prm(Avsync_SynchConfigParams *queCfg,
                                                Int chnum,
                                                UInt32 avsStartChNum,
                                                UInt32 avsEndChNum,
                                                VDIS_DEV vdDevId)
    {
        queCfg->chNum = chnum;
        queCfg->audioPresent = FALSE;
        if ((queCfg->chNum >= avsStartChNum)
            &&
            (queCfg->chNum <= avsEndChNum)
            &&
            (gVsysModuleContext.vsysConfig.enableAVsync))
        {
            queCfg->avsyncEnable = TRUE;
        }
        else
        {
            queCfg->avsyncEnable = FALSE;
        }
    
        queCfg->clkAdjustPolicy.refClkType = AVSYNC_REFCLKADJUST_NONE;
        queCfg->clkAdjustPolicy.clkAdjustLead = AVSYNC_VIDEO_TIMEBASESHIFT_MAX_LEAD_MS;
        queCfg->clkAdjustPolicy.clkAdjustLag  = AVSYNC_VIDEO_TIMEBASESHIFT_MAX_LAG_MS;
        queCfg->vidSynchPolicy.maxReplayLead  = AVSYNC_VIDEO_FUTURE_FRAME_DROP_THRESHOLD_MS;
        queCfg->vidSynchPolicy.playMaxLag  = 180;
        queCfg->vidSynchPolicy.playMaxLead = 0;
        queCfg->vidSynchPolicy.doMarginScaling = FALSE;
        queCfg->playTimerStartTimeout = 0;
        queCfg->playStartMode = AVSYNC_PLAYBACK_START_MODE_WAITSYNCH;
        queCfg->ptsInitMode   = AVSYNC_PTS_INIT_MODE_APP;
    }
    
    static
    Void mulich_vdec_vdis_set_avsync_prm(AvsyncLink_LinkSynchConfigParams *avsyncPrm,
                                         UInt32 swMsIdx,
                                         VDIS_DEV vdDevId)
    {
        Int i;
        Int32 status;
    
        Vdis_getAvsyncConfig(vdDevId,avsyncPrm);
        avsyncPrm->displayLinkID        = Vdis_getDisplayId(vdDevId);
        avsyncPrm->videoSynchLinkID = gVdisModuleContext.swMsId[swMsIdx];
        avsyncPrm->numCh            = gVdecModuleContext.vdecConfig.numChn;
        avsyncPrm->syncMasterChnum =  AVSYNC_INVALID_CHNUM;
        for (i = 0; i < avsyncPrm->numCh;i++)
        {
            mulich_vdec_vdis_set_avsync_vidque_prm(&avsyncPrm->queCfg[i],
                                                   i,
                                                   0,
                                                   (0 + gVdecModuleContext.vdecConfig.numChn),
                                                   vdDevId);
        }
        if (0 == swMsIdx)
        {
            Vdis_setAvsyncConfig(VDIS_DEV_HDMI,avsyncPrm);
        }
        else
        {
            Vdis_setAvsyncConfig(VDIS_DEV_SD,avsyncPrm);
        }
    
        status = Avsync_configSyncConfigInfo(avsyncPrm);
        OSA_assert(status == 0);
    }
    
    static Void mulich_vdec_vdis_set_mjpeg_enc_ch_params (EncLink_CreateParams *encPrm, Int32 startChNum, Int32 endChNum)
    {
        Int32 i;
    
        EncLink_ChCreateParams *pLinkChPrm;
        EncLink_ChDynamicParams *pLinkDynPrm;
        VENC_CHN_DYNAMIC_PARAM_S *pDynPrm;
        VENC_CHN_PARAMS_S *pChPrm;
    	
        printf ("----------------endChNum=%d\n",endChNum);
        for (i=startChNum; i<endChNum; i++)
        {
            pLinkChPrm  = &encPrm->chCreateParams[i];
            pLinkDynPrm = &pLinkChPrm->defaultDynamicParams;
    
            pChPrm      = &gVencModuleContext.vencConfig.encChannelParams[i];
            pDynPrm     = &pChPrm->dynamicParam;
    
            pLinkChPrm->format                 = IVIDEO_MJPEG;
            pLinkChPrm->profile                = 0;
            pLinkChPrm->dataLayout             = VCODEC_FIELD_SEPARATED;
            pLinkChPrm->fieldMergeEncodeEnable = FALSE;
            pLinkChPrm->enableAnalyticinfo     = 0;
            pLinkChPrm->enableWaterMarking     = 0;
            pLinkChPrm->maxBitRate             = 0;
            pLinkChPrm->encodingPreset         = 0;
            pLinkChPrm->rateControlPreset      = 0;
            pLinkChPrm->enableSVCExtensionFlag = 0;
            pLinkChPrm->numTemporalLayer       = 0;
    
            pLinkDynPrm->intraFrameInterval    = 0;
            pLinkDynPrm->targetBitRate         = 100*1000;
            pLinkDynPrm->interFrameInterval    = 0;
            pLinkDynPrm->mvAccuracy            = 0;
            pLinkDynPrm->inputFrameRate        = pDynPrm->inputFrameRate;
            pLinkDynPrm->qpMin                 = 0;
            pLinkDynPrm->qpMax                 = 0;
            pLinkDynPrm->qpInit                = -1;
            pLinkDynPrm->vbrDuration           = 0;
            pLinkDynPrm->vbrSensitivity        = 0;
        }
    }
    Void MultiCh_createVdecVdis()
    {
        IpcBitsOutLinkHLOS_CreateParams   ipcBitsOutHostPrm;
        IpcBitsInLinkRTOS_CreateParams    ipcBitsInVideoPrm;
        DecLink_CreateParams        decPrm;
        IpcLink_CreateParams        ipcOutVideoPrm;
        IpcLink_CreateParams        ipcInVpssPrm;
        DupLink_CreateParams        /*dupPrm,*/dupSnapshotPrm;
        static SwMsLink_CreateParams       swMsPrm[VDIS_DEV_MAX];
        DisplayLink_CreateParams    displayPrm[VDIS_DEV_MAX];
        IpcFramesOutLinkHLOS_CreateParams  ipcFramesOutHostPrm;
        IpcFramesInLinkRTOS_CreateParams   ipcFramesInVpssFromHostPrm;
        MergeLink_CreateParams             mergePrm;
        MpSclrLink_CreateParams            mpSclrPrm;
        //MpSclrLink_CreateParams            mpSclrSnapshotPrm;
        NsfLink_CreateParams            nsfPrm;
    
        UInt32 i;
        UInt32 enableGrpx;
        Bool tilerEnable;
        Bool enableVideoFrameExport;
    
        MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcInVpssPrm);
        MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcOutVideoPrm);
        MULTICH_INIT_STRUCT(IpcBitsOutLinkHLOS_CreateParams,ipcBitsOutHostPrm);
        MULTICH_INIT_STRUCT(IpcBitsInLinkRTOS_CreateParams,ipcBitsInVideoPrm);
        MULTICH_INIT_STRUCT(DecLink_CreateParams, decPrm);
        MULTICH_INIT_STRUCT(IpcFramesOutLinkHLOS_CreateParams ,ipcFramesOutHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams  ,ipcFramesInVpssFromHostPrm);
        for (i = 0; i < VDIS_DEV_MAX;i++)
        {
            MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm[i]);
            MULTICH_INIT_STRUCT(SwMsLink_CreateParams ,swMsPrm[i]);
        }
    
        MULTICH_INIT_STRUCT(MpSclrLink_CreateParams, mpSclrPrm);
        //MULTICH_INIT_STRUCT(MpSclrLink_CreateParams, mpSclrSnapshotPrm);
    
        MultiCh_detectBoard();
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VPSS,
            SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES,
            NULL,
            0,
            TRUE
            );
    
        System_linkControl(
            SYSTEM_LINK_ID_M3VIDEO,
            SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,
            &systemVid_encDecIvaChMapTbl,
            sizeof(SystemVideo_Ivahd2ChMap_Tbl),
            TRUE
        );
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
        enableGrpx   = FALSE;
    #else
        enableGrpx   = TRUE;
    #endif
    
        tilerEnable  = FALSE;
    
        if (tilerEnable == FALSE)
        {
            /* Disable tiler allocator for this usecase
             * for that tiler memory can be reused for
             * non-tiled allocation
             */
            SystemTiler_disableAllocator();
        }
        else
        {
            SystemTiler_BucketGeometry_t bucketRes;
    
            bucketRes.bucketWidth  = SYSTEM_TILER_ALLOCATOR_BUCKET_WIDTH_DEFAULT;
            bucketRes.bucketHeight = SYSTEM_TILER_ALLOCATOR_BUCKET_HEIGHT_DEFAULT;
            bucketRes.minResolution = SYSTEM_TILER_RESOLUTION_CIF;
            bucketRes.setSingleBucketGeometry = FALSE;
            SystemTiler_setBucketGeometry(&bucketRes);
        }
    
        enableVideoFrameExport = FALSE;
    
        gVdecModuleContext.ipcBitsOutHLOSId = SYSTEM_HOST_LINK_ID_IPC_BITS_OUT_0;
        gVdecModuleContext.ipcBitsInRTOSId  = SYSTEM_VIDEO_LINK_ID_IPC_BITS_IN_0;
        gVdecModuleContext.decId            = SYSTEM_LINK_ID_VDEC_0;
    
        gMultiCh_VdecVdisObj.ipcOutVideoId  = SYSTEM_VIDEO_LINK_ID_IPC_OUT_M3_0;
        gMultiCh_VdecVdisObj.ipcInVpssId    = SYSTEM_VPSS_LINK_ID_IPC_IN_M3_0;
        //gMultiCh_VdecVdisObj.dupId          = SYSTEM_VPSS_LINK_ID_DUP_0;
        gMultiCh_VdecVdisObj.mpSclrId       = SYSTEM_LINK_ID_MP_SCLR_INST_0;
        gVdisModuleContext.mpSclrId         = SYSTEM_LINK_ID_MP_SCLR_INST_0;
        gVdisModuleContext.swMsId[0]        = SYSTEM_LINK_ID_SW_MS_MULTI_INST_0;
        //gMultiCh_VdecVdisObj.snapshotmpSclrId= SYSTEM_LINK_ID_MP_SCLR_INST_1;
    
        gVdisModuleContext.displayId[0]     = SYSTEM_LINK_ID_DISPLAY_0; // ON AND OFF CHIP HDMI
    
    	gMultiCh_VdecVdisObj.decSnapshotDup = SYSTEM_VPSS_LINK_ID_DUP_0;
        gMultiCh_VdecVdisObj.nsfId     		= SYSTEM_LINK_ID_NSF_0;
    
        if (gVsysModuleContext.vsysConfig.numDisplays > 1)
        {
            gVdisModuleContext.swMsId[1]        = SYSTEM_LINK_ID_SW_MS_MULTI_INST_1;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            gVdisModuleContext.displayId[1]     = SYSTEM_LINK_ID_DISPLAY_2; // SDTV
    #else
            gVdisModuleContext.displayId[1]     = SYSTEM_LINK_ID_DISPLAY_1; // OFF CHIP HDMI
    #endif
        }
    
        if (enableVideoFrameExport)
        {
            gMultiCh_VdecVdisObj.mergeId                 = SYSTEM_VPSS_LINK_ID_MERGE_0;
            gVdisModuleContext.ipcFramesOutHostId        = SYSTEM_HOST_LINK_ID_IPC_FRAMES_OUT_0;
            gVdisModuleContext.ipcFramesInVpssFromHostId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_IN_0;
        }
    
        if(enableGrpx)
        {
            // GRPX is enabled in Vdis_start() based on the link ID set here
            gVdisModuleContext.grpxId[0]    = SYSTEM_LINK_ID_GRPX_0;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            gVdisModuleContext.grpxId[1]    = SYSTEM_LINK_ID_INVALID;
    #else
            gVdisModuleContext.grpxId[1]    = SYSTEM_LINK_ID_GRPX_1;
    #endif
        }
    
        gMultiCh_VdecVdisObj.ipcFramesOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_1;
        gMultiCh_VdecVdisObj.ipcFramesInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_FRAMES_IN_0;
        gMultiCh_VdecVdisObj.encId              = SYSTEM_LINK_ID_VENC_0;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoId      = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;
        gMultiCh_VdecVdisObj.ipcBitsInHostId       = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;
        ipcBitsOutHostPrm.baseCreateParams.outQueParams[0].nextLink= gVdecModuleContext.ipcBitsInRTOSId;
        ipcBitsOutHostPrm.baseCreateParams.notifyNextLink       = FALSE;
        ipcBitsOutHostPrm.baseCreateParams.notifyPrevLink       = FALSE;
        ipcBitsOutHostPrm.baseCreateParams.noNotifyMode         = TRUE;
        ipcBitsOutHostPrm.baseCreateParams.numOutQue            = 1;
        ipcBitsOutHostPrm.inQueInfo.numCh                       = gVdecModuleContext.vdecConfig.numChn;
    
        for (i=0; i<ipcBitsOutHostPrm.inQueInfo.numCh; i++)
        {
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].width =
                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoWidth;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].height =
                gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoHeight;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].scanFormat =
                SYSTEM_SF_PROGRESSIVE;
    
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].bufType        = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].codingformat   = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].dataFormat     = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].memType        = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startX         = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].startY         = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[0]       = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[1]       = 0; // NOT USED
            ipcBitsOutHostPrm.inQueInfo.chInfo[i].pitch[2]       = 0; // NOT USED
    
            ipcBitsOutHostPrm.maxQueueDepth[i] = MAX_BUFFERING_QUEUE_LEN_PER_CH;
            ipcBitsOutHostPrm.chMaxReqBufSize[i] = 
                    (ipcBitsOutHostPrm.inQueInfo.chInfo[i].width * ipcBitsOutHostPrm.inQueInfo.chInfo[i].height); 
            ipcBitsOutHostPrm.totalBitStreamBufferSize [i] = 
                    (ipcBitsOutHostPrm.chMaxReqBufSize[i] * BIT_BUF_LENGTH_LIMIT_FACTOR_HD);
    
        }
    
        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkId    = gVdecModuleContext.ipcBitsOutHLOSId;
        ipcBitsInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        ipcBitsInVideoPrm.baseCreateParams.outQueParams[0].nextLink  = gVdecModuleContext.decId;
        ipcBitsInVideoPrm.baseCreateParams.noNotifyMode              = TRUE;
        ipcBitsInVideoPrm.baseCreateParams.notifyNextLink            = TRUE;
        ipcBitsInVideoPrm.baseCreateParams.notifyPrevLink            = FALSE;
        ipcBitsInVideoPrm.baseCreateParams.numOutQue                 = 1;
    
        for (i=0; i<ipcBitsOutHostPrm.inQueInfo.numCh; i++)
        {
            if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_H264)
                decPrm.chCreateParams[i].format                 = IVIDEO_H264HP;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MPEG4)
                decPrm.chCreateParams[i].format                 = IVIDEO_MPEG4ASP;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MJPEG)
                decPrm.chCreateParams[i].format                 = IVIDEO_MJPEG;
            else if(gVdecModuleContext.vdecConfig.decChannelParams[i].isCodec == VDEC_CHN_MPEG2)
                decPrm.chCreateParams[i].format                 = IVIDEO_MPEG2HP;
    
            decPrm.chCreateParams[i].numBufPerCh
                             = gVdecModuleContext.vdecConfig.decChannelParams[i].numBufPerCh;
            decPrm.chCreateParams[i].profile                = IH264VDEC_PROFILE_ANY;
            decPrm.chCreateParams[i].displayDelay
                             = gVdecModuleContext.vdecConfig.decChannelParams[i].displayDelay;
            decPrm.chCreateParams[i].dpbBufSizeInFrames = IH264VDEC_DPB_NUMFRAMES_AUTO;
            if (gVdecModuleContext.vdecConfig.decChannelParams[i].fieldPicture)
            {
                OSA_printf("MULTICH_VDEC_VDIS:INFO ChId[%d] configured for field picture\n",i);
                decPrm.chCreateParams[i].processCallLevel   = VDEC_FIELDLEVELPROCESSCALL;
            }
            else
            {
                decPrm.chCreateParams[i].processCallLevel   = VDEC_FRAMELEVELPROCESSCALL;
            }
            decPrm.chCreateParams[i].targetMaxWidth  =
                ipcBitsOutHostPrm.inQueInfo.chInfo[i].width;
    
            decPrm.chCreateParams[i].targetMaxHeight =
                ipcBitsOutHostPrm.inQueInfo.chInfo[i].height;
    
            decPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate =
                gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.frameRate;
    
            decPrm.chCreateParams[i].defaultDynamicParams.targetBitRate =
                gVdecModuleContext.vdecConfig.decChannelParams[i].dynamicParam.targetBitRate;
            if (FALSE == tilerEnable)
            {
            	decPrm.chCreateParams[i].tilerEnable = FALSE;
            }
            else
            {
            	decPrm.chCreateParams[i].tilerEnable = gVdecModuleContext.vdecConfig.decChannelParams[i].tilerEnable;
            }
            decPrm.chCreateParams[i].enableWaterMarking = 
                gVdecModuleContext.vdecConfig.decChannelParams[i].enableWaterMarking;
        }
    
        decPrm.inQueParams.prevLinkId       = gVdecModuleContext.ipcBitsInRTOSId;
        decPrm.inQueParams.prevLinkQueId    = 0;
        decPrm.outQueParams.nextLink        = gMultiCh_VdecVdisObj.ipcOutVideoId;
    
        ipcOutVideoPrm.inQueParams.prevLinkId    = gVdecModuleContext.decId;
        ipcOutVideoPrm.inQueParams.prevLinkQueId = 0;
        ipcOutVideoPrm.outQueParams[0].nextLink     = gMultiCh_VdecVdisObj.ipcInVpssId;
        ipcOutVideoPrm.notifyNextLink            = TRUE;
        ipcOutVideoPrm.notifyPrevLink            = TRUE;
        ipcOutVideoPrm.numOutQue                 = 1;
    
        ipcInVpssPrm.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.ipcOutVideoId;
        ipcInVpssPrm.inQueParams.prevLinkQueId = 0;
        ipcInVpssPrm.notifyNextLink            = TRUE;
        ipcInVpssPrm.notifyPrevLink            = TRUE;
        ipcInVpssPrm.numOutQue                 = 1;
    
        if (enableVideoFrameExport)
        {
            ipcFramesOutHostPrm.baseCreateParams.noNotifyMode = TRUE;
            ipcFramesOutHostPrm.baseCreateParams.notifyNextLink = FALSE;
            ipcFramesOutHostPrm.baseCreateParams.notifyPrevLink = FALSE;
            ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkId = SYSTEM_LINK_ID_INVALID;
            ipcFramesOutHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
            ipcFramesOutHostPrm.baseCreateParams.numOutQue = 1;
            ipcFramesOutHostPrm.baseCreateParams.outQueParams[0].nextLink = gVdisModuleContext.ipcFramesInVpssFromHostId;
            MultiCh_setIpcFramesOutInQueInfo(&ipcFramesOutHostPrm.inQueInfo);
    
            ipcFramesInVpssFromHostPrm.baseCreateParams.noNotifyMode = TRUE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.notifyNextLink = TRUE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.notifyPrevLink = FALSE;
            ipcFramesInVpssFromHostPrm.baseCreateParams.inQueParams.prevLinkId = gVdisModuleContext.ipcFramesOutHostId;
            ipcFramesInVpssFromHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
            ipcFramesInVpssFromHostPrm.baseCreateParams.numOutQue = 1;
            ipcFramesInVpssFromHostPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.mergeId;
    
    
            ipcInVpssPrm.outQueParams[0].nextLink     = gMultiCh_VdecVdisObj.mergeId;
    
            mergePrm.numInQue                     = 2;
            mergePrm.inQueParams[0].prevLinkId    = gMultiCh_VdecVdisObj.ipcInVpssId;
            mergePrm.inQueParams[0].prevLinkQueId = 0;
            mergePrm.inQueParams[1].prevLinkId    = gVdisModuleContext.ipcFramesInVpssFromHostId;
            mergePrm.inQueParams[1].prevLinkQueId = 0;
    
            mergePrm.outQueParams.nextLink        = gMultiCh_VdecVdisObj.mpSclrId;
            mergePrm.notifyNextLink               = TRUE;
            mpSclrPrm.inQueParams.prevLinkId      = gMultiCh_VdecVdisObj.mergeId;
        }
        else
        {
            mpSclrPrm.inQueParams.prevLinkId        = gMultiCh_VdecVdisObj.ipcInVpssId;
            mpSclrPrm.inQueParams.prevLinkQueId     = 0;
            ipcInVpssPrm.outQueParams[0].nextLink   = gMultiCh_VdecVdisObj.mpSclrId;
    
        }
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
        mpSclrPrm.pathId = MP_SCLR_LINK_SEC0_SC3_VIP0;
    #else
        mpSclrPrm.pathId = MP_SCLR_LINK_SEC1_SC4_VIP1;
    #endif
    
    #if 0
        mpSclrPrm.numCh = 4;
    #else
        mpSclrPrm.numCh = 16;
    
    #endif
    /*
        mpSclrSnapshotPrm.pathId = MP_SCLR_LINK_SEC1_SC4_VIP1;
    
    	mpSclrSnapshotPrm.inQueParams.prevLinkId		= gMultiCh_VdecVdisObj.decSnapshotDup;
    	mpSclrSnapshotPrm.inQueParams.prevLinkQueId 	= 1;
    	mpSclrSnapshotPrm.numCh = 16;
    	mpSclrSnapshotPrm.enableLineSkip = FALSE;
    	mpSclrSnapshotPrm.outQueParams.nextLink 	  = SYSTEM_LINK_ID_INVALID;//gMultiCh_VdecVdisObj.ipcFramesOutVpssId;	
    */
        mpSclrPrm.enableLineSkip = FALSE;
    
        mpSclrPrm.outQueParams.nextLink       = gMultiCh_VdecVdisObj.decSnapshotDup;
        //dupPrm.inQueParams.prevLinkId         = gMultiCh_VdecVdisObj.decSnapshotDup;
    
        //dupPrm.inQueParams.prevLinkQueId      = 0;
        //dupPrm.numOutQue                      = gVsysModuleContext.vsysConfig.numDisplays;
        
        dupSnapshotPrm.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.mpSclrId;
        dupSnapshotPrm.inQueParams.prevLinkQueId = 0;
        dupSnapshotPrm.notifyNextLink = TRUE;
        dupSnapshotPrm.numOutQue = 3;
        dupSnapshotPrm.outQueParams[0].nextLink       = gVdisModuleContext.swMsId[0];
        dupSnapshotPrm.outQueParams[1].nextLink       = gVdisModuleContext.swMsId[1];
        dupSnapshotPrm.outQueParams[2].nextLink 	  = gMultiCh_VdecVdisObj.nsfId;
        //dupSnapshotPrm.notifyNextLink                 = TRUE;
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
    
        swMsPrm[0].numSwMsInst = 1;
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
    
        swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].swMsInstStartWin[1]  = 10;
    
        swMsPrm[1].numSwMsInst = 1;
        swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
    
        swMsPrm[1].swMsInstStartWin[0]  = 0;
        swMsPrm[1].swMsInstStartWin[1]  = 10;
    
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableProcessTieWithDisplay = FALSE;
    
        /* We do not require dual output, this free up SC3 scalar */
        swMsPrm[0].includeVipScInDrvPath = FALSE;
        swMsPrm[1].includeVipScInDrvPath = FALSE;
    #else
        swMsPrm[0].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEI_SC_NO_DEI;
        swMsPrm[0].swMsInstId[1]        = SYSTEM_SW_MS_SC_INST_VIP1_SC;
    
        swMsPrm[1].swMsInstId[0]        = SYSTEM_SW_MS_SC_INST_DEIHQ_SC_NO_DEI;
        swMsPrm[1].swMsInstId[1]        = SYSTEM_SW_MS_SC_INST_VIP0_SC;
    
        swMsPrm[0].numSwMsInst          = 2;
    
        swMsPrm[0].swMsInstStartWin[0]  = 0;
        swMsPrm[0].swMsInstStartWin[1]  = 16;
    
        swMsPrm[1].numSwMsInst          = swMsPrm[0].numSwMsInst;
        swMsPrm[1].swMsInstStartWin[0]  = swMsPrm[0].swMsInstStartWin[0];
        swMsPrm[1].swMsInstStartWin[1]  = swMsPrm[0].swMsInstStartWin[1];
    
        swMsPrm[0].enableProcessTieWithDisplay = TRUE;
        swMsPrm[1].enableProcessTieWithDisplay = TRUE;
    
    #endif
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
        {
            VDIS_DEV vdDevId = VDIS_DEV_HDMI;
    		printf("numDisplays= %d,i=%d\n",gVsysModuleContext.vsysConfig.numDisplays,i);
            swMsPrm[i].inQueParams.prevLinkId     = gMultiCh_VdecVdisObj.decSnapshotDup;
            swMsPrm[i].inQueParams.prevLinkQueId  = i;
            swMsPrm[i].outQueParams.nextLink      = gVdisModuleContext.displayId[i];
            swMsPrm[i].numOutBuf                 = MULTICH_NUM_SWMS_MAX_BUFFERS;
    
            /* Disable inQue drop at SwMs as input may arrive very fast in VDEC->VDIS use case */
            swMsPrm[i].maxInputQueLen             = SYSTEM_SW_MS_INVALID_INPUT_QUE_LEN;
            if (i == 0)
            {
                vdDevId = VDIS_DEV_HDMI;
                swMsPrm[i].maxOutRes              = VSYS_STD_1080P_60;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_HDMI].resolution;
            }
            else if (i == 1)
            {
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
                vdDevId = VDIS_DEV_SD;
                swMsPrm[i].maxOutRes              = VSYS_STD_PAL;
                swMsPrm[i].outQueParams.nextLink  = SYSTEM_LINK_ID_DISPLAY_2;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;
    
    #else
                vdDevId = VDIS_DEV_DVO2;
                swMsPrm[i].maxOutRes              = VSYS_STD_1080P_60;
                swMsPrm[i].initOutRes             = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_DVO2].resolution;
    #endif
            }
            /* low cost line skip mode of scaling can be used, when tiler is off */
            if(tilerEnable)
                swMsPrm[i].lineSkipMode           = FALSE;
            else
                swMsPrm[i].lineSkipMode           = TRUE;
    
            swMsPrm[i].enableLayoutGridDraw = gVdisModuleContext.vdisConfig.enableLayoutGridDraw;
    
            MultiCh_swMsGetDefaultLayoutPrm(vdDevId, &swMsPrm[i], FALSE);    /* both from 0-16 chnl */
    
            displayPrm[i].inQueParams[0].prevLinkId    = gVdisModuleContext.swMsId[i];
            displayPrm[i].inQueParams[0].prevLinkQueId = 0;
            displayPrm[i].displayRes                = swMsPrm[i].initOutRes;
            if (i == 1)
    #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
                            displayPrm[i].displayRes            = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;
    #else
                            displayPrm[i].displayRes            = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_DVO2].resolution;
    #endif
            mulich_vdec_vdis_set_avsync_prm(&gMultiCh_VdecVdisObj.avsyncCfg[i],i,vdDevId);
        }
        NsfLink_CreateParams_Init(&nsfPrm);
        nsfPrm.bypassNsf = TRUE;
        nsfPrm.inputFrameRate  = 30;
        nsfPrm.outputFrameRate = 30;
        nsfPrm.tilerEnable     = FALSE;
        nsfPrm.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.decSnapshotDup;
        nsfPrm.inQueParams.prevLinkQueId = 2;
        nsfPrm.numOutQue = 1;
        nsfPrm.outQueParams[0].nextLink  = gMultiCh_VdecVdisObj.ipcFramesOutVpssId;
        nsfPrm.numBufsPerCh = 1;
    
        IpcFramesOutLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm);
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.nsfId;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.inputFrameRate  = 30;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.outputFrameRate = 3;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.noNotifyMode    = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.notifyNextLink  = FALSE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.notifyPrevLink  = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.ipcFramesInVideoId;
    
        IpcFramesInLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcFramesInVideoPrm);
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcFramesOutVpssId;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.noNotifyMode = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.notifyPrevLink = FALSE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.notifyNextLink = TRUE;
        gMultiCh_VdecVdisObj.ipcFramesInVideoPrm.baseCreateParams.outQueParams[0].nextLink = gMultiCh_VdecVdisObj.encId;
    
        EncLink_CreateParams_Init(&gMultiCh_VdecVdisObj.encPrm);
    	gMultiCh_VdecVdisObj.encPrm.numBufPerCh[0] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[1] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[2] = 6;
        gMultiCh_VdecVdisObj.encPrm.numBufPerCh[3] = 6;
        gMultiCh_VdecVdisObj.encPrm.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.ipcFramesInVideoId;
        gMultiCh_VdecVdisObj.encPrm.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.encPrm.outQueParams.nextLink     = gMultiCh_VdecVdisObj.ipcBitsOutVideoId;
        mulich_vdec_vdis_set_mjpeg_enc_ch_params(&gMultiCh_VdecVdisObj.encPrm, 0, ipcBitsOutHostPrm.inQueInfo.numCh);
    
        IpcBitsOutLinkRTOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm);
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId    = gMultiCh_VdecVdisObj.encId;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.numOutQue                 = 1;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink  = gMultiCh_VdecVdisObj.ipcBitsInHostId;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.notifyPrevLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.notifyNextLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm.baseCreateParams.noNotifyMode   = FALSE;
    
    
        IpcBitsInLinkHLOS_CreateParams_Init(&gMultiCh_VdecVdisObj.ipcBitsInHostPrm);
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkId = gMultiCh_VdecVdisObj.ipcBitsOutVideoId;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.numOutQue = 0;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.outQueParams[0].nextLink = SYSTEM_LINK_ID_INVALID;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.notifyPrevLink = TRUE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.notifyNextLink = FALSE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.baseCreateParams.noNotifyMode   = FALSE;
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.cbFxn = gVencModuleContext.callbackFxn.newDataAvailableCb; // register the encode callback function for snapshot
        gMultiCh_VdecVdisObj.ipcBitsInHostPrm.cbCtx = gVencModuleContext.callbackArg;                    // register the encode callback context for snapshot
        System_linkCreate(gVdecModuleContext.ipcBitsOutHLOSId,&ipcBitsOutHostPrm,sizeof(ipcBitsOutHostPrm));
        System_linkCreate(gVdecModuleContext.ipcBitsInRTOSId,&ipcBitsInVideoPrm,sizeof(ipcBitsInVideoPrm));
        System_linkCreate(gVdecModuleContext.decId, &decPrm, sizeof(decPrm));
    
        System_linkCreate(gMultiCh_VdecVdisObj.ipcOutVideoId, &ipcOutVideoPrm, sizeof(ipcOutVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcInVpssId  , &ipcInVpssPrm, sizeof(ipcInVpssPrm));
    
        //System_linkCreate(gMultiCh_VdecVdisObj.decSnapshotDup,&dupSnapshotPrm,sizeof(dupSnapshotPrm));
        if (enableVideoFrameExport)
        {
            System_linkCreate(gVdisModuleContext.ipcFramesOutHostId     , &ipcFramesOutHostPrm    , sizeof(ipcFramesOutHostPrm));
            System_linkCreate(gVdisModuleContext.ipcFramesInVpssFromHostId     , &ipcFramesInVpssFromHostPrm    , sizeof(ipcFramesInVpssFromHostPrm));
            System_linkCreate(gMultiCh_VdecVdisObj.mergeId,&mergePrm,sizeof(mergePrm));
        }
    
        System_linkCreate(gMultiCh_VdecVdisObj.mpSclrId, &mpSclrPrm, sizeof(mpSclrPrm));
        //System_linkCreate(gMultiCh_VdecVdisObj.dupId     , &dupPrm    , sizeof(dupPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.decSnapshotDup, &dupSnapshotPrm    , sizeof(dupSnapshotPrm));
        //System_linkCreate(gMultiCh_VdecVdisObj.snapshotmpSclrId, &mpSclrSnapshotPrm, sizeof(mpSclrSnapshotPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.nsfId, &nsfPrm, sizeof(nsfPrm));
    
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
            System_linkCreate(gVdisModuleContext.swMsId[i]  , &swMsPrm[i], sizeof(swMsPrm[i]));
    
        for(i=0; i<gVsysModuleContext.vsysConfig.numDisplays; i++)
            System_linkCreate(gVdisModuleContext.displayId[i], &displayPrm[i], sizeof(displayPrm[i]));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcFramesOutVpssId, &gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm, sizeof(gMultiCh_VdecVdisObj.ipcFramesOutVpssPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcFramesInVideoId, &gMultiCh_VdecVdisObj.ipcFramesInVideoPrm, sizeof(gMultiCh_VdecVdisObj.ipcFramesInVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.encId, &gMultiCh_VdecVdisObj.encPrm, sizeof(gMultiCh_VdecVdisObj.encPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcBitsOutVideoId, &gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm, sizeof(gMultiCh_VdecVdisObj.ipcBitsOutVideoPrm));
        System_linkCreate(gMultiCh_VdecVdisObj.ipcBitsInHostId, &gMultiCh_VdecVdisObj.ipcBitsInHostPrm, sizeof(gMultiCh_VdecVdisObj.ipcBitsInHostPrm));
    
        MultiCh_memPrintHeapStatus();
        gMultiCh_VdecVdisObj.enableVideoFrameExport = enableVideoFrameExport;
        {
            MultiCh_setDec2DispMap(VDIS_DEV_HDMI,gVdecModuleContext.vdecConfig.numChn,0,0);
            #if defined(TI_814X_BUILD) || defined(TI_8107_BUILD)
            MultiCh_setDec2DispMap(VDIS_DEV_SD,gVdecModuleContext.vdecConfig.numChn,0,0);
            #else
            MultiCh_setDec2DispMap(VDIS_DEV_HDCOMP,gVdecModuleContext.vdecConfig.numChn,0,0);
            #endif
       }
    
    }
    
    Void MultiCh_deleteVdecVdis()
    {
        Bool tilerEnable;
    
        tilerEnable  = FALSE;
    
        /* delete can be done in any order */
        Vdec_delete();
        Vdis_delete();
    
        if (gMultiCh_VdecVdisObj.enableVideoFrameExport)
        {
            System_linkDelete(gMultiCh_VdecVdisObj.mergeId);
        }
    
        System_linkDelete(gMultiCh_VdecVdisObj.mpSclrId);
        //System_linkDelete(gMultiCh_VdecVdisObj.dupId);
        System_linkDelete(gMultiCh_VdecVdisObj.ipcOutVideoId );
        System_linkDelete(gMultiCh_VdecVdisObj.ipcInVpssId );
    
        System_linkDelete(gMultiCh_VdecVdisObj.decSnapshotDup);
        //System_linkDelete(gMultiCh_VdecVdisObj.snapshotmpSclrId);
        System_linkDelete(gMultiCh_VdecVdisObj.nsfId);
    
        /* Print the HWI, SWI and all tasks load */
        /* Reset the accumulated timer ticks */
        MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE);
    
    
        if (tilerEnable == FALSE)
        {
            /* Disable tiler allocator for this usecase
             * for that tiler memory can be reused for
             * non-tiled allocation
             */
            SystemTiler_enableAllocator();
        }
        else
        {
            SystemTiler_BucketGeometry_t bucketRes;
    
            bucketRes.minResolution = SYSTEM_TILER_RESOLUTION_CIF;
            bucketRes.setSingleBucketGeometry = TRUE;
            SystemTiler_setBucketGeometry(&bucketRes);
        }
    
    }
    

  • Pls add Vps_print in /dvr_rdk/mcfw/src_bios6/links_m3vpss/nsf/nsfLink_drv.c

    NsfLink_drvInitCh()

            nsfDataFmt->inDataFormat = pInChInfo->dataFormat;
            nsfDataFmt->inFrameWidth = pInChInfo->width;
            nsfDataFmt->inFrameHeight = pInChInfo->height;

            Vps_printf("Format:%d,Width:%d,Height:%d",nsfDataFmt->inDataFormat, nsfDataFmt->inFrameWidth, nsfDataFmt->inFrameHeight);

     

    Share the full console logs.

  • case 1:

    gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoHeight =2048,

    gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoWidth = 1536,

    log is 5381.app_log_2048x1536.txt

    Under this resolution can only be added 12 channel,nsf link is normal

    case 2:

    gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoHeight =1920,

    gVdecModuleContext.vdecConfig.decChannelParams[i].maxVideoWidth = 1080,

    log is 

    root@dm816x:~# cd /opt/dvr_rdk/ti816x/
    root@dm816x:/opt/dvr_rdk/ti816x# ./run_gui.sh 
    net.core.rmem_max = 8738000
    net.ipv4.tcp_rmem = 8192 873800 8738000
    vm.min_free_kbytes = 65536
    *** Bootargs Validated for mem param ***
    *** Bootargs Validated for notifyk.vpssm3 params ***
    *** Kernel Base address validated ***
    Kernel bootargs validated
    numid=101,iface=MIXER,name='Left DAC Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=3
      ; Item #0 'DAC_L1'
      ; Item #1 'DAC_L3'
      ; Item #2 'DAC_L2'
      : values=2
    numid=99,iface=MIXER,name='Right DAC Mux'
      ; type=ENUMERATED,access=rw------,values=1,items=3
      ; Item #0 'DAC_R1'
      ; Item #1 'DAC_R3'
      ; Item #2 'DAC_R2'
      : values=2
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
    SysLink version : 2.20.02.20
    SysLink module created on Date:Jan 24 2014 Time:14:30:51
    Trace enabled
    Trace SetFailureReason enabled
     Setting DMM priority for [DUCATI  ] to [0] ( 0x4e000624 = 0x08000000 )
     Setting DMM priority for [HDVICP0 ] to [2] ( 0x4e000634 = 0x0000000a )
     Setting DMM priority for [HDVICP1 ] to [2] ( 0x4e000634 = 0x000a0000 )
     Setting DMM priority for [HDVICP2 ] to [2] ( 0x4e000634 = 0x00a00000 )
     
     *** TVP5158 probe : START ***
     
     TI VS EVM : TVP5158 device address : 0x58, 0x5a, 0x5c, 0x5e
     TI DVR    : TVP5158 device address : 0x5c, 0x5d, 0x5e, 0x5f
     
     Device found     : I2C (0xXX): 0x08 = 0x51
                        I2C (0xXX): 0x09 = 0x58
     
     Device NOT found : I2C (0xXX): Read ERROR !!! (reg[0x08], count = 2)
     
     I2C (0x58): 0x08 = 0xff 
     I2C (0x58): 0x09 = 0xff 
     I2C (0x5a): 0x08 = 0xff 
     I2C (0x5a): 0x09 = 0xff 
     I2C (0x5c): 0x08 = 0xff 
     I2C (0x5c): 0x09 = 0xff 
     I2C (0x5d): 0x08 = 0xff 
     I2C (0x5d): 0x09 = 0xff 
     I2C (0x5e): Read ERROR !!! (reg[0x08], count = 2)
     I2C (0x5f): Read ERROR !!! (reg[0x08], count = 2)
     
     *** TVP5158 probe : END ***
     
    /opt/dvr_rdk/ti816x
    Attached to slave procId 2.
    Loaded file ../firmware/dvr_rdk_fw_m3vpss_2048M_512M.xem3 on slave procId 2.
    Started slave procId 2.
    After Ipc_loadcallback status [0x00000000]
     [m3vpss ] ***** VPSS Firmware build time 19:18:32 Mar  3 2014  EDG gcc 3.0 mode
     [m3vpss ] ***** SYSTEM  : Frequency <ORG> - 250000000, <NEW> - 274909088
     [m3vpss ] notify_attach  rtnVal  0
     [m3vpss ] initProxyServer  rtnVal  0
     [m3vpss ]  
     [m3vpss ]  *** UTILS: CPU KHz = 549818 Khz ***
     [m3vpss ]  
     [m3vpss ]  35: SYSTEM  : System Common Init in progress !!!
     [m3vpss ]  35: SYSTEM: IPC init in progress !!!
     [m3vpss ]  35: SYSTEM: Attaching to [HOST] ... 
     [m3vpss ]  37: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
    After Ipc_startcallback status [0x00000000]
    Attached to slave procId 1.
    DMA: Module install successful, device major num = 250 
    DRV: Module install successful
    DRV: Module built on Jan 24 2014 14:31:37 
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
    Attached to slave procId 0.
    Loaded file ../firmware/dvr_rdk_fw_m3video_2048M_512M.xem3 on slave procId 1.
    Started slave procId 1.
    After Ipc_loadcallback status [0x00000000]
     [m3video] ***** VIDEO Firmware build time 16:05:55 Feb 17 2014  EDG gcc 3.0 mode
    After Ipc_startcallback status [0x00000000]
     [m3video] ***** SYSTEM  : Frequency <ORG> - 250000000, <NEW> - 274909088
     [m3video]  
     [m3video]  *** UTILS: CPU KHz = 549818 Khz ***
     [m3video]  
     [m3video]  720: SYSTEM  : System Common Init in progress !!!
     [m3video]  720: SYSTEM: IPC init in progress !!!
     [m3video]  720: SYSTEM: Attaching to [HOST] ... 
     [m3video]  723: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
    Loaded file ../firmware/dvr_rdk_fw_c6xdsp_2048M_512M.xe674 on slave procId 0.
    Started slave procId 0.
    After Ipc_loadcallback status [0x00000000]
     [c6xdsp ] ***** VIDEO Firmware build time 16:05:24 Feb 17 2014  EDG gcc 3.0 mode
     [c6xdsp ] ***** SYSTEM  : Frequency <ORG> - 800000000, <NEW> - 1000000000
     [c6xdsp ]  
     [c6xdsp ]  *** UTILS: CPU KHz = 1000000 Khz ***
     [c6xdsp ]  
     [c6xdsp ]  5: SYSTEM  : System Common Init in progress !!!
     [c6xdsp ]  5: SYSTEM: IPC init in progress !!!
     [c6xdsp ]  5: SYSTEM: Attaching to [HOST] ... 
     [c6xdsp ]  8: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
    After Ipc_startcallback status [0x00000000]
     [c6xdsp ]  10: SYSTEM: Attaching to [VIDEO-M3] ... SUCCESS !!!
     [m3video]  739: SYSTEM: Attaching to [DSP] ... SUCCESS !!!
     [m3vpss ]  740: SYSTEM: Attaching to [DSP] ... SUCCESS !!!
     [c6xdsp ]  12: SYSTEM: Attaching to [VPSS-M3] ... SUCCESS !!!
     [m3video]  741: SYSTEM: Attaching to [VPSS-M3] ... SUCCESS !!!
     [m3vpss ]  741: SYSTEM: Attaching to [VIDEO-M3] ... SUCCESS !!!
     [c6xdsp ]  12: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_0] ...
     [m3video]  742: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_1] ...
     [m3vpss ]  742: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_2] ...
     [c6xdsp ]  12: SYSTEM: Creating MsgQ [DSP_MSGQ] ...
     [m3video]  742: SYSTEM: Creating MsgQ [VIDEO-M3_MSGQ] ...
     [m3vpss ]  742: SYSTEM: Creating MsgQ [VPSS-M3_MSGQ] ...
     [c6xdsp ]  12: SYSTEM: Creating MsgQ [DSP_ACK_MSGQ] ...
     [m3video]  742: SYSTEM: Creating MsgQ [VIDEO-M3_ACK_MSGQ] ...
     [m3vpss ]  742: SYSTEM: Creating MsgQ [VPSS-M3_ACK_MSGQ] ...
     [c6xdsp ]  12: SYSTEM: Notify register to [HOST] line 0, event 15 ... 
     [m3video]  744: SYSTEM: Notify register to [HOST] line 0, event 15 ... 
     [m3vpss ]  744: SYSTEM: Notify register to [HOST] line 0, event 15 ... 
     [c6xdsp ]  12: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     [m3video]  744: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     [m3vpss ]  744: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     [c6xdsp ]  12: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     [m3video]  744: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     [m3vpss ]  744: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     [c6xdsp ]  12: SYSTEM: IPC init DONE !!!
     [m3video]  744: SYSTEM: IPC init DONE !!!
     [m3vpss ]  744: SYSTEM: IPC init DONE !!!
     [c6xdsp ]  15: MEM: Shared Region 2: Base = 0x96000000, Length = 0x28000000 (640 MB) 
     [c6xdsp ]  15: MEM: Shared Region 1: Base = 0x80000000, Length = 0x11600000 (278 MB) 
     [c6xdsp ]  15: SYSTEM  : System Common Init Done !!!
     [c6xdsp ]  9: SYSTEM  : System DSP Init in progress !!!
     [c6xdsp ]  10: SYSTEM  : RpeServer_init() done... Ret Val 0!!!
     [c6xdsp ]  17: SYSTEM: Creating ListMP [DSP_IPC_OUT_19] in region 0 ...
     [c6xdsp ]  18: SYSTEM: Creating ListMP [DSP_IPC_IN_19] in region 0 ...
     [c6xdsp ]  18: SYSTEM: ListElem Shared Addr = 0xbe1b3e00
     [c6xdsp ]  18: SYSTEM: Creating ListMP [DSP_IPC_OUT_20] in region 0 ...
     [c6xdsp ]  18: SYSTEM: Creating ListMP [DSP_IPC_IN_20] in region 0 ...
     [c6xdsp ]  18: SYSTEM: ListElem Shared Addr = 0xbe1d9600
     [c6xdsp ]  19: SYSTEM: Creating ListMP [DSP_IPC_OUT_21] in region 0 ...
     [c6xdsp ]  19: SYSTEM: Creating ListMP [DSP_IPC_IN_21] in region 0 ...
     [c6xdsp ]  19: SYSTEM: ListElem Shared Addr = 0xbe1fee00
     [c6xdsp ]  19: SYSTEM: Creating ListMP [DSP_IPC_OUT_24] in region 0 ...
     [c6xdsp ]  19: SYSTEM: Creating ListMP [DSP_IPC_IN_24] in region 0 ...
     [c6xdsp ]  19: SYSTEM: ListElem Shared Addr = 0xbe224600
     [c6xdsp ]  20: SYSTEM: Creating ListMP [DSP_IPC_OUT_25] in region 0 ...
     [m3video]  750: MEM: Shared Region 2: Base = 0x96000000, Length = 0x28000000 (640 MB) 
     [m3vpss ]  750: MEM: Shared Region 2: Base = 0x96000000, Length = 0x28000000 (640 MB) 
     [c6xdsp ]  20: SYSTEM: Creating ListMP [DSP_IPC_IN_25] in region 0 ...
     [m3video]  750: MEM: Shared Region 1: Base = 0x80000000, Length = 0x11600000 (278 MB) 
     [m3vpss ]  750: MEM: Shared Region 1: Base = 0x80000000, Length = 0x11600000 (278 MB) 
     [c6xdsp ]  20: SYSTEM: ListElem Shared Addr = 0xbe243080
     [m3video]  752: SYSTEM  : System Common Init Done !!!
     [m3vpss ]  751: SYSTEM  : System Common Init Done !!!
     [c6xdsp ] !!WARNING.Resource already registered:2
     [c6xdsp ]  15: SYSTEM  : Initializing Links !!! 
     [m3video]  752: SYSTEM  : System Video Init in progress !!!
     [m3vpss ]  752: SYSTEM  : System VPSS Init in progress !!!
     [m3video]  752: SYSTEM  : System Video Init Done !!!
     [m3vpss ]  752: SYSTEM: All VPDMA Free !!! 
     [c6xdsp ]  21: SYSTEM  : FREE SPACE : System Heap      = 10342016 B, Mbx = 10240 msgs) 
     [m3video]  752: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_0] in region 0 ...
     [m3vpss ] === HDVPSS Clocks are enabled ===
     [m3video]  753: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_0] in region 0 ...
     [m3vpss ] Received character 's'
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
     [m3video] Received character 's'
     [c6xdsp ] Remote Debug Shared Memory @ 0xbfd00000
     [m3video] Remote Debug Shared Memory @ 0xbfd10820
     [m3vpss ] Remote Debug Shared Memory @ 0xbfd21040
     [c6xdsp ] Received character 's'
     [m3vpss ] === HDVPSS is fully functional ===
     [c6xdsp ]  24: SYSTEM  : Initializing Links ... DONE !!! 
     [m3video]  753: SYSTEM: ListElem Shared Addr = 0xbe261b00
     [m3vpss ] === HDVPSS module is not in standby ===
     [m3video]  755: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_1] in region 0 ...
     [m3vpss ] === I2C1 Clk is active ===
     [c6xdsp ]  ETH_OFFLOAD: Init !!!
     [m3video]  755: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_1] in region 0 ...
     [m3vpss ]  761: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_0] in region 0 ...
     [c6xdsp ]  24: SYSTEM  : System DSP Init Done !!!
     [m3video]  755: SYSTEM: ListElem Shared Addr = 0xbe265000
     [m3vpss ]  761: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_0] in region 0 ...
     [m3video]  761: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_19] in region 0 ...
     [m3vpss ]  761: SYSTEM: ListElem Shared Addr = 0xbe268500
     [m3video]  761: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_19] in region 0 ...
     [m3vpss ]  763: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_1] in region 0 ...
     [m3video]  762: SYSTEM: ListElem Shared Addr = 0xbe26ba00
     [m3vpss ]  763: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_1] in region 0 ...
     [m3video]  764: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_20] in region 0 ...
     [m3vpss ]  764: SYSTEM: ListElem Shared Addr = 0xbe291200
     [m3video]  764: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_20] in region 0 ...
     [m3vpss ]  777: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_19] in region 0 ...
     [m3video]  764: SYSTEM: ListElem Shared Addr = 0xbe294700
     [m3vpss ]  778: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_19] in region 0 ...
     [m3video]  767: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_21] in region 0 ...
     [m3vpss ]  778: SYSTEM: ListElem Shared Addr = 0xbe2df700
     [m3video]  767: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_21] in region 0 ...
     [m3vpss ]  780: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_20] in region 0 ...
     [m3video]  767: SYSTEM: ListElem Shared Addr = 0xbe2b9f00
     [m3vpss ]  780: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_20] in region 0 ...
     [m3video]  780: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_24] in region 0 ...
     [m3vpss ]  781: SYSTEM: ListElem Shared Addr = 0xbe305200
     [m3video]  781: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_24] in region 0 ...
     [m3vpss ]  783: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_21] in region 0 ...
     [m3video]  781: SYSTEM: ListElem Shared Addr = 0xbe32a700
     [m3vpss ]  783: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_21] in region 0 ...
     [m3video]  783: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_25] in region 0 ...
     [m3vpss ]  783: SYSTEM: ListElem Shared Addr = 0xbe367c00
     [m3video]  783: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_25] in region 0 ...
     [m3vpss ]  785: SYSTEM : HDVPSS Drivers Version: HDVPSS_01_00_01_37
    /opt/dvr_rdk/ti816x
     [m3video]  783: SYSTEM: ListElem Shared Addr = 0xbe349780
     [m3vpss[module] vpss probe done.
     ]  785: SYSTEM  : FVID2 Init in progress !!!
     [m3video]  785: HDVICP: Doing PRCM for IVAHD[0] ... 
     [m3video]  785: HDVICP: PRCM for IVAHD[0] ... DONE.
     [m3video]  785: HDVICP: Doing PRCM for IVAHD[1] ... 
     [m3video]  785: HDVICP: PRCM for IVAHD[1] ... DONE.
     [m3video]  786: HDVICP: Doing PRCM for[module] ti81xxfb probe done.
     IVAHD[2] ... 
     [m3vpss ] TILER_STATS: CNT :8BIT
     [m3video]  786: HDVICP: PRCM for IVAHD[2] ... DONE.
     [m3video]  786: SYSTEM  : Initializing Links !!! 
     [m3vpss ] TILER_STATS: CNT RESOLUTHDMI W1 rev 2.0
    ION:    16384 x HDMI CEC Spec version 1.2
    8192
     [m3video]  786: SYSTEM  : FREE SPACE : System Heap      = 6279304 B, Mbx = 10240 msgs) 
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 16384 x 8188
     [m3video]  786: SYSTEM  : FREE SPACE : SR0 Heap         = 20394496 B (19 MB) 
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3video]  786: SYSTEM  : FREE SPACE : Frame Buffer     = 671088512 B (639 MB) 
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3video]  787: SYSTEM  : FREE SPACE : Bitstream Buffer = 291504000 B (277 MB) 
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134152192 (99 %)
     [m3video]  787: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3video]  788: SYSTEM  : FREE SPACE : Tiler 8-bit      = 134152192 B (127 MB)  - TILER ON 
     [m3video]  788: SYSTEM  : FREE SPACE : Tiler 16-bit     = 134217728 B (128 MB)  - TILER ON 
     [m3video]  823: SYSTEM  : Initializing Links ... DONE !!! 
     [m3vpss ] TILER_STATS: CNT :16BIT
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    32768 x 4096
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 32768 x 4096
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134217728 (100 %)
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3vpss ]  855: SYSTEM  : FVID2 Init in progress DONE !!!
     [m3vpss ]  855: SYSTEM  : Device Init in progress !!!
     [m3vpss ]  858: SYSTEM  : Device Init in progress DONE !!!
     [m3vpss ]  898: SYSTEM  : System VPSS Init Done !!!
     [m3vpss ]  899: UTILS: DMA: HWI Create for INT63 !!!
     [m3vpss ]  899: SYSTEM  : Initializing Links !!! 
     [m3vpss ]  899: SYSTEM  : FREE SPACE : System Heap      = 74056 B, Mbx = 10240 msgs) 
     [m3vpss ]  900: SYSTEM  : FREE SPACE : SR0 Heap         = 20394496 B (19 MB) 
     [m3vpss ]  900: SYSTEM  : FREE SPACE : Frame Buffer     = 666778496 B (635 MB) 
     [m3vpss ]  900: SYSTEM  : FREE SPACE : Bitstream Buffer = 291504000 B (277 MB) 
     [m3vpss ] TILER_STATS: CNT :8BIT
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    16384 x 8192
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 16384 x 8188
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134152192 (99 %)
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
    I2C No Ack
    
    HDMI failed to read E-EDID
     [m3vpss ] TILER_STATS: CNT :16BIT
     [m3vpss ] TILER_STATS: CNT RESOLUTION:    32768 x 4096
     [m3vpss ] TILER_STATS: BUCKET RESOLUTION: 32768 x 4096
     [m3vpss ] TILER_STATS: NUM FREE BUCKETS:  1
     [m3vpss ] TILER_STATS: NUM USED BUCKETS:  0
     [m3vpss ] TILER_STATS: TOTAL FREE AREA:   134217728 (100 %)
     [m3vpss ] TILER_STATS: TOTAL USED AREA:   0 (0 %)
     [m3vpss ]  901: SYSTEM  : FREE SPACE : Tiler 8-bit      = 134152192 B (127 MB)  - TILER ON 
     [m3vpss ]  901: SYSTEM  : FREE SPACE : Tiler 16-bit     = 134217728 B (128 MB)  - TILER ON 
     [m3vpss ]  1017: SYSTEM  : Initializing Links ... DONE !!! 
     [m3vpss ]  1017: SYSTEM  : Set Static L3 pressure for HDVPSS as High
     
     ORG 0x46c00524: 0
     NEW 0x46c00524: 2
     
     [ETH OFFLOAD] Shared memory address = 0x40300000, size =0x0000f400 !!!
     [ETH OFFLOAD] GRO is ENABLED !!!
     [ETH OFFLOAD] EMAC-1 is ENABLED !!!
     [ETH_OFFLOAD] RX CSUM is ENABLED !!!
     [c6xdsp ]  [ETH_OFFLOAD] OPENED !!!
     [c6xdsp ] EMAC_start returned 0
    /opt/dvr_rdk/ti816x
     Setting DMM priority for [A8      ] to [0] ( 0x4e000620 = 0x00000008 )
    gVIDEOMOTION_ctrl.bufSize = 21120
    gVIDEOMOTION_ctrl.bufNum  = 16
    app_pb: app_playback_init ... success
    lib_dvr_app.c DVR_StartSystem 988 
     0: SYSTEM: System Common Init in progress !!!
     0: SYSTEM: IPC init in progress !!!
     19: SYSTEM: CPU [DSP] syslink proc ID is [0] !!!
     19: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [1] !!!
     19: SYSTEM: CPU [VPSS-M3] syslink proc ID is [2] !!!
     19: SYSTEM: CPU [HOST] syslink proc ID is [3] !!!
     20: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP_3] ...
     24: SYSTEM: Creating MsgQ [HOST_MSGQ] ...
     26: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ...
     28: SYSTEM: Opening MsgQ [DSP_MSGQ] ...
     28: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
     29: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     30: SYSTEM: Notify register to [DSP] line 0, event 15 ... 
     31: SYSTEM: Notify register to [VIDEO-M3] line 0, event 15 ... 
     31: SYSTEM: Notify register to [VPSS-M3] line 0, event 15 ... 
     32: SYSTEM: IPC init DONE !!!
     34: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ...
     37: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ...
     38: SYSTEM: ListElem Shared Addr = 0x60162700
     39: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ...
     42: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ...
     44: SYSTEM: ListElem Shared Addr = 0x60199500
     45: SYSTEM: Creating ListMP [HOST_IPC_OUT_19] in region 0 ...
     48: SYSTEM: Creating ListMP [HOST_IPC_IN_19] in region 0 ...
     49: SYSTEM: ListElem Shared Addr = 0x601d0300
     50: SYSTEM: Creating ListMP [HOST_IPC_OUT_20] in region 0 ...
     53: SYSTEM: Creating ListMP [HOST_IPC_IN_20] in region 0 ...
     55: SYSTEM: ListElem Shared Addr = 0x60213600
     56: SYSTEM: Creating ListMP [HOST_IPC_OUT_21] in region 0 ...
     58: SYSTEM: Creating ListMP [HOST_IPC_IN_21] in region 0 ...
     60: SYSTEM: ListElem Shared Addr = 0x60256900
     77: SYSTEM: System Common Init Done !!!
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    maxVideoWidth 1920  maxVideoHeight  1080 
     vdecParams.decChannelParams[i].numBufPerCh = 0 
    vdMosaicParam->numberOfWindows =16 startChId 0 maxChns 32 
    vdMosaicParam->numberOfWindows =16 startChId 16 maxChns 32 
     [host] HDMI Ctrl :Initializing
    [HOST] 
    ThreadName:Vdis_hdmiControlThread_0,ThreadID:842
     [host] HDMI Ctrl :Initialized
    
     [host] APP_WRITER:WRITER_recordFxn:Entered...==========yhao image===================yhao image11==============Going to Vsys_create=========
     141: MCFW  : CPU Revision [ES2.0] !!! 
    ----------------endChNum=12
    [HOST] 
    ThreadName:IpcBitsOutLink_tskMain_30000018,ThreadID:833
    
     [host]  144: IPC_BITS_OUT   : Create in progress !!!
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:0,Size:0x9E3400
     [host] 
    ******* RingBuf 0 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6149a080 To Phy:0x80000080
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6149A080 / PhyAddr 80000080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:1,Size:0x9E3400
     [host] 
    ******* RingBuf 1 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x61e7d480 To Phy:0x809e3480
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 61E7D480 / PhyAddr 809E3480
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:2,Size:0x9E3400
     [host] 
    ******* RingBuf 2 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x62860880 To Phy:0x813c6880
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 62860880 / PhyAddr 813C6880
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:3,Size:0x9E3400
     [host] 
    ******* RingBuf 3 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x63243c80 To Phy:0x81da9c80
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 63243C80 / PhyAddr 81DA9C80
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:4,Size:0x9E3400
     [host] 
    ******* RingBuf 4 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x63c27080 To Phy:0x8278d080
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 63C27080 / PhyAddr 8278D080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:5,Size:0x9E3400
     [host] 
    ******* RingBuf 5 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6460a480 To Phy:0x83170480
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6460A480 / PhyAddr 83170480
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:6,Size:0x9E3400
     [host] 
    ******* RingBuf 6 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x64fed880 To Phy:0x83b53880
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 64FED880 / PhyAddr 83B53880
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:7,Size:0x9E3400
     [host] 
    ******* RingBuf 7 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x659d0c80 To Phy:0x84536c80
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 659D0C80 / PhyAddr 84536C80
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:8,Size:0x9E3400
     [host] 
    ******* RingBuf 8 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x663b4080 To Phy:0x84f1a080
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 663B4080 / PhyAddr 84F1A080
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:9,Size:0x9E3400
     [host] 
    ******* RingBuf 9 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x66d97480 To Phy:0x858fd480
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 66D97480 / PhyAddr 858FD480
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:10,Size:0x9E3400
     [host] 
    ******* RingBuf 10 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6777a880 To Phy:0x862e0880
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6777A880 / PhyAddr 862E0880
    
     [host] IPC_BITSOUT:BitBuffer Alloc.ChID:11,Size:0x9E3400
     [host] 
    ******* RingBuf 11 created ********
    
     [host] IPCBITSOUTLINK:Translated Addr Virt:0x6815dc80 To Phy:0x86cc3c80
     [host] 
    ###Bit buff of size from the SR # 1 : 10368000 / bufsize 2073600, maxQueueDepth 50 
    
     [host] ###Bit buff BasePtr: 6815DC80 / PhyAddr 86CC3C80
    
     [host]  482: IPC_BITS_OUT   : Create Done !!!
    [HOST] 
    ThreadName:IpcBitsOutLink_periodicTaskFxn_30000018,ThreadID:848
     [m3vpss ] WARNING!!.Tiler Memory cannot be accessed by M3 in 2G build.Will not disable
     [m3video]  5053: IPC_BITS_IN   : Create in progress !!!
     [m3video]  5053: SYSTEM: Opening ListMP [HOST_IPC_OUT_24] ...
     [m3video]  5054: SYSTEM: Opening ListMP [HOST_IPC_IN_24] ...
     [m3video]  5054: SYSTEM: Opening MsgQ [HOST_MSGQ] ...
     [m3video]  5056: IPC_BITS_IN   : Create Done !!!
     [m3video]  5056: DECODE: Create in progress ... !!!
     [m3video] DECLINK_H264:HEAPID:0        USED:4264
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5183: DECODE: Creating CH0 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5308: DECODE: Creating CH1 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5433: DECODE: Creating CH2 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5558: DECODE: Creating CH3 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5683: DECODE: Creating CH4 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5808: DECODE: Creating CH5 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  5933: DECODE: Creating CH6 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6059: DECODE: Creating CH7 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6184: DECODE: Creating CH8 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6309: DECODE: Creating CH9 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6434: DECODE: Creating CH10 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
    net eth1: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:02, id=1cc914, speed=100)
     [m3video] DECLINK_H264:HEAPID:0        USED:2368
     [m3video] DECLINK_H264:HEAPID:3        USED:8937472
     [m3video]  6559: DECODE: Creating CH11 of 1920 x 1080 [PROGRESSIVE] [NON-TILED  ],target bitrate = 8000 Kbps ... 
     [m3video]  6561: DECODE: All CH Create ... DONE !!!
     [m3vpss ]  6566: IPC_IN_M3   : Create in progress !!!
     [m3vpss ]  6566: SYSTEM: Opening ListMP [VIDEO-M3_IPC_OUT_0] ...
     [m3video] DECLINK:HEAPID:0     USED:30432
     [m3vpss ]  6567: SYSTEM: Opening ListMP [VIDEO-M3_IPC_IN_0] ...
     [m3video] DECLINK:HEAPID:3     USED:324009984
     [m3vpss ]  6567: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ...
     [m3video]  6565: DECODE: Create ... DONE !!!
     [m3vpss ]  6569: IPC_IN_M3   : Create Done !!!
     [m3video]  6565: IPC_OUT_M3   : Create in progress !!!
     [m3vpss ]  6569: MP_SCLR: Create in progress !!!
     [m3video]  6566: IPC_OUT_M3   : Create Done !!!
     [m3vpss ]  6573: MP_SCLR: Configured to use scalar instance 4 !!! 
     [m3vpss ]  MP_SCLR: chID[0]Res[1776]
     [m3vpss ]  MP_SCLR: chID[1]Res[1776]
     [m3vpss ]  MP_SCLR: chID[2]Res[1776]
     [m3vpss ]  MP_SCLR: chID[3]Res[1776]
     [m3vpss ]  MP_SCLR: chID[4]Res[1776]
     [m3vpss ]  MP_SCLR: chID[5]Res[1776]
     [m3vpss ]  MP_SCLR: chID[6]Res[1776]
     [m3vpss ]  MP_SCLR: chID[7]Res[1776]
     [m3vpss ]  MP_SCLR: chID[8]Res[1776]
     [m3vpss ]  MP_SCLR: chID[9]Res[1776]
     [m3vpss ]  MP_SCLR: chID[10]Res[1776]
     [m3vpss ]  MP_SCLR: chID[11]Res[1776]
     [m3vpss ]  MP_SCLR: chID[12]Res[1776]
     [m3vpss ]  MP_SCLR: chID[13]Res[1776]
     [m3vpss ]  MP_SCLR: chID[14]Res[1776]
     [m3vpss ]  MP_SCLR: chID[15]Res[1776]
     [m3vpss ]  6576: MP_SCLR: Create Done !!!
     [m3vpss ]  6580: DUP:  0: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6580: DUP:  1: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6580: DUP:  2: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6580: DUP:  3: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6580: DUP:  4: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6580: DUP:  5: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6581: DUP:  6: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6581: DUP:  7: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6581: DUP:  8: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6581: DUP:  9: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6581: DUP: 10: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6581: DUP: 11: Format: PROGRESSIVE, 1920 x 1080
     [m3vpss ]  6582: DUP   : Create Done !!!
     [m3vpss ]  6583: NSF: Create in progress !!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ] Format=7,Width=1920,Height=1080!!!
     [m3vpss ]  6761: Assertion @ Line: 218 in links_m3vpss/nsf/nsfLink_drv.c: pObj->fvidHandleNsf != NULL : failed !!!
    root@dm816x:/opt/dvr_rdk/ti816x# VPSS_FVID2: contrl event 0x10040018 timeout
    VPSS_DCTRL: failed to get node input status
    VPSS_GRPX : failed to set grpx0 nodes
    ti81xxfb ti81xxfb: fvid2 create failed.
    QScreenLinuxFb::connect: Connection timed out
    Error opening framebuffer device /dev/fb1
    LinuxFb: driver cannot connect

    Under this resolution can be added 16 channel ,nsf link have error

    My goal is to create a 16 channel,How should I do?

  • Case 2 is wrong. It wont work You cant create for 1920x1080 . I have already explained this. So for 12 channels there is no issue with encoded image when adding nsfLink ?

     

    Are you using 2G or 1G build.

  • 2G build.

    Is there any way to achieve 16 channel encoded image?

  • If you can provide two interfaces in the enclink_common.c,EncLink_codecDeleteChannel() and EncLink_codecCreateChannel(),Dynamically create and delete the channel.

  • Can you provide latest MJPEG encoder version?

  • REL.500.V.MJPEG.E.IVAHD.01.00.14.00 is the latest MJPEG encoder version. You have to get it from TI FAE/Sales contact. I cant share it with you on the forum.