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.

alglink problem in IPNC 8127 RDK

Hello everyone!

   In 8127 RDK the alglink on dsp has two algs,SWOSD and SCD,the SCD alg has output,but there is no demo about how to use alglink in RDK,so I don't know where should I output SCD results.Is it possible to use alglink in usecase like tristream fullfeature and transport SCD results to A8?

  And One more question,I want to run some algs on dsp,is it easier to add my alg to alglink?someon told me I can use the SWOSD alg design and change the original code,but my alg is quite complicated, is it possible to change SWOSD alg to my own alg? Or is dsp on IPNC could only be used to complete some easy algs if I still want to use the IPNC Mcfw design?

Thank you for helpling.

Zhao

  • Zhao,

    I will notify the IPNC RDK team for help.

    Regards,
    Pavel

  • Hi Zhao,

    We have not tested neither SWOSD nor SCD DSP algorithm in IPNC RDK.

    We have Video Analytics (VA) algorithm running on DSP.

    The source code of VA algorithm can be found at the following location:

    '..\ipnc_rdk\ipnc_mcfw\mcfw\src_bios6\links_common\va\' folder

    You can refer to the code under 'VA_ON_DSP' compile flag in ..\ipnc_rdk\ipnc_mcfw\mcfw\src_linux\mcfw_api\usecases\multich_tristream_fullfeature.c file.

    regards,

    Anand

  • Hi Anand

    Thank you for your reply

    Since I'm new with IPNC and McFw,if I want to  create a alg running on DSP and add it to usecases like tristeam fullfeature where should I start with?I've already read the code about Alglink,but you said the Alglink is not tested,which makes me quite disappointed.And you mention the Valink,should I learn the Valink instead?

    And one more question,I'm wondering how can I send the results of a DSP alg to ARM and finally show it in the web or write it to file,since in IPNC usecase there are only IpcBitsIn/OutLink and IpcFrameIn/OutLink,these links seems designed for passing YUV or encoded data,can I use these link to pass my results to ARM?And I also noticed the Valink use Notify module to pass its results,is this the recommended way?

    Thank you for your patience.

    regards,

    Zhao

  • Hi Zhao,

    If you are on IPNC RDK ver 3.8 then there is use case to demonstrate RVM algorithm (..\ipnc_rdk\ipnc_mcfw\mcfw\src_linux\mcfw_api\usecases\multich_rvm.c) which runs on DSP.

    You can create simple use case simliar to RVM use case.

    You can refer to the RVM link code.

    You can have IPC Bits Out on DSP and IPC Bits In on A8 to transport the result of your DSP algorithm from DSP to A8. When you get a full bitstream buffer on A8 then you need to interpret result meaningfully.

    regards,

    Anand 

  • Hi Anand,

    Your advice is very helpful, now I tried to add SWOSD in alglink to capturedisplay usecase,the original usecase runs well,but after I add my alglink there are some errors,my configuration is quite simple

    camera[0]--->dup----->IpcFrameOutVpss<------->IpcFrameInDsp------>alglink

                           |-->null               |-->display

    ipcFrameIndsp is a processlink of ipcFrameOutVpss,and alglink is a nextlink of  ipcFrameIndsp,the displaylink is the nextlink of IpcFrameOutVpss.in order to strat alglink,I add it to VCAM in TI_vcam_priv.h ,and strat it in TI_vcam.c.

    here is my configuration code:

    0804.multich_capturedisplay.c
    /** ==================================================================
     *  @file   multich_Stream_CaptureDisplay.c
     *
     *  @path    ipnc_mcfw/mcfw/src_linux/mcfw_api/usecases/
     *
     *  @desc   This  File contains.
     * ===================================================================
     *  Copyright (c) Texas Instruments Inc 2011, 2012
     *
     *  Use of this software is controlled by the terms and conditions found
     *  in the license agreement under which this software has been supplied
     * ===================================================================*/
    
    /*------------------------------ TRIPLE OUT <1080p + D1 + MJPEG> ----------------------------------
    
                                        Capture
    								 RSZA     RSZB
                                   1080P60    D130
                                  (YUV420)  (YUV420)
                                      |          |
                                 (0)-DUP0-(1)   (0)-DUP1-(1)
                                  |        |    |         |
                          HDMI DISPLAY  NULL1  TVOUT      NULL0
    
    ------------------------------------------------------------------------------------------*/
    
    #include "mcfw/src_linux/mcfw_api/usecases/multich_common.h"
    #include "mcfw/src_linux/mcfw_api/usecases/multich_ipcbits.h"
    #include "demos/mcfw_api_demos/multich_usecase/ti_mcfw_ipnc_main.h"
    
    /* =============================================================================
     * Externs
     * ============================================================================= */
    
    /* =============================================================================
     * Use case code
     * ============================================================================= */
    #define NUM_DUP_LINK           (3)
    #define HDMIDIS_DUP_IDX        (0)
    #define TVOUT_DUP_IDX          (1)
    #define RAW_DUP_IDX            (2)
    
    
    /* ===================================================================
     *  @func     MultiCh_createStreamCaptureDisplay
     *
     *  @desc     Function does the following
     *
     *  @modif    This function modifies the following structures
     *
     *  @inputs   This function takes the following inputs
     *            <argument name>
     *            Description of usage
     *            <argument name>
     *            Description of usage
     *
     *  @outputs  <argument name>
     *            Description of usage
     *
     *  @return   Return value of this function if any
     *  ==================================================================
     */
    Void MultiCh_createStreamCaptureDisplay()
    {
        CameraLink_CreateParams cameraPrm;
    
        NullLink_CreateParams hdNullPrm;
        NullLink_CreateParams sdNullPrm;
    
        DisplayLink_CreateParams displayPrm;
        DisplayLink_CreateParams displayPrm_SD;
    
        CameraLink_VipInstParams *pCameraInstPrm;
    
        CameraLink_OutParams *pCameraOutPrm;
    
        UInt32 hdNullId;
        UInt32 sdNullId;
    
        IpcFramesOutLinkRTOS_CreateParams ipcFramesOutVpssPrm;
        IpcFramesInLinkRTOS_CreateParams ipcFramesInDspPrm;
    
        MULTICH_INIT_STRUCT(IpcFramesOutLinkRTOS_CreateParams ,ipcFramesOutVpssPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams ,ipcFramesInDspPrm);
    
        AlgLink_CreateParams algPrm;
    
        UInt32 dupId[NUM_DUP_LINK];
        DupLink_CreateParams dupPrm[NUM_DUP_LINK];
    
    #ifdef YUV_FRAMES_TO_A8
        System_LinkInfo framesProducerLinkInfo;
    
        IpcFramesOutLinkRTOS_CreateParams  ipcFramesOutVpssToHostPrm;
        IpcFramesInLinkHLOS_CreateParams   ipcFramesInHostPrm;
        IpcFramesOutLinkHLOS_CreateParams  ipcFramesOutHostPrm;
        IpcFramesInLinkRTOS_CreateParams   ipcFramesInVpssFromHostPrm;
    
    	MULTICH_INIT_STRUCT(IpcFramesOutLinkRTOS_CreateParams ,ipcFramesOutVpssToHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkHLOS_CreateParams  ,ipcFramesInHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesOutLinkHLOS_CreateParams ,ipcFramesOutHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams  ,ipcFramesInVpssFromHostPrm);
    
    	gVcamModuleContext.ipcFramesOutVpssToHostId  = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_1;
    	gVcamModuleContext.ipcFramesInHostId		 = SYSTEM_HOST_LINK_ID_IPC_FRAMES_IN_0;
    	gVdisModuleContext.ipcFramesOutHostId		 = SYSTEM_HOST_LINK_ID_IPC_FRAMES_OUT_0;
    	gVdisModuleContext.ipcFramesInVpssFromHostId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_IN_0;
    #endif
    #ifdef RAW_FRAMES_TO_A8
    	IspLink_CreateParams  ispPrm;
    	UInt32 ispId;
        IpcFramesOutLinkRTOS_CreateParams  ipcFramesOutVpssToHostPrm;
        IpcFramesInLinkHLOS_CreateParams   ipcFramesInHostPrm;
    
    	MULTICH_INIT_STRUCT(IpcFramesOutLinkRTOS_CreateParams ,ipcFramesOutVpssToHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkHLOS_CreateParams  ,ipcFramesInHostPrm);
    
    	gVcamModuleContext.ipcFramesOutVpssToHostId  = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_1;
    	gVcamModuleContext.ipcFramesInHostId		 = SYSTEM_HOST_LINK_ID_IPC_FRAMES_IN_0;
    
    	dupId[RAW_DUP_IDX] = SYSTEM_VPSS_LINK_ID_DUP_2;
    	ispId = SYSTEM_LINK_ID_ISP_0;
    #endif
    
    	/* System init */
    //    System_init();
    
        OSA_printf
            ("\n********* Entered Capture + Display usecase - H264 1080p @60 fps, H264 D1 @30fps ********\n\n");
    
        MultiCh_detectBoard();
    
        System_linkControl(SYSTEM_LINK_ID_M3VPSS,
                           SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES, NULL, 0, TRUE);
    
        gVcamModuleContext.cameraId = SYSTEM_LINK_ID_CAMERA;
    
        /* dup Link IDs*/
        dupId[HDMIDIS_DUP_IDX] = SYSTEM_VPSS_LINK_ID_DUP_0;
        dupId[TVOUT_DUP_IDX] = SYSTEM_VPSS_LINK_ID_DUP_1;
    
        /* display IDs */
        gVdisModuleContext.displayId[0] = SYSTEM_LINK_ID_DISPLAY_0; /* ON AND OFF
    																* CHIP HDMI */
        gVdisModuleContext.displayId[VDIS_DEV_SD] = SYSTEM_LINK_ID_DISPLAY_2;
    
        /* null link IDs*/
        hdNullId = SYSTEM_VPSS_LINK_ID_NULL_0;
        sdNullId = SYSTEM_VPSS_LINK_ID_NULL_1;
    
        /* ipc link IDs*/
        gVcamModuleContext.ipcFramesOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_0;
        gVcamModuleContext.ipcFramesInDspId   = SYSTEM_DSP_LINK_ID_IPC_FRAMES_IN_0;
    
        /* alg link IDs*/
        gVcamModuleContext.algId = SYSTEM_LINK_ID_ALG_0;
    
    #ifdef RAW_FRAMES_TO_A8
        /* Camera Link params */
        CameraLink_CreateParams_Init(&cameraPrm);
    	cameraPrm.captureMode = CAMERA_LINK_CAPMODE_DDR;
        cameraPrm.outQueParams[0].nextLink = dupId[RAW_DUP_IDX];
    	cameraPrm.ispLinkId = ispId;
    
        /* This is for TVP5158 Audio Channels - Change it to 16 if there are 16
         * audio channels connected in cascade */
        cameraPrm.numAudioChannels = 0;
        cameraPrm.numVipInst = 1;
        cameraPrm.tilerEnable = FALSE;
    
        pCameraInstPrm = &cameraPrm.vipInst[0];
        pCameraInstPrm->vipInstId = SYSTEM_CAMERA_INST_VP_CSI2;
        pCameraInstPrm->videoDecoderId = MultiCh_getSensorId(gUI_mcfw_config.sensorId);
        pCameraInstPrm->inDataFormat = SYSTEM_DF_YUV420SP_UV;
    	pCameraInstPrm->sensorOutWidth  = 1920;
    	pCameraInstPrm->sensorOutHeight = 1080;
        pCameraInstPrm->standard = SYSTEM_STD_1080P_30;
    
        pCameraInstPrm->numOutput = 1;
    
        pCameraOutPrm = &pCameraInstPrm->outParams[0];
        pCameraOutPrm->dataFormat = SYSTEM_DF_BAYER_RAW;
        pCameraOutPrm->scEnable = FALSE;
        pCameraOutPrm->scOutWidth = 1920;
        pCameraOutPrm->scOutHeight = 1080;
        pCameraOutPrm->outQueId = 0;
    
        /* 2A config */
        cameraPrm.t2aConfig.n2A_vendor = gUI_mcfw_config.n2A_vendor;
        cameraPrm.t2aConfig.n2A_mode = gUI_mcfw_config.n2A_mode;
    
        dupPrm[RAW_DUP_IDX].inQueParams.prevLinkId = gVcamModuleContext.cameraId;
        dupPrm[RAW_DUP_IDX].inQueParams.prevLinkQueId = 0;
        dupPrm[RAW_DUP_IDX].numOutQue = 2;
        dupPrm[RAW_DUP_IDX].outQueParams[0].nextLink = ispId;
        dupPrm[RAW_DUP_IDX].outQueParams[1].nextLink = gVcamModuleContext.ipcFramesOutVpssToHostId;
        dupPrm[RAW_DUP_IDX].notifyNextLink = TRUE;
    #else
        /* Camera Link params */
        CameraLink_CreateParams_Init(&cameraPrm);
    	cameraPrm.captureMode = CAMERA_LINK_CAPMODE_ISIF;
        cameraPrm.outQueParams[0].nextLink = dupId[HDMIDIS_DUP_IDX] ;
        cameraPrm.outQueParams[1].nextLink = dupId[TVOUT_DUP_IDX];
        /* This is for TVP5158 Audio Channels - Change it to 16 if there are 16
         * audio channels connected in cascade */
        cameraPrm.numAudioChannels = 0;
        cameraPrm.numVipInst = 1;
        cameraPrm.tilerEnable = FALSE;
    
    	cameraPrm.vsEnable = 0;
        pCameraInstPrm = &cameraPrm.vipInst[0];
        pCameraInstPrm->vipInstId = SYSTEM_CAMERA_INST_VP_CSI2;
        pCameraInstPrm->videoDecoderId = MultiCh_getSensorId(gUI_mcfw_config.sensorId);
        pCameraInstPrm->inDataFormat = SYSTEM_DF_YUV420SP_UV;
    	pCameraInstPrm->sensorOutWidth  = 1920;
    	pCameraInstPrm->sensorOutHeight = 1080;
    #ifdef YUV_FRAMES_TO_A8
    	pCameraInstPrm->standard = SYSTEM_STD_1080P_30;
    #else
    	pCameraInstPrm->standard = SYSTEM_STD_1080P_60;
    #endif
        pCameraInstPrm->numOutput = 2;
    
        /* First stream */
        pCameraOutPrm = &pCameraInstPrm->outParams[0];
        pCameraOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV; //SYSTEM_DF_YUV420SP_VU;//SYSTEM_DF_YUV422I_VYUY;
        pCameraOutPrm->scEnable = FALSE;
        pCameraOutPrm->scOutWidth = 1920;
        pCameraOutPrm->scOutHeight = 1080;
        pCameraOutPrm->outQueId = 0;
    
        /* Second stream */
        pCameraOutPrm = &pCameraInstPrm->outParams[1];
        pCameraOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
        pCameraOutPrm->scEnable = FALSE;
        pCameraOutPrm->scOutWidth = 720;
        pCameraOutPrm->scOutHeight = 480;
    	pCameraOutPrm->standard = SYSTEM_STD_NTSC;//SYSTEM_STD_PAL;
        pCameraOutPrm->outQueId = 1;
    
        /* 2A config */
        cameraPrm.t2aConfig.n2A_vendor = gUI_mcfw_config.n2A_vendor;
        cameraPrm.t2aConfig.n2A_mode = gUI_mcfw_config.n2A_mode;
    #endif
    
    #ifdef RAW_FRAMES_TO_A8
    	/* isp link params */
    	ispPrm.inQueParams.prevLinkId    = dupId[RAW_DUP_IDX];
    	ispPrm.inQueParams.prevLinkQueId = 0;
    	ispPrm.numOutQueue               = 2;
    	ispPrm.outQueInfo[0].nextLink    = dupId[HDMIDIS_DUP_IDX];
    	ispPrm.outQueInfo[1].nextLink    = dupId[TVOUT_DUP_IDX];
    	ispPrm.clkDivM				     = 10;
    	ispPrm.clkDivN       			 = 20;
    	ispPrm.vsEnable                  = FALSE;
    
    	ispPrm.outQueuePrm[0].dataFormat = SYSTEM_DF_YUV422I_VYUY;
    	ispPrm.outQueuePrm[0].width      = 1920;
    	ispPrm.outQueuePrm[0].height     = 1080;
    
    	ispPrm.outQueuePrm[1].dataFormat = SYSTEM_DF_YUV420SP_VU;
    	ispPrm.outQueuePrm[1].width      = 720;
    	ispPrm.outQueuePrm[1].height     = 480;
    	ispPrm.outQueuePrm[1].standard   = SYSTEM_STD_NTSC;//SYSTEM_STD_PAL;//SYSTEM_STD_NTSC;
    #endif
    
        /* dup link parameters*/
    #ifdef RAW_FRAMES_TO_A8
        dupPrm[HDMIDIS_DUP_IDX].inQueParams.prevLinkId = ispId;
    #else
        dupPrm[HDMIDIS_DUP_IDX].inQueParams.prevLinkId = gVcamModuleContext.cameraId;
    #endif
        dupPrm[HDMIDIS_DUP_IDX].inQueParams.prevLinkQueId = 0;
        dupPrm[HDMIDIS_DUP_IDX].numOutQue = 2;
        dupPrm[HDMIDIS_DUP_IDX].outQueParams[0].nextLink = gVcamModuleContext.ipcFramesOutVpssId;
        dupPrm[HDMIDIS_DUP_IDX].outQueParams[1].nextLink = hdNullId;
        dupPrm[HDMIDIS_DUP_IDX].notifyNextLink = TRUE;
    
    #ifdef RAW_FRAMES_TO_A8
        dupPrm[TVOUT_DUP_IDX].inQueParams.prevLinkId = ispId;
    #else
        dupPrm[TVOUT_DUP_IDX].inQueParams.prevLinkId = gVcamModuleContext.cameraId;
    #endif
        dupPrm[TVOUT_DUP_IDX].inQueParams.prevLinkQueId = 1;
        dupPrm[TVOUT_DUP_IDX].numOutQue = 2;
    #ifdef YUV_FRAMES_TO_A8
    	dupPrm[TVOUT_DUP_IDX].outQueParams[0].nextLink = gVcamModuleContext.ipcFramesOutVpssToHostId;
    
    	/* Set ipcFramesOutVpss link info */
    	ipcFramesOutVpssToHostPrm.baseCreateParams.noNotifyMode = TRUE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.notifyNextLink = FALSE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.notifyPrevLink = TRUE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkId = dupId[TVOUT_DUP_IDX];
    	ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.outQueParams[0].nextLink = gVcamModuleContext.ipcFramesInHostId;
    
    	ipcFramesInHostPrm.baseCreateParams.noNotifyMode = TRUE;
    	ipcFramesInHostPrm.baseCreateParams.notifyNextLink = FALSE;
    	ipcFramesInHostPrm.baseCreateParams.notifyPrevLink = FALSE;
    	ipcFramesInHostPrm.baseCreateParams.inQueParams.prevLinkId = gVcamModuleContext.ipcFramesOutVpssToHostId;
    	ipcFramesInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    	ipcFramesInHostPrm.baseCreateParams.outQueParams[0].nextLink = SYSTEM_LINK_ID_INVALID;
    	ipcFramesInHostPrm.exportOnlyPhyAddr = TRUE;
    
    	ipcFramesInHostPrm.cbCtx = &gVcamModuleContext;
    	ipcFramesInHostPrm.cbFxn = Vcam_ipcFramesInCbFxn;
    
    	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.outQueParams[0].nextLink = gVdisModuleContext.ipcFramesInVpssFromHostId;
    
    	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.outQueParams[0].nextLink = gVdisModuleContext.displayId[VDIS_DEV_SD];
    #else
        dupPrm[TVOUT_DUP_IDX].outQueParams[0].nextLink = gVdisModuleContext.displayId[VDIS_DEV_SD];
    #endif
    
    #ifdef RAW_FRAMES_TO_A8
    	/* Set ipcFramesOutVpss link info */
    	ipcFramesOutVpssToHostPrm.baseCreateParams.noNotifyMode = TRUE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.notifyNextLink = FALSE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.notifyPrevLink = TRUE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkId = dupId[RAW_DUP_IDX];
    	ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 1;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.outQueParams[0].nextLink = gVcamModuleContext.ipcFramesInHostId;
    
    	ipcFramesInHostPrm.baseCreateParams.noNotifyMode = TRUE;
    	ipcFramesInHostPrm.baseCreateParams.notifyNextLink = FALSE;
    	ipcFramesInHostPrm.baseCreateParams.notifyPrevLink = FALSE;
    	ipcFramesInHostPrm.baseCreateParams.inQueParams.prevLinkId = gVcamModuleContext.ipcFramesOutVpssToHostId;
    	ipcFramesInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    	ipcFramesInHostPrm.baseCreateParams.outQueParams[0].nextLink = SYSTEM_LINK_ID_INVALID;
    	ipcFramesInHostPrm.exportOnlyPhyAddr = TRUE;
    
    	ipcFramesInHostPrm.cbCtx = &gVcamModuleContext;
    	ipcFramesInHostPrm.cbFxn = Vcam_ipcFramesInCbFxn;
    #endif
    
    	dupPrm[TVOUT_DUP_IDX].outQueParams[1].nextLink = sdNullId;
        dupPrm[TVOUT_DUP_IDX].notifyNextLink = TRUE;
    
        /* ipc Link Params */
        ipcFramesOutVpssPrm.baseCreateParams.noNotifyMode = FALSE;
    	ipcFramesOutVpssPrm.baseCreateParams.notifyNextLink = TRUE;
    	ipcFramesOutVpssPrm.baseCreateParams.notifyPrevLink = TRUE;
        ipcFramesOutVpssPrm.baseCreateParams.notifyProcessLink = TRUE;	
    	ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkId = dupId[HDMIDIS_DUP_IDX];
        ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        ipcFramesOutVpssPrm.baseCreateParams.outQueParams[0].nextLink = gVdisModuleContext.displayId[0];
        ipcFramesOutVpssPrm.baseCreateParams.processLink = gVcamModuleContext.ipcFramesInDspId;
    
    	ipcFramesInDspPrm.baseCreateParams.noNotifyMode = FALSE;
    	ipcFramesInDspPrm.baseCreateParams.notifyNextLink = TRUE;
    	ipcFramesInDspPrm.baseCreateParams.notifyPrevLink = TRUE;
    	ipcFramesInDspPrm.baseCreateParams.inQueParams.prevLinkId = gVcamModuleContext.ipcFramesOutVpssId;
    	ipcFramesInDspPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    	ipcFramesInDspPrm.baseCreateParams.outQueParams[0].nextLink = gVcamModuleContext.algId;
    
        /* alg Link Params */
        AlgLink_CreateParams_Init(&algPrm);
    	algPrm.enableOSDAlg = TRUE;
    	algPrm.inQueParams.prevLinkId = gVcamModuleContext.ipcFramesInDspId;
    	algPrm.inQueParams.prevLinkQueId = 0;
    	algPrm.outQueParams.nextLink = SYSTEM_LINK_ID_INVALID;
    	algPrm.osdChCreateParams->maxWidth = 352;
    	algPrm.osdChCreateParams->maxHeight = 288;
    	algPrm.osdChCreateParams->chDefaultParams.chId = 0;
    	algPrm.osdChCreateParams->chDefaultParams.numWindows = 0;
    	
        /* display link params */
        MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm);
        displayPrm.inQueParams[0].prevLinkId = gVcamModuleContext.ipcFramesOutVpssId;
        displayPrm.inQueParams[0].prevLinkQueId = 0;
        displayPrm.displayRes = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_HDMI].resolution;
    	displayPrm.displayId  = DISPLAY_LINK_DISPLAY_SC2;
    
        MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm_SD);
    #ifdef YUV_FRAMES_TO_A8
    	displayPrm_SD.inQueParams[0].prevLinkId = gVcamModuleContext.ipcFramesInHostId;
    #else
        displayPrm_SD.inQueParams[0].prevLinkId = dupId[TVOUT_DUP_IDX];
    #endif
    	displayPrm_SD.inQueParams[0].prevLinkQueId = 0;
        displayPrm_SD.displayRes = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;
    	displayPrm_SD.displayId  = DISPLAY_LINK_DISPLAY_SD;
    
     //   MultiCh_displayCtrlInit(&gVdisModuleContext.vdisConfig);
    
        /* null Link Params */
        hdNullPrm.numInQue = 1;
        hdNullPrm.inQueParams[0].prevLinkId = dupId[HDMIDIS_DUP_IDX];
        hdNullPrm.inQueParams[0].prevLinkQueId = 1;
    
        sdNullPrm.numInQue = 1;
        sdNullPrm.inQueParams[0].prevLinkId = dupId[TVOUT_DUP_IDX];
        sdNullPrm.inQueParams[0].prevLinkQueId = 1;
    
        /* Links Creation */
        /* Camera Link */
        System_linkCreate(gVcamModuleContext.cameraId, &cameraPrm,
                          sizeof(cameraPrm));
        System_linkControl(gVcamModuleContext.cameraId,
                           CAMERA_LINK_CMD_DETECT_VIDEO, NULL, 0, TRUE);
    
    #ifdef RAW_FRAMES_TO_A8
    	System_linkCreate(dupId[RAW_DUP_IDX], &dupPrm[RAW_DUP_IDX], sizeof(dupPrm[RAW_DUP_IDX]));
    	/* cam pp link create */
    	System_linkCreate(ispId, &ispPrm,sizeof(ispPrm));
    
    	System_linkCreate(gVcamModuleContext.ipcFramesOutVpssToHostId, &ipcFramesOutVpssToHostPrm, sizeof(ipcFramesOutVpssToHostPrm));
    	System_linkCreate(gVcamModuleContext.ipcFramesInHostId, &ipcFramesInHostPrm, sizeof(ipcFramesInHostPrm));
    #endif
    
        /*dup link*/
        System_linkCreate(dupId[HDMIDIS_DUP_IDX], &dupPrm[HDMIDIS_DUP_IDX], sizeof(dupPrm[HDMIDIS_DUP_IDX]));
        System_linkCreate(dupId[TVOUT_DUP_IDX], &dupPrm[TVOUT_DUP_IDX], sizeof(dupPrm[TVOUT_DUP_IDX]));
    
    	/*ipc link */
    	System_linkCreate(gVcamModuleContext.ipcFramesOutVpssId, &ipcFramesOutVpssPrm, sizeof(ipcFramesOutVpssPrm));
    	System_linkCreate(gVcamModuleContext.ipcFramesInDspId, &ipcFramesInDspPrm, sizeof(ipcFramesInDspPrm));
    
    	/*alg link */
    	System_linkCreate(gVcamModuleContext.algId, &algPrm, sizeof(algPrm));
    
        /* null Link */
        System_linkCreate(hdNullId, &hdNullPrm, sizeof(hdNullPrm));
        System_linkCreate(sdNullId,&sdNullPrm, sizeof(sdNullPrm));
    
    #ifdef YUV_FRAMES_TO_A8
    	System_linkCreate(gVcamModuleContext.ipcFramesOutVpssToHostId, &ipcFramesOutVpssToHostPrm, sizeof(ipcFramesOutVpssToHostPrm));
    	System_linkCreate(gVcamModuleContext.ipcFramesInHostId, &ipcFramesInHostPrm, sizeof(ipcFramesInHostPrm));
    
    	System_linkGetInfo(gVcamModuleContext.ipcFramesInHostId,&framesProducerLinkInfo);
    	OSA_assert(framesProducerLinkInfo.numQue == 1);
    	ipcFramesOutHostPrm.inQueInfo = framesProducerLinkInfo.queInfo[0];
    
    	System_linkCreate(gVdisModuleContext.ipcFramesOutHostId, &ipcFramesOutHostPrm, sizeof(ipcFramesOutHostPrm));
    	System_linkCreate(gVdisModuleContext.ipcFramesInVpssFromHostId, &ipcFramesInVpssFromHostPrm, sizeof(ipcFramesInVpssFromHostPrm));
    #endif
    
        /* display link */
        System_linkCreate(gVdisModuleContext.displayId[0], &displayPrm,
                          sizeof(displayPrm));
        System_linkCreate(gVdisModuleContext.displayId[VDIS_DEV_SD], &displayPrm_SD,
                          sizeof(displayPrm_SD));
    
        MultiCh_memPrintHeapStatus();
        OSA_printf("USECASE SETUP DONE\n");
    }
    
    /* ===================================================================
     *  @func     MultiCh_deleteStreamCaptureDisplay
     *
     *  @desc     Function does the following
     *
     *  @modif    This function modifies the following structures
     *
     *  @inputs   This function takes the following inputs
     *            <argument name>
     *            Description of usage
     *            <argument name>
     *            Description of usage
     *
     *  @outputs  <argument name>
     *            Description of usage
     *
     *  @return   Return value of this function if any
     *  ==================================================================
     */
    Void MultiCh_deleteStreamCaptureDisplay()
    {
    	UInt32 dupId[NUM_DUP_LINK];
    	UInt32 hdNullId,sdNullId;
    
    #ifdef RAW_FRAMES_TO_A8
    	UInt32 ispId = SYSTEM_LINK_ID_ISP_0;
    	dupId[RAW_DUP_IDX]   = SYSTEM_VPSS_LINK_ID_DUP_2;
    #endif
    
    	/* dup Link IDs*/
        dupId[HDMIDIS_DUP_IDX] = SYSTEM_VPSS_LINK_ID_DUP_0;
        dupId[TVOUT_DUP_IDX]   = SYSTEM_VPSS_LINK_ID_DUP_1;
    
        /* null link IDs*/
        hdNullId = SYSTEM_VPSS_LINK_ID_NULL_0;
        sdNullId = SYSTEM_VPSS_LINK_ID_NULL_1;
    
        /* Links Deletion in reverse order */
    
    	/* Display links */
    	System_linkDelete(gVdisModuleContext.displayId[VDIS_DEV_SD]);
    	System_linkDelete(gVdisModuleContext.displayId[0]);
    
    	/* Null links */
    	System_linkDelete(sdNullId);
    	System_linkDelete(hdNullId);
    
    	/* alg links */
    	System_linkDelete(gVcamModuleContext.algId);
    
    	/* ipc links */
    	System_linkDelete(gVcamModuleContext.ipcFramesInDspId);
    	System_linkDelete(gVcamModuleContext.ipcFramesOutVpssId);
    
    	/* Dup links */
    	System_linkDelete(dupId[TVOUT_DUP_IDX]);
    	System_linkDelete(dupId[HDMIDIS_DUP_IDX]);
    
    #ifdef RAW_FRAMES_TO_A8
    	System_linkDelete(dupId[RAW_DUP_IDX]);
        System_linkDelete(ispId);
    #endif
    
    #ifdef YUV_FRAMES_TO_A8
    	System_linkDelete(gVcapModuleContext.ipcFramesOutVpssToHostId);
    	System_linkDelete(gVcapModuleContext.ipcFramesInHostId);
    	System_linkDelete(gVdisModuleContext.ipcFramesOutHostId);
    	System_linkDelete(gVdisModuleContext.ipcFramesInVpssFromHostId);
    #endif
    
        /* Camera Link */
        System_linkDelete(gVcamModuleContext.cameraId);
    
     //   MultiCh_displayCtrlDeInit(&gVdisModuleContext.vdisConfig);
    
        /* Print the HWI, SWI and all tasks load */
        /* Reset the accumulated timer ticks */
        MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE);
    
        //System_deInit();
    }
    

    and here is error report:

    7433.error.txt
    [host]  159: MCFW  : CPU Revision [ES2.1] !!! 
    
     [host]  159: MCFW  : Detected [UNKNOWN] Board !!! 
    
     [host]  159: MCFW  : Base Board Revision [REV A] !!! 
     [m3vpss ] VPS_DCTRL_INST_0
     [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_DVO2
     [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_HDMI
     [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_SD
     [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_CLK_SRC VPS_DC_VENC_HDMI | VPS_DC_VENC_DVO2
     [m3vpss ]  8126: CAMERA: Create in progress !!!
     [m3vpss ]  8126: CAMERA: VIP0 PortA camera mode is [ 8-bit, Non-mux Embedded Sync] !!! 
     [m3vpss ]  8136: CAMERA: VIP 0: VID DEC 268436736 (0x36): bebebebe:bebebebe:8ebd60d8, AUD_STATUS -1094795586
     [m3vpss ] Stream ID 0: chId = 0 VpsUtils_queCreate.
     [m3vpss ] Stream ID 1: chId = 0 VpsUtils_queCreate.
     [m3vpss ]  8335: CAMERA: Create Done !!!
     [m3vpss ]  8422: CAMERA: Detect video in progress !!!
     [m3vpss ]  8422: CAMERAUnable to handle kernel NULL pointer dereference at virtual address 00000000
    : Detect video Dpgd = c314c000
    one !!!
     [m3vps[00000000] *pgd=83161031s ]  8521: DUP  , *pte=00000000 : Create Done !, *ppte=00000000!!
    
    Internal error: Oops: 17 [#1]
    last sysfs file: /sys/devices/virtual/gpio/gpio106/value
    Modules linked in: g_file_storage ti81xxhdmi vpss osa_kermod sbull syslink [last unloaded: sbull]
    CPU: 0    Not tainted  (2.6.37_DM8127_IPNC_3.50.00 #1)
    PC is at MessageQ_put+0xa4/0x20c [syslink]
    LR is at MultiProc_self+0x24/0x30 [syslink]
    pc : [<bf026fc4>]    lr : [<bf01f258>]    psr: 40000013
    sp : c3f09e60  ip : c3f09e50  fp : c3f09e94
    r10: be8ccad8  r9 : c3f08000  r8 : 00000000
    r7 : 0000ffff  r6 : 00000000  r5 : 00000000  r4 : cf003c80
    r3 : 00000000  r2 : 00000001  r1 : 0000000a  r0 : 00000000
    Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    Control: 10c5387d  Table: 8314c019  DAC: 00000015
    Process ipnc_rdk_mcfw.o (pid: 365, stack limit = 0xc3f082e8)
    Stack: (0xc3f09e60 to 0xc3f0a000)
    9e60: cf003c80 00003c80 cf003c80 cf003c80 c3f09e94 c018f35c c32eab80 be8ccad8
    9e80: 0000016d 00000000 c3f09efc c3f09e98 bf04cec4 bf026f2c c018f35c be8ccad8
    9ea0: 00000000 00003c80 00030001 0003ee6c 403adc80 00000000 c3f09efc c3f09ec8
    9ec0: c0391ff8 c008b854 c3f09f0c c3f09ed8 c006bac4 cf003c80 c41ad980 00000004
    9ee0: be8ccad8 00000004 00000000 00000000 c3f09f74 c3f09f00 c00d6874 bf04cdd4
    9f00: 00000060 00268580 c3f09f5c c3f09f18 c0210d48 c020f3ec c4423080 00000001
    9f20: c3f09f4c c3f09f30 00000002 00000000 fffffffe 00000000 c3f09f6c c3f09f48
    9f40: c039217c c00439ec ffffffff c32eab80 c32eab80 be8ccad8 c018f35c 00000004
    9f60: 00000000 c3f08000 c3f09fa4 c3f09f78 c00d6940 c00d63b0 c3f09fac 00000001
    9f80: c038ea18 be8ccad8 00113598 c018f35c 00000036 c0048568 00000000 c3f09fa8
    9fa0: c00483c0 c00d68f4 be8ccad8 00113598 00000004 c018f35c be8ccad8 00000002
    9fc0: be8ccad8 00113598 c018f35c 00000036 00268580 00000000 00000040 00000001
    9fe0: 0011357c be8ccab0 000439d8 4033d1cc 20000010 00000004 00000000 00000000
    Backtrace: 
    [<bf026f20>] (MessageQ_put+0x0/0x20c [syslink]) from [<bf04cec4>] (MessageQDrv_ioctl+0xfc/0x848 [syslink])
     r8:00000000 r7:0000016d r6:be8ccad8 r5:c32eab80 r4:c018f35c
    [<bf04cdc8>] (MessageQDrv_ioctl+0x0/0x848 [syslink]) from [<c00d6874>] (do_vfs_ioctl+0x4d0/0x544)
    [<c00d63a4>] (do_vfs_ioctl+0x0/0x544) from [<c00d6940>] (sys_ioctl+0x58/0x7c)
     r9:c3f08000 r8:00000000 r7:00000004 r6:c018f35c r5:be8ccad8
    r4:c32eab80
    [<c00d68e8>] (sys_ioctl+0x0/0x7c) from [<c00483c0>] (ret_fast_syscall+0x0/0x30)
     r8:c0048568 r7:00000036 r6:c018f35c r5:00113598 r4:be8ccad8
    Code: 030f7fff 0a000001 e1d481bc e1d471b8 (e5903000) 
    ---[ end trace a1285e084dab54c8 ]---
     [m3vpss ]  8526: DUP   : Create Done !!!
     [m3vpss ]  8527: IPC_FRAMES_OUT   : Create in progress !!!
     [m3vpss ]  8529: IPC_FRAMES_OUT   : Create Done !!!
     [m3vpss ] DCC server task running 
    queue id:0
    ApproDrvInit: 3
    queue id:131076
    queue id:0
    queue id:32769
    queue id:0
    ApproDrvInit: 7
    queue id:131076
    TimeOut occure in boot_proc.
    Program exit.
    TimeOut occure in boot_proc.
    Program exit.
    ApproDrvExit: 7
    Error: WaitStreamReady Fail.
    Error: SemWait: Invalid Semaphore handler

    Thank you very much.

    regards,

    Zhao

     

  • Hi Anand 

    I try to correct my configuration but fail  , now I add a sclr link before IpcFramOutVpss link to make it 320*192(they do it beforre valink,but I don't actually know why,maybe dsp only handle 320*192 frame?) the dataflow now is:

    Camer(RSZB)——》dup——》sclr——》ipcframeOutVpss《——》ipcframeInDsp——》alglink,and display(TVOUT) is the nextlink of ipcframeOutVpss.

    According to the error report,I think it stucks in creating ipcframeInDsp link,because I can see: 

    [m3vpss ]  8341: IPC_FRAMES_OUT   : Create in progress !!!
     [m3vpss ]  8344: IPC_FRAMES_OUT   : Create Done !!!

    and then it stucks.

    here I update my new configuration:

    5850.multich_capturedisplay.c
    /** ==================================================================
     *  @file   multich_Stream_CaptureDisplay.c
     *
     *  @path    ipnc_mcfw/mcfw/src_linux/mcfw_api/usecases/
     *
     *  @desc   This  File contains.
     * ===================================================================
     *  Copyright (c) Texas Instruments Inc 2011, 2012
     *
     *  Use of this software is controlled by the terms and conditions found
     *  in the license agreement under which this software has been supplied
     * ===================================================================*/
    
    /*------------------------------ TRIPLE OUT <1080p + D1 + MJPEG> ----------------------------------
    
                                        Capture
    								 RSZA     RSZB
                                   1080P60    D130
                                  (YUV420)  (YUV420)
                                      |          |
                                 (0)-DUP0-(1)   (0)-DUP1-(1)
                                  |        |    |         |
                          HDMI DISPLAY  NULL1  TVOUT      NULL0
    
    ------------------------------------------------------------------------------------------*/
    
    #include "mcfw/src_linux/mcfw_api/usecases/multich_common.h"
    #include "mcfw/src_linux/mcfw_api/usecases/multich_ipcbits.h"
    #include "demos/mcfw_api_demos/multich_usecase/ti_mcfw_ipnc_main.h"
    
    /* =============================================================================
     * Externs
     * ============================================================================= */
    
    /* =============================================================================
     * Use case code
     * ============================================================================= */
    #define NUM_DUP_LINK           (3)
    #define HDMIDIS_DUP_IDX        (0)
    #define TVOUT_DUP_IDX          (1)
    #define RAW_DUP_IDX            (2)
    
    
    /* ===================================================================
     *  @func     MultiCh_createStreamCaptureDisplay
     *
     *  @desc     Function does the following
     *
     *  @modif    This function modifies the following structures
     *
     *  @inputs   This function takes the following inputs
     *            <argument name>
     *            Description of usage
     *            <argument name>
     *            Description of usage
     *
     *  @outputs  <argument name>
     *            Description of usage
     *
     *  @return   Return value of this function if any
     *  ==================================================================
     */
    Void MultiCh_createStreamCaptureDisplay()
    {
        CameraLink_CreateParams cameraPrm;
    
        NullLink_CreateParams hdNullPrm;
        NullLink_CreateParams sdNullPrm;
    
        DisplayLink_CreateParams displayPrm;
        DisplayLink_CreateParams displayPrm_SD;
    
        CameraLink_VipInstParams *pCameraInstPrm;
    
        CameraLink_OutParams *pCameraOutPrm;
    
        UInt32 hdNullId;
        UInt32 sdNullId;
    
    	SclrLink_CreateParams sclrPrm;
    
        IpcFramesOutLinkRTOS_CreateParams ipcFramesOutVpssPrm;
        IpcFramesInLinkRTOS_CreateParams ipcFramesInDspPrm;
    
        MULTICH_INIT_STRUCT(IpcFramesOutLinkRTOS_CreateParams ,ipcFramesOutVpssPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams ,ipcFramesInDspPrm);
    
        AlgLink_CreateParams algPrm;
    
        UInt32 dupId[NUM_DUP_LINK];
        DupLink_CreateParams dupPrm[NUM_DUP_LINK];
    
    #ifdef YUV_FRAMES_TO_A8
        System_LinkInfo framesProducerLinkInfo;
    
        IpcFramesOutLinkRTOS_CreateParams  ipcFramesOutVpssToHostPrm;
        IpcFramesInLinkHLOS_CreateParams   ipcFramesInHostPrm;
        IpcFramesOutLinkHLOS_CreateParams  ipcFramesOutHostPrm;
        IpcFramesInLinkRTOS_CreateParams   ipcFramesInVpssFromHostPrm;
    
    	MULTICH_INIT_STRUCT(IpcFramesOutLinkRTOS_CreateParams ,ipcFramesOutVpssToHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkHLOS_CreateParams  ,ipcFramesInHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesOutLinkHLOS_CreateParams ,ipcFramesOutHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkRTOS_CreateParams  ,ipcFramesInVpssFromHostPrm);
    
    	gVcamModuleContext.ipcFramesOutVpssToHostId  = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_1;
    	gVcamModuleContext.ipcFramesInHostId		 = SYSTEM_HOST_LINK_ID_IPC_FRAMES_IN_0;
    	gVdisModuleContext.ipcFramesOutHostId		 = SYSTEM_HOST_LINK_ID_IPC_FRAMES_OUT_0;
    	gVdisModuleContext.ipcFramesInVpssFromHostId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_IN_0;
    #endif
    #ifdef RAW_FRAMES_TO_A8
    	IspLink_CreateParams  ispPrm;
    	UInt32 ispId;
        IpcFramesOutLinkRTOS_CreateParams  ipcFramesOutVpssToHostPrm;
        IpcFramesInLinkHLOS_CreateParams   ipcFramesInHostPrm;
    
    	MULTICH_INIT_STRUCT(IpcFramesOutLinkRTOS_CreateParams ,ipcFramesOutVpssToHostPrm);
        MULTICH_INIT_STRUCT(IpcFramesInLinkHLOS_CreateParams  ,ipcFramesInHostPrm);
    
    	gVcamModuleContext.ipcFramesOutVpssToHostId  = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_1;
    	gVcamModuleContext.ipcFramesInHostId		 = SYSTEM_HOST_LINK_ID_IPC_FRAMES_IN_0;
    
    	dupId[RAW_DUP_IDX] = SYSTEM_VPSS_LINK_ID_DUP_2;
    	ispId = SYSTEM_LINK_ID_ISP_0;
    #endif
    
    	/* System init */
    //    System_init();
    
        OSA_printf
            ("\n********* Entered Capture + Display usecase - H264 1080p @60 fps, H264 D1 @30fps ********\n\n");
    
        MultiCh_detectBoard();
    
        System_linkControl(SYSTEM_LINK_ID_M3VPSS,
                           SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES, NULL, 0, TRUE);
    
        gVcamModuleContext.cameraId = SYSTEM_LINK_ID_CAMERA;
    
        /* dup Link IDs*/
        dupId[HDMIDIS_DUP_IDX] = SYSTEM_VPSS_LINK_ID_DUP_0;
        dupId[TVOUT_DUP_IDX] = SYSTEM_VPSS_LINK_ID_DUP_1;
    
        /* display IDs */
        gVdisModuleContext.displayId[0] = SYSTEM_LINK_ID_DISPLAY_0; /* ON AND OFF
    																* CHIP HDMI */
        gVdisModuleContext.displayId[VDIS_DEV_SD] = SYSTEM_LINK_ID_DISPLAY_2;
    
        /* null link IDs*/
        hdNullId = SYSTEM_VPSS_LINK_ID_NULL_0;
        sdNullId = SYSTEM_VPSS_LINK_ID_NULL_1;
    
    	/*sclr link IDs*/
    	gVcamModuleContext.sclrId[0] = SYSTEM_LINK_ID_SCLR_INST_0;
    
        /* ipc link IDs*/
        gVcamModuleContext.ipcFramesOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_FRAMES_OUT_0;
        gVcamModuleContext.ipcFramesInDspId   = SYSTEM_DSP_LINK_ID_IPC_FRAMES_IN_0;
    
        /* alg link IDs*/
        gVcamModuleContext.osdId = SYSTEM_LINK_ID_ALG_0;
    
    #ifdef RAW_FRAMES_TO_A8
        /* Camera Link params */
        CameraLink_CreateParams_Init(&cameraPrm);
    	cameraPrm.captureMode = CAMERA_LINK_CAPMODE_DDR;
        cameraPrm.outQueParams[0].nextLink = dupId[RAW_DUP_IDX];
    	cameraPrm.ispLinkId = ispId;
    
        /* This is for TVP5158 Audio Channels - Change it to 16 if there are 16
         * audio channels connected in cascade */
        cameraPrm.numAudioChannels = 0;
        cameraPrm.numVipInst = 1;
        cameraPrm.tilerEnable = FALSE;
    
        pCameraInstPrm = &cameraPrm.vipInst[0];
        pCameraInstPrm->vipInstId = SYSTEM_CAMERA_INST_VP_CSI2;
        pCameraInstPrm->videoDecoderId = MultiCh_getSensorId(gUI_mcfw_config.sensorId);
        pCameraInstPrm->inDataFormat = SYSTEM_DF_YUV420SP_UV;
    	pCameraInstPrm->sensorOutWidth  = 1920;
    	pCameraInstPrm->sensorOutHeight = 1080;
        pCameraInstPrm->standard = SYSTEM_STD_1080P_30;
    
        pCameraInstPrm->numOutput = 1;
    
        pCameraOutPrm = &pCameraInstPrm->outParams[0];
        pCameraOutPrm->dataFormat = SYSTEM_DF_BAYER_RAW;
        pCameraOutPrm->scEnable = FALSE;
        pCameraOutPrm->scOutWidth = 1920;
        pCameraOutPrm->scOutHeight = 1080;
        pCameraOutPrm->outQueId = 0;
    
        /* 2A config */
        cameraPrm.t2aConfig.n2A_vendor = gUI_mcfw_config.n2A_vendor;
        cameraPrm.t2aConfig.n2A_mode = gUI_mcfw_config.n2A_mode;
    
        dupPrm[RAW_DUP_IDX].inQueParams.prevLinkId = gVcamModuleContext.cameraId;
        dupPrm[RAW_DUP_IDX].inQueParams.prevLinkQueId = 0;
        dupPrm[RAW_DUP_IDX].numOutQue = 2;
        dupPrm[RAW_DUP_IDX].outQueParams[0].nextLink = ispId;
        dupPrm[RAW_DUP_IDX].outQueParams[1].nextLink = gVcamModuleContext.ipcFramesOutVpssToHostId;
        dupPrm[RAW_DUP_IDX].notifyNextLink = TRUE;
    #else
        /* Camera Link params */
        CameraLink_CreateParams_Init(&cameraPrm);
    	cameraPrm.captureMode = CAMERA_LINK_CAPMODE_ISIF;
        cameraPrm.outQueParams[0].nextLink = dupId[HDMIDIS_DUP_IDX] ;
        cameraPrm.outQueParams[1].nextLink = dupId[TVOUT_DUP_IDX];
        /* This is for TVP5158 Audio Channels - Change it to 16 if there are 16
         * audio channels connected in cascade */
        cameraPrm.numAudioChannels = 0;
        cameraPrm.numVipInst = 1;
        cameraPrm.tilerEnable = FALSE;
    
    	cameraPrm.vsEnable = 0;
        pCameraInstPrm = &cameraPrm.vipInst[0];
        pCameraInstPrm->vipInstId = SYSTEM_CAMERA_INST_VP_CSI2;
        pCameraInstPrm->videoDecoderId = MultiCh_getSensorId(gUI_mcfw_config.sensorId);
        pCameraInstPrm->inDataFormat = SYSTEM_DF_YUV420SP_UV;
    	pCameraInstPrm->sensorOutWidth  = 1920;
    	pCameraInstPrm->sensorOutHeight = 1080;
    #ifdef YUV_FRAMES_TO_A8
    	pCameraInstPrm->standard = SYSTEM_STD_1080P_30;
    #else
    	pCameraInstPrm->standard = SYSTEM_STD_1080P_60;
    #endif
        pCameraInstPrm->numOutput = 2;
    
        /* First stream */
        pCameraOutPrm = &pCameraInstPrm->outParams[0];
        pCameraOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV; //SYSTEM_DF_YUV420SP_VU;//SYSTEM_DF_YUV422I_VYUY;
        pCameraOutPrm->scEnable = FALSE;
        pCameraOutPrm->scOutWidth = 1920;
        pCameraOutPrm->scOutHeight = 1080;
        pCameraOutPrm->outQueId = 0;
    
        /* Second stream */
        pCameraOutPrm = &pCameraInstPrm->outParams[1];
        pCameraOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV;
        pCameraOutPrm->scEnable = FALSE;
        pCameraOutPrm->scOutWidth = 720;
        pCameraOutPrm->scOutHeight = 480;
    	pCameraOutPrm->standard = SYSTEM_STD_NTSC;//SYSTEM_STD_PAL;
        pCameraOutPrm->outQueId = 1;
    
        /* 2A config */
        cameraPrm.t2aConfig.n2A_vendor = gUI_mcfw_config.n2A_vendor;
        cameraPrm.t2aConfig.n2A_mode = gUI_mcfw_config.n2A_mode;
    #endif
    
    #ifdef RAW_FRAMES_TO_A8
    	/* isp link params */
    	ispPrm.inQueParams.prevLinkId    = dupId[RAW_DUP_IDX];
    	ispPrm.inQueParams.prevLinkQueId = 0;
    	ispPrm.numOutQueue               = 2;
    	ispPrm.outQueInfo[0].nextLink    = dupId[HDMIDIS_DUP_IDX];
    	ispPrm.outQueInfo[1].nextLink    = dupId[TVOUT_DUP_IDX];
    	ispPrm.clkDivM				     = 10;
    	ispPrm.clkDivN       			 = 20;
    	ispPrm.vsEnable                  = FALSE;
    
    	ispPrm.outQueuePrm[0].dataFormat = SYSTEM_DF_YUV422I_VYUY;
    	ispPrm.outQueuePrm[0].width      = 1920;
    	ispPrm.outQueuePrm[0].height     = 1080;
    
    	ispPrm.outQueuePrm[1].dataFormat = SYSTEM_DF_YUV420SP_VU;
    	ispPrm.outQueuePrm[1].width      = 720;
    	ispPrm.outQueuePrm[1].height     = 480;
    	ispPrm.outQueuePrm[1].standard   = SYSTEM_STD_NTSC;//SYSTEM_STD_PAL;//SYSTEM_STD_NTSC;
    #endif
    
        /* dup link parameters*/
    #ifdef RAW_FRAMES_TO_A8
        dupPrm[HDMIDIS_DUP_IDX].inQueParams.prevLinkId = ispId;
    #else
        dupPrm[HDMIDIS_DUP_IDX].inQueParams.prevLinkId = gVcamModuleContext.cameraId;
    #endif
        dupPrm[HDMIDIS_DUP_IDX].inQueParams.prevLinkQueId = 0;
        dupPrm[HDMIDIS_DUP_IDX].numOutQue = 2;
        dupPrm[HDMIDIS_DUP_IDX].outQueParams[0].nextLink = gVdisModuleContext.displayId[0];
        dupPrm[HDMIDIS_DUP_IDX].outQueParams[1].nextLink = hdNullId;
        dupPrm[HDMIDIS_DUP_IDX].notifyNextLink = TRUE;
    
    #ifdef RAW_FRAMES_TO_A8
        dupPrm[TVOUT_DUP_IDX].inQueParams.prevLinkId = ispId;
    #else
        dupPrm[TVOUT_DUP_IDX].inQueParams.prevLinkId = gVcamModuleContext.cameraId;
    #endif
        dupPrm[TVOUT_DUP_IDX].inQueParams.prevLinkQueId = 1;
        dupPrm[TVOUT_DUP_IDX].numOutQue = 2;
    #ifdef YUV_FRAMES_TO_A8
    	dupPrm[TVOUT_DUP_IDX].outQueParams[0].nextLink = gVcamModuleContext.ipcFramesOutVpssToHostId;
    
    	/* Set ipcFramesOutVpss link info */
    	ipcFramesOutVpssToHostPrm.baseCreateParams.noNotifyMode = TRUE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.notifyNextLink = FALSE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.notifyPrevLink = TRUE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkId = dupId[TVOUT_DUP_IDX];
    	ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.outQueParams[0].nextLink = gVcamModuleContext.ipcFramesInHostId;
    
    	ipcFramesInHostPrm.baseCreateParams.noNotifyMode = TRUE;
    	ipcFramesInHostPrm.baseCreateParams.notifyNextLink = FALSE;
    	ipcFramesInHostPrm.baseCreateParams.notifyPrevLink = FALSE;
    	ipcFramesInHostPrm.baseCreateParams.inQueParams.prevLinkId = gVcamModuleContext.ipcFramesOutVpssToHostId;
    	ipcFramesInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    	ipcFramesInHostPrm.baseCreateParams.outQueParams[0].nextLink = SYSTEM_LINK_ID_INVALID;
    	ipcFramesInHostPrm.exportOnlyPhyAddr = TRUE;
    
    	ipcFramesInHostPrm.cbCtx = &gVcamModuleContext;
    	ipcFramesInHostPrm.cbFxn = Vcam_ipcFramesInCbFxn;
    
    	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.outQueParams[0].nextLink = gVdisModuleContext.ipcFramesInVpssFromHostId;
    
    	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.outQueParams[0].nextLink = gVdisModuleContext.displayId[VDIS_DEV_SD];
    #else
        dupPrm[TVOUT_DUP_IDX].outQueParams[0].nextLink = gVcamModuleContext.sclrId[0];
    #endif
    
    #ifdef RAW_FRAMES_TO_A8
    	/* Set ipcFramesOutVpss link info */
    	ipcFramesOutVpssToHostPrm.baseCreateParams.noNotifyMode = TRUE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.notifyNextLink = FALSE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.notifyPrevLink = TRUE;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkId = dupId[RAW_DUP_IDX];
    	ipcFramesOutVpssToHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 1;
    	ipcFramesOutVpssToHostPrm.baseCreateParams.outQueParams[0].nextLink = gVcamModuleContext.ipcFramesInHostId;
    
    	ipcFramesInHostPrm.baseCreateParams.noNotifyMode = TRUE;
    	ipcFramesInHostPrm.baseCreateParams.notifyNextLink = FALSE;
    	ipcFramesInHostPrm.baseCreateParams.notifyPrevLink = FALSE;
    	ipcFramesInHostPrm.baseCreateParams.inQueParams.prevLinkId = gVcamModuleContext.ipcFramesOutVpssToHostId;
    	ipcFramesInHostPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    	ipcFramesInHostPrm.baseCreateParams.outQueParams[0].nextLink = SYSTEM_LINK_ID_INVALID;
    	ipcFramesInHostPrm.exportOnlyPhyAddr = TRUE;
    
    	ipcFramesInHostPrm.cbCtx = &gVcamModuleContext;
    	ipcFramesInHostPrm.cbFxn = Vcam_ipcFramesInCbFxn;
    #endif
    
    	dupPrm[TVOUT_DUP_IDX].outQueParams[1].nextLink = sdNullId;
        dupPrm[TVOUT_DUP_IDX].notifyNextLink = TRUE;
    
    	/* sclr Link Params */
    	SclrLink_CreateParams_Init(&sclrPrm);	
    	sclrPrm.inQueParams.prevLinkId = dupId[TVOUT_DUP_IDX];	
    	sclrPrm.inQueParams.prevLinkQueId = 0;			
    	sclrPrm.outQueParams.nextLink = gVcamModuleContext.ipcFramesOutVpssId;	
    	sclrPrm.tilerEnable = FALSE;	
    	sclrPrm.enableLineSkipSc = FALSE;	
    	sclrPrm.inputFrameRate = 60;	
    	sclrPrm.outputFrameRate = 60;	
    	sclrPrm.scaleMode = DEI_SCALE_MODE_ABSOLUTE;		
    	sclrPrm.outScaleFactor.absoluteResolution.outWidth = 320;    
    	sclrPrm.outScaleFactor.absoluteResolution.outHeight = 192;	
    	sclrPrm.outDataFormat = VF_YUV420SP_UV;	
    	sclrPrm.pathId = SCLR_LINK_SEC0_SC3;
    
        /* ipc Link Params */
        ipcFramesOutVpssPrm.baseCreateParams.noNotifyMode = FALSE;
    	ipcFramesOutVpssPrm.baseCreateParams.notifyNextLink = TRUE;
    	ipcFramesOutVpssPrm.baseCreateParams.notifyPrevLink = TRUE;
        ipcFramesOutVpssPrm.baseCreateParams.notifyProcessLink = TRUE;	
    	ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkId = gVcamModuleContext.sclrId[0];
        ipcFramesOutVpssPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
        ipcFramesOutVpssPrm.baseCreateParams.outQueParams[0].nextLink = gVdisModuleContext.displayId[VDIS_DEV_SD];
        ipcFramesOutVpssPrm.baseCreateParams.processLink = gVcamModuleContext.ipcFramesInDspId;
    
    	ipcFramesInDspPrm.baseCreateParams.noNotifyMode = FALSE;
    	ipcFramesInDspPrm.baseCreateParams.notifyNextLink = TRUE;
    	ipcFramesInDspPrm.baseCreateParams.notifyPrevLink = TRUE;
    	ipcFramesInDspPrm.baseCreateParams.inQueParams.prevLinkId = gVcamModuleContext.ipcFramesOutVpssId;
    	ipcFramesInDspPrm.baseCreateParams.inQueParams.prevLinkQueId = 0;
    	ipcFramesInDspPrm.baseCreateParams.outQueParams[0].nextLink = gVcamModuleContext.osdId;
    
        /* alg Link Params */
        AlgLink_CreateParams_Init(&algPrm);
    	algPrm.enableOSDAlg = TRUE;
    	algPrm.inQueParams.prevLinkId = gVcamModuleContext.ipcFramesInDspId;
    	algPrm.inQueParams.prevLinkQueId = 0;
    	algPrm.outQueParams.nextLink = SYSTEM_LINK_ID_INVALID;
    	algPrm.osdChCreateParams->maxWidth = 320;
    	algPrm.osdChCreateParams->maxHeight = 64;
    	algPrm.osdChCreateParams->chDefaultParams.numWindows = 1;
    	algPrm.osdChCreateParams->chDefaultParams.winPrm[0].startX = 16;
    	algPrm.osdChCreateParams->chDefaultParams.winPrm[0].startY = 32;
    	algPrm.osdChCreateParams->chDefaultParams.winPrm[0].format = SYSTEM_DF_YUV422I_YUYV;
    	algPrm.osdChCreateParams->chDefaultParams.winPrm[0].width = 160;
    	algPrm.osdChCreateParams->chDefaultParams.winPrm[0].height = 32;
    	algPrm.osdChCreateParams->chDefaultParams.winPrm[0].lineOffset = 160;
    	algPrm.osdChCreateParams->chDefaultParams.winPrm[0].globalAlpha = 0x80;	
    	algPrm.osdChCreateParams->chDefaultParams.winPrm[0].transperencyEnable = 1;
    	algPrm.osdChCreateParams->chDefaultParams.winPrm[0].enableWin = 1;
    
        /* display link params */
        MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm);
        displayPrm.inQueParams[0].prevLinkId = dupId[HDMIDIS_DUP_IDX];
        displayPrm.inQueParams[0].prevLinkQueId = 0;
        displayPrm.displayRes = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_HDMI].resolution;
    	displayPrm.displayId  = DISPLAY_LINK_DISPLAY_SC2;
    
        MULTICH_INIT_STRUCT(DisplayLink_CreateParams,displayPrm_SD);
    #ifdef YUV_FRAMES_TO_A8
    	displayPrm_SD.inQueParams[0].prevLinkId = gVcamModuleContext.ipcFramesInHostId;
    #else
        displayPrm_SD.inQueParams[0].prevLinkId = gVcamModuleContext.ipcFramesOutVpssId;
    #endif
    	displayPrm_SD.inQueParams[0].prevLinkQueId = 0;
        displayPrm_SD.displayRes = gVdisModuleContext.vdisConfig.deviceParams[VDIS_DEV_SD].resolution;
    	displayPrm_SD.displayId  = DISPLAY_LINK_DISPLAY_SD;
    
     //   MultiCh_displayCtrlInit(&gVdisModuleContext.vdisConfig);
    
        /* null Link Params */
        hdNullPrm.numInQue = 1;
        hdNullPrm.inQueParams[0].prevLinkId = dupId[HDMIDIS_DUP_IDX];
        hdNullPrm.inQueParams[0].prevLinkQueId = 1;
    
        sdNullPrm.numInQue = 1;
        sdNullPrm.inQueParams[0].prevLinkId = dupId[TVOUT_DUP_IDX];
        sdNullPrm.inQueParams[0].prevLinkQueId = 1;
    
        /* Links Creation */
        /* Camera Link */
        System_linkCreate(gVcamModuleContext.cameraId, &cameraPrm,
                          sizeof(cameraPrm));
        System_linkControl(gVcamModuleContext.cameraId,
                           CAMERA_LINK_CMD_DETECT_VIDEO, NULL, 0, TRUE);
    
    #ifdef RAW_FRAMES_TO_A8
    	System_linkCreate(dupId[RAW_DUP_IDX], &dupPrm[RAW_DUP_IDX], sizeof(dupPrm[RAW_DUP_IDX]));
    	/* cam pp link create */
    	System_linkCreate(ispId, &ispPrm,sizeof(ispPrm));
    
    	System_linkCreate(gVcamModuleContext.ipcFramesOutVpssToHostId, &ipcFramesOutVpssToHostPrm, sizeof(ipcFramesOutVpssToHostPrm));
    	System_linkCreate(gVcamModuleContext.ipcFramesInHostId, &ipcFramesInHostPrm, sizeof(ipcFramesInHostPrm));
    #endif
    
        /*dup link*/
        System_linkCreate(dupId[HDMIDIS_DUP_IDX], &dupPrm[HDMIDIS_DUP_IDX], sizeof(dupPrm[HDMIDIS_DUP_IDX]));
        System_linkCreate(dupId[TVOUT_DUP_IDX], &dupPrm[TVOUT_DUP_IDX], sizeof(dupPrm[TVOUT_DUP_IDX]));
    
    	/*sclr link*/
    	System_linkCreate(gVcamModuleContext.sclrId[0], &sclrPrm, sizeof(sclrPrm));
    
    	/*ipc link */
    	System_linkCreate(gVcamModuleContext.ipcFramesOutVpssId, &ipcFramesOutVpssPrm, sizeof(ipcFramesOutVpssPrm));
    	System_linkCreate(gVcamModuleContext.ipcFramesInDspId, &ipcFramesInDspPrm, sizeof(ipcFramesInDspPrm));
    
    	/*alg link */
    	System_linkCreate(gVcamModuleContext.osdId, &algPrm, sizeof(algPrm));
    
        /* null Link */
        System_linkCreate(hdNullId, &hdNullPrm, sizeof(hdNullPrm));
        System_linkCreate(sdNullId,&sdNullPrm, sizeof(sdNullPrm));
    
    #ifdef YUV_FRAMES_TO_A8
    	System_linkCreate(gVcamModuleContext.ipcFramesOutVpssToHostId, &ipcFramesOutVpssToHostPrm, sizeof(ipcFramesOutVpssToHostPrm));
    	System_linkCreate(gVcamModuleContext.ipcFramesInHostId, &ipcFramesInHostPrm, sizeof(ipcFramesInHostPrm));
    
    	System_linkGetInfo(gVcamModuleContext.ipcFramesInHostId,&framesProducerLinkInfo);
    	OSA_assert(framesProducerLinkInfo.numQue == 1);
    	ipcFramesOutHostPrm.inQueInfo = framesProducerLinkInfo.queInfo[0];
    
    	System_linkCreate(gVdisModuleContext.ipcFramesOutHostId, &ipcFramesOutHostPrm, sizeof(ipcFramesOutHostPrm));
    	System_linkCreate(gVdisModuleContext.ipcFramesInVpssFromHostId, &ipcFramesInVpssFromHostPrm, sizeof(ipcFramesInVpssFromHostPrm));
    #endif
    
        /* display link */
        System_linkCreate(gVdisModuleContext.displayId[0], &displayPrm,
                          sizeof(displayPrm));
        System_linkCreate(gVdisModuleContext.displayId[VDIS_DEV_SD], &displayPrm_SD,
                          sizeof(displayPrm_SD));
    
        MultiCh_memPrintHeapStatus();
        OSA_printf("USECASE SETUP DONE\n");
    }
    
    /* ===================================================================
     *  @func     MultiCh_deleteStreamCaptureDisplay
     *
     *  @desc     Function does the following
     *
     *  @modif    This function modifies the following structures
     *
     *  @inputs   This function takes the following inputs
     *            <argument name>
     *            Description of usage
     *            <argument name>
     *            Description of usage
     *
     *  @outputs  <argument name>
     *            Description of usage
     *
     *  @return   Return value of this function if any
     *  ==================================================================
     */
    Void MultiCh_deleteStreamCaptureDisplay()
    {
    	UInt32 dupId[NUM_DUP_LINK];
    	UInt32 hdNullId,sdNullId;
    
    #ifdef RAW_FRAMES_TO_A8
    	UInt32 ispId = SYSTEM_LINK_ID_ISP_0;
    	dupId[RAW_DUP_IDX]   = SYSTEM_VPSS_LINK_ID_DUP_2;
    #endif
    
    	/* dup Link IDs*/
        dupId[HDMIDIS_DUP_IDX] = SYSTEM_VPSS_LINK_ID_DUP_0;
        dupId[TVOUT_DUP_IDX]   = SYSTEM_VPSS_LINK_ID_DUP_1;
    
        /* null link IDs*/
        hdNullId = SYSTEM_VPSS_LINK_ID_NULL_0;
        sdNullId = SYSTEM_VPSS_LINK_ID_NULL_1;
    
        /* Links Deletion in reverse order */
    
    	/* Display links */
    	System_linkDelete(gVdisModuleContext.displayId[VDIS_DEV_SD]);
    	System_linkDelete(gVdisModuleContext.displayId[0]);
    
    	/* Null links */
    	System_linkDelete(sdNullId);
    	System_linkDelete(hdNullId);
    
    	/* alg links */
    	System_linkDelete(gVcamModuleContext.osdId);
    
    	/* ipc links */
    	System_linkDelete(gVcamModuleContext.ipcFramesInDspId);
    	System_linkDelete(gVcamModuleContext.ipcFramesOutVpssId);
    
    	/* sclr links */
    	System_linkDelete(gVcamModuleContext.sclrId[0]);
    
    	/* Dup links */
    	System_linkDelete(dupId[TVOUT_DUP_IDX]);
    	System_linkDelete(dupId[HDMIDIS_DUP_IDX]);
    
    #ifdef RAW_FRAMES_TO_A8
    	System_linkDelete(dupId[RAW_DUP_IDX]);
        System_linkDelete(ispId);
    #endif
    
    #ifdef YUV_FRAMES_TO_A8
    	System_linkDelete(gVcapModuleContext.ipcFramesOutVpssToHostId);
    	System_linkDelete(gVcapModuleContext.ipcFramesInHostId);
    	System_linkDelete(gVdisModuleContext.ipcFramesOutHostId);
    	System_linkDelete(gVdisModuleContext.ipcFramesInVpssFromHostId);
    #endif
    
        /* Camera Link */
        System_linkDelete(gVcamModuleContext.cameraId);
    
     //   MultiCh_displayCtrlDeInit(&gVdisModuleContext.vdisConfig);
    
        /* Print the HWI, SWI and all tasks load */
        /* Reset the accumulated timer ticks */
        MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE);
    
        //System_deInit();
    }
    

    and new error report:

    3438.8127 error.txt
     [host]  314: MCFW  : CPU Revision [ES2.1] !!! 
    
     [host]  314: MCFW  : Detected [UNKNOWN] Board !!! 
    
     [host]  314: MCFW  : Base Board Revision [REV A] !!! 
     [m3vpss ]  7891: CAMERA: Create in progress !!!
     [m3vpss ]  7892: CAMERA: VIP0 PortA camera mode is [ 8-bit, Non-mux Embedded Sync] !!! 
     [m3vpss ]  7902: CAMERA: VIP 0: VID DEC 268436736 (0x36): bebebebe:bebebebe:8ebd60d8, AUD_STATUS -1094795586
     [m3vpss ] Stream ID 0: chId = 0 VpsUtils_queCreate.
     [m3vpss ] Stream ID 1: chId = 0 VpsUtils_queCreate.
     [m3vpss ]  8100: CAMERA: Create Done !!!
     [m3vpss ]  8188: CAMERA: Detect video in progress !!!
     [m3vpss ]  8188: CAMERA: Detect video Done !!!
     [m3vpss ]  8326: DUP   : Create Done !!!
     [m3vpss ]  8331: DUP   : Create Done !!!
     Unable to handle kernel NULL pointer dereference at virtual address 00000000
    [m3vpss ] DCC sepgd = c3434000
    rver task runnin[00000000] *pgd=83f34031g 
     [m3vpss ]  , *pte=000000008335: SCLR: Crea, *ppte=00000000te in progress !
    !!
    Internal error: Oops: 17 [#1]
    last sysfs file: /sys/devices/virtual/block/sbulla/removable
    Modules linked in: g_file_storage ti81xxhdmi vpss osa_kermod sbull syslink [last unloaded: sbull]
    CPU: 0    Not tainted  (2.6.37_DM8127_IPNC_3.50.00 #1)
    PC is at MessageQ_put+0xa4/0x20c [syslink]
    LR is at MultiProc_self+0x24/0x30 [syslink]
    pc : [<bf026fc4>]    lr : [<bf01f258>]    psr: 40000013
    sp : c3621e60  ip : c3621e50  fp : c3621e94
    r10: be8fca88  r9 : c3620000  r8 : 00000000
    r7 : 0000ffff  r6 : 00000000  r5 : 00000000  r4 : cf003c80
    r3 : 00000000  r2 : 00000001  r1 : 0000000a  r0 : 00000000
    Flags: nZcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    Control: 10c5387d  Table: 83434019  DAC: 00000015
    Process ipnc_rdk_mcfw.o (pid: 342, stack limit = 0xc36202e8)
    Stack: (0xc3621e60 to 0xc3622000)
    1e60: cf003c80 00003c80 cf003c80 cf003c80 c3621e94 c018f35c c3f28200 be8fca88
    1e80: 00000156 00000000 c3621efc c3621e98 bf04cec4 bf026f2c c018f35c be8fca88
    1ea0: 00000000 00003c80 00030001 0003ef10 40378c80 00000000 c04dcb30 c04dcb30
    1ec0: 00000014 00000000 c3621ef4 c3621ed8 c009335c c00931e4 c41b5580 00000004
    1ee0: be8fca88 00000004 00000000 00000000 c3621f74 c3621f00 c00d6874 bf04cdd4
    1f00: 0ad1c90d 00000014 0ad1c90d 00000014 0b0fc5cd 00000014 0ad1c90d 00000014
    1f20: c4507510 c04c6300 00000000 00000000 00000043 40378c80 c3620000 00000040
    1f40: c3621f5c c3621f50 c00554d4 c3f28200 c3f28200 be8fca88 c018f35c 00000004
    1f60: 00000000 c3620000 c3621fa4 c3621f78 c00d6940 c00d63b0 c3621f94 00000001
    1f80: c007575c be8fca88 00113598 c018f35c 00000036 c0048568 00000000 c3621fa8
    1fa0: c00483c0 c00d68f4 be8fca88 00113598 00000004 c018f35c be8fca88 00000002
    1fc0: be8fca88 00113598 c018f35c 00000036 00268580 00000000 00000040 00000001
    1fe0: 0011357c be8fca60 00043a7c 402b21cc 20000010 00000004 00000000 00000000
    Backtrace: 
    [<bf026f20>] (MessageQ_put+0x0/0x20c [syslink]) from [<bf04cec4>] (MessageQDrv_ioctl+0xfc/0x848 [syslink])
     r8:00000000 r7:00000156 r6:be8fca88 r5:c3f28200 r4:c018f35c
    [<bf04cdc8>] (MessageQDrv_ioctl+0x0/0x848 [syslink]) from [<c00d6874>] (do_vfs_ioctl+0x4d0/0x544)
    [<c00d63a4>] (do_vfs_ioctl+0x0/0x544) from [<c00d6940>] (sys_ioctl+0x58/0x7c)
     r9:c3620000 r8:00000000 r7:00000004 r6:c018f35c r5:be8fca88
    r4:c3f28200
    [<c00d68e8>] (sys_ioctl+0x0/0x7c) from [<c00483c0>] (ret_fast_syscall+0x0/0x30)
     r8:c0048568 r7:00000036 r6:c018f35c r5:00113598 r4:be8fca88
    Code: 030f7fff 0a000001 e1d481bc e1d471b8 (e5903000) 
    ---[ end trace a2968ffd82e11bf2 ]---
     [m3vpss ]  8341: SCLR    : Loading Up-scaling Co-effs ... 
     [m3vpss ]  8341: SCLR    : Co-effs Loading ... DONE !!!
     [m3vpss ] SCLR:HEAPID:0	USED:64
     [m3vpss ] SCLR:HEAPID:1	USED:5952
     [m3vpss ]  8341: SCLR: Create Done !!!
     [m3vpss ]  8341: IPC_FRAMES_OUT   : Create in progress !!!
     [m3vpss ]  8344: IPC_FRAMES_OUT   : Create Done !!!
    queue id:0
    ApproDrvInit: 3
    queue id:131076
    queue id:0
    queue id:32769
    queue id:0
    ApproDrvInit: 7
    queue id:131076
    TimeOut occure in boot_proc.
    Program exit.
    TimeOut occure in boot_proc.
    Program exit.
    ApproDrvExit: 7
    Error: WaitStreamReady Fail.
    Error: SemWait: Invalid Semaphore handler

    At first I think this hould be very easy but it just won't work,this make me very sad and ruins my weekend.

    Hope someone can help me,Thank you very much!!!!

    regards,

    Zhao

     

  • Hi Zhao,

    In Capture Display use case the DSP is turned OFF.

    Can you pl. change the below settings in Rules.make?

    ifeq ($(CAPTURE_DISPLAY_MODE_ON), YES)
    POWER_OPT_DSP_OFF := NO
    endif

    Rebuild the code using 'make all' command and then run the application.

    regards,

    Anand

     

  • Hi Anand

    Thank you for your help,with the change finally I can create IpcFrameIndsp and alglink successfully now!!  But I met some problems when linking IpcFrameOutVpss and display(TVOUT) together.The error is:

    10894: Assertion @ Line: 801 in links_m3vpss/display/displayLink_drv.c: status == FVID2_SOK : failed !!!

    I check it and find it hangs in the function DisplayLink_drvSetFmt().

    I think maybe display(TVOUT) link has some special requirements or I have to scale my frame back to 720*480 from 320*192 before I send them to display(TVOUT)?

    And one more question,what's the differences between display(HDMI) and display(SD)?

    In capturedisplay usecase,the first stream(HDMI) in camera link is set 1920*1080 and the second stream(TVOUT) is 720*480,but in the web I can see two stream and both of them are 1600*900,that makes me confused.

    regards,

    Zhao

     

  • Hi Anand,

    Sorry to bother you again, when I read the capturedisplay usecase code I find something very strange,I find the duplink and nulllink has no System_linkStart() function.

    This is what I know right now: In ti_ipnc_mcfw_main.c,the function App_runDemo() start the demo and choose the usecase,then in the function vdis_start(),vdec_start(),venc_start() and vcam_start(), part of the links are started, but not every link in these module has a chance to be tested if it needs a start,not to mention the links not included in these four modules,that is quite strange.

    I also read the tristream_fullfeature usecase,there are more links that are created but never stared,at least I can't find where these links are started use System_linkStart() function.But this usecase actually runs well,so I must miss something very important,could you point it out?

    Thank you very much.

    regards,

    Zhao

  • Hi Zhao,

    Not all the links need start command. All the infrastructure links like DUP,MERGE,IPC BITS,IPC FRAMES link don't need to be started as soon as they are created they are ready to receive the input frames.

    But the links like camera,encoder/decoder,display links need to start the driver therefore we need to send start command.

    regards,

    Anand

  • Hi Anand,Your explanation is very helpful,could you also help me with the display link error(it is stated just before the System_linkStart problem),thank you very much.

    regards,

    Zhao

  • Hi Zhao,

    Can you remove the scalar link and pass 720x480 YUV420SP frames to SD display and check?

    regards,

    Anand

  • Hi Anand

    Pass 720*480 YUV420SP directly to SD display is the default configuration in capturedisplay usecase and yes,it works well.

    Now I add another scalar link to change the output of IpcFrameOutVpss from 320*192 to 720*480,and then the error report disappers,but I still can't see any output on my screen so I can't tell if this is the right configuration,but at least the usecase now can be actived.

    Is 320*192 a must for dsp alg here?since I also see the scalar link(320*192 output)before valink running on dsp and a earlier version osdlink running on dsp.

    regards,

    Zhao

  • Hi Zhao,

    The VA algorithm works on QVGA frame so we are providing 320x192 input to VA link.

    What do you see on both displays HDMI and SD?

    Can you send the console log?

    regards,

    Anand

  • Hi Anand,

    Sorry for my late replay,I'm still trying to get some output from sd display but now I meet a even more wield problem.

    here is my console log:

    0652.8127 error.txt
    ********* Entered Capture + Display usecase - H264 1080p @60 fps, H264 D1 @30fps ********
    
    
     [host]  166: MCFW  : CPU Revision [ES2.1] !!! 
    
     [host]  166: MCFW  : Detected [UNKNOWN] Board !!! 
    
     [host]  166: MCFW  : Base Board Revision [REV A] !!! 
     [m3vpss ] VPS_DCTRL_INST_0
     [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_DVO2
     [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_HDMI
     [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_OUTPUT SYSTEM_DC_VENC_SD
     [m3vpss ] IOCTL_VPS_DCTRL_SET_VENC_CLK_SRC VPS_DC_VENC_HDMI | VPS_DC_VENC_DVO2
     [m3vpss ]  9364: CAMERA: Create in progress !!!
     [m3vpss ]  9364: CAMERA: VIP0 PortA camera mode is [ 8-bit, Non-mux Embedded Sync] !!! 
     [m3vpss ]  9374: CAMERA: VIP 0: VID DEC 268436736 (0x36): bebebebe:bebebebe:8ebd60d8, AUD_STATUS -1094795586
     [m3vpss ] Stream ID 0: chId = 0 VpsUtils_queCreate.
     [m3vpss ] Stream ID 1: chId = 0 VpsUtils_queCreate.
     [m3vpss ]  9576: CAMERA: Create Done !!!
     [m3vpss ]  9665: CAMERA: Detect video in progress !!!
     [m3vpss ]  9666: CAMERA: Detect video Done !!!
     [m3vpss ]  9843: DUP   : Create Done !!!
     [m3vpss ]  9849: DUP   : Create Done !!!
     [m3vpss ] DCC server task running 
     [m3vpss ]  9853: SCLR: Create in progress !!!
     [m3vpss ]  9858: SCLR    : Loading Up-scaling Co-effs ... 
     [m3vpss ]  9859: SCLR    : Co-effs Loading ... DONE !!!
     [c6xdsp ]  10219: IPC_FRAMES_IN   : Create in progress !!!
     [c6xdsp ]  10219: SYSTEM: Opening ListMP [VPSS-M3_IPC_OUT_23] ...
     [m3vpss ] SCLR:HEAPID:0	USED:64
     [c6xdsp ]  10220: SYSTEM: Opening ListMP [VPSS-M3_IPC_IN_23] ...
     [m3vpss ] SCLR:HEAPID:1	USED:5952
     [c6xdsp ]  10221: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ...
     [m3vpss ]  9859: SCLR: Create Done !!!
     [m3vpss ]  9859: IPC_FRAMES_OUT   : Create in progress !!!
     [c6xdsp ] IPC_FRAMES_IN:HEAPID:0	USED:304
     [c6xdsp ]  10223: IPC_FRAMES_IN   : Create Done !!!
     [m3vpss ]  9862: IPC_FRAMES_OUT   : Create Done !!!
     [c6xdsp ]  10223: ALG : Create in progress !!!
     [m3vpss ]  9881: SCLR: Create in progress !!!
     [c6xdsp ] ALGLINK:HEAPID:0	USED:2616
     [c6xdsp ] ALGLINK:HEAPID:1	USED:6024
     [c6xdsp ]  10236: ALG : Create Done !!!
    
     [host] USECASE SETUP DONE
     [m3vpss ]  9903: SCLR    : Loading Up-scaling Co-effs ... 
     [m3vpss ]  9903: SCLR    : Co-effs Loading ... DONE !!!
     [m3vpss ] SCLR:HEAPID:0	USED:64
     [m3vpss ] SCLR:HEAPID:1	USED:2432
     [m3vpss ]  9904: SCLR: Create Done !!!
     [m3vpss ]  9904: NULL   : Create Done !!!
     [m3vpss ]  9904: NULL   : Create Done !!!
     [m3vpss ]  9905: DISPLAY: Create in progress !!!
     [m3vpss ] DisplayId = 1,DataFormat = 7
     [m3vpss ] SC2 displayInstId = 6
     [m3vpss ]  9906: DISPLAY: Create Done !!!
     [m3vpss ]  9906: DISPLAY: Create in progress !!!
     [m3vpss ] DisplayId = 4,DataFormat = 7
     [m3vpss ] SD displayInstId = 2
     [m3vpss ]  9908: DISPLAY: Create Done !!!
     [m3vpss ]  9909: DISPLAY: Start in progress !!!
     [m3vpss ]  9968: DISPLAY: Start Done !!!
     [m3vpss ]  9968: DISPLAY: AUX PATH: 34 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) !!! 
     [m3vpss ]  9969: DISPLAY: Start in progress !!!
     [m3vpss ]  10009: DISPLAY: Start Done !!!
     [m3vpss ]  10010: DISPLAY: SDDAC(SEC1): 24 fps, Latency (Min / Max) = ( 255 / 0 ), Callback Interval (Min / Max) = ( 255 / 0 ) !!! 
     [m3vpss ]  9839: CAMERA: Start in progress !!!
     [m3vpss ]  9839: CAMERA: Start Done !!!
    
     [host] 
    Application Run Completed
     [m3vpss ]  9957: CAMERA: Fields = 2 (fps = 0), Total Resets = 0 (Avg 0 ms per reset)
    
     [host] ITT server task running !!!
    
     [host] 
     ITT ittServer_run
    
     [host] ITT Server Message initialization successful
    
     [host] 
     ITT capture task created
    
     [host] DCC server Message ques is open succefully
    
     [host] Setting cmd <1> in message <4043b100>
    
     [host] Posting message <4043b100> in QId <20002> 
    
     [host] Response from M3 is : 1
     [m3vpss ] Command 1 recived from HOST A8 
    
     [host] Response from M3 is : 1
    
     [host] Default parameters were sent sucessfully 
    
     [host] Server Socket created with ID <22> 
     [m3vpss ] Command 2 recived from HOST A8 
     [m3vpss ] New DCC data of size <33603> 
     [m3vpss ] Call to VNF_LINK_CMD_UPDATE_DCC -1
    ApproDrvInit: 3
    queue id:131076
    queue id:0
    queue id:32769
    queue id:0
    ApproDrvInit: 7
    queue id:131076
    TimeOut occure in boot_proc.
    Program exit.
    TimeOut occure in boot_proc.
    Program exit.
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  69932: CAMERA: Fields = 5402 (fps = 90, CPU Load = 71)
     [m3vpss ]  69933: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
     [m3vpss ]  69966: CAMERA: Fields = 5403 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
    
     [host] 
    Usecase is Active !!! 
    ApproDrvExit: 7
    Error: WaitStreamReady Fail.
    Error: SemWait: Invalid Semaphore handler
    Error: SemRelease: Invalid Semaphore handler
    Error: SemWait: Invalid Semaphore handler
    Error: SemRelease: Invalid Semaphore handler
    SystemInit success
    Schedule manager init success
    Dmva Schedule manager init success
    umount: can't umount /mnt/mmc: Invalid argument
    killall: dhcpcd: no process killed
    net_search_gateway:eth0, 64A8C0, 0, 1
    net_search_gateway:eth0, 0, 164A8C0, 3
    dns=202.38.64.1
    g_file_storage gadget: No serial-number string provided!
    g_file_storage gadget: File-backed Storage Gadget, version: 1 September 2010
    g_file_storage gadget: Number of LUNs=1
    g_file_storage gadget-lun0: ro=0, nofua=0, file: /dev/sbulla
    [09/Nov/2012:11:03:51 +0000] boa: server version Boa/0.94.13
    [09/Nov/2012:11:03:51 +0000] boa: server built Aug  5 2014 at 08:35:06.
    [09/Nov/2012:11:03:51 +0000] boa: starting server pid=592, port 80
    queue id:0
    <UDN>uuid:Upnp-TVEmulator-1_0-00_0020299526</UDN>
    
    Upnp port is 0
    UPnP Initialized OK ip=192.168.100.192, port=0
    desc_doc_url = http://192.168.100.192/tvdevicedesc.xml
    ApproDrvInit: 9
    queue id:131076
    ApproDrvInit: 8
    ApproDrvInit: 10
    queue id:131076
    ApproDrvInit: 2
    queue id:131076
    queue id:131076
    ApproDrvInit: 6
    queue id:131076
    Initializing...
    Initializing...
    Initializing...
    Initializing...
    ...done initializing
    ...done initializing
    ...done initializing
    Play this stream using the URL:
    	rtsp://192.168.100.192:8555/PSIA/Streaming/channels/0?videoCodecType=MJPEG
    
    (We use port 8302 for optional RTSP-over-HTTP tunneling.)
    Initializing...
    ...done initializing
    Play this stream using the URL:
    	rtsp://192.168.100.192:8557/PSIA/Streaming/channels/2?videoCodecType=H.264
    
    (We use port 8304 for optional RTSP-over-HTTP tunneling.)
    ...done initializing
    Play this stream using the URL:
    	rtsp://192.168.100.192:8554/PSIA/Streaming/channels/1?videoCodecType=MPEG4
    
    (We use port 8301 for optional RTSP-over-HTTP tunneling.)
    Play this stream using the URL:
    	rtsp://192.168.100.192:8553/PSIA/Streaming/channels/1?videoCodecType=MPEG4
    
    (We use port 8300 for optional RTSP-over-HTTP tunneling.)
    Play this stream using the URL:
    	rtsp://192.168.100.192:8556/PSIA/Streaming/channels/2?videoCodecType=H.264
    
    (We use port 8303 for optional RTSP-over-HTTP tunneling.)
    error code = 0
    device advertisement succeed.
    Stream 2 is not avaliable~~~~~~~~
    caught SIGTERM: shutting down
    ApproDrvExit: 10
    Stream 7 is not avaliable~~~~~~~~
    caught SIGTERM: shutting down
    ApproDrvExit: 9
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  129925: CAMERA: Fields = 10803 (fps = 90, CPU Load = 47)
     [m3vpss ]  129925: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
     [m3vpss ]  129975: CAMERA: Fields = 5403 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
    
     [host] 
    Usecase is Active !!! 
    root
    -sh: root: not found
    root@DM8127_IPNC:~# ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0C:0C:02:50:1F  
              inet addr:192.168.100.192  Bcast:192.168.100.255  Mask:255.255.255.0
              UP BROADCAST NOTRAILERS RUNNING ALLMULTI MULTICAST  MTU:1500  Metric:1
              RX packets:1767 errors:0 dropped:148 overruns:0 frame:0
              TX packets:1109 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:218783 (213.6 KiB)  TX bytes:1153109 (1.0 MiB)
              Interrupt:40 
    
    lo        Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              UP LOOPBACK RUNNING  MTU:16436  Metric:1
              RX packets:10 errors:0 dropped:0 overruns:0 frame:0
              TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:2426 (2.3 KiB)  TX bytes:2426 (2.3 KiB)
    
    root@DM8127_IPNC:~# queue id:32769
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  189934: CAMERA: Fields = 16205 (fps = 90, CPU Load = 38)
     [m3vpss ]  189934: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
     [m3vpss ]  189984: CAMERA: Fields = 5402 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  249959: CAMERA: Fields = 21608 (fps = 90, CPU Load = 34)
     [m3vpss ]  249959: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
     [m3vpss ]  249992: CAMERA: Fields = 5401 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  309968: CAMERA: Fields = 27010 (fps = 90, CPU Load = 32)
     [m3vpss ]  309968: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
     [m3vpss ]  310001: CAMERA: Fields = 5402 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  369993: CAMERA: Fields = 32412 (fps = 90, CPU Load = 30)
     [m3vpss ]  369993: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
     [m3vpss ]  370010: CAMERA: Fields = 5401 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
    
     [host] 
    Usecase is Active !!! 
    queue id:32769
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  430002: CAMERA: Fields = 37814 (fps = 90, CPU Load = 29)
     [m3vpss ]  430002: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
     [m3vpss ]  430018: CAMERA: Fields = 5402 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  490027: CAMERA: Fields = 5401 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  490027: CAMERA: Fields = 43217 (fps = 90, CPU Load = 27)
     [m3vpss ]  490027: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  550035: CAMERA: Fields = 5402 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  550035: CAMERA: Fields = 48619 (fps = 90, CPU Load = 27)
     [m3vpss ]  550035: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  610043: CAMERA: Fields = 5401 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  610060: CAMERA: Fields = 54021 (fps = 90, CPU Load = 26)
     [m3vpss ]  610060: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  670052: CAMERA: Fields = 5402 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  670069: CAMERA: Fields = 59423 (fps = 90, CPU Load = 26)
     [m3vpss ]  670069: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  730060: CAMERA: Fields = 5401 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  730094: CAMERA: Fields = 64826 (fps = 90, CPU Load = 26)
     [m3vpss ]  730094: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  790068: CAMERA: Fields = 5402 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  790102: CAMERA: Fields = 70228 (fps = 90, CPU Load = 25)
     [m3vpss ]  790102: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  850077: CAMERA: Fields = 5401 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  850127: CAMERA: Fields = 75630 (fps = 90, CPU Load = 25)
     [m3vpss ]  850127: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  910085: CAMERA: Fields = 5402 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  910135: CAMERA: Fields = 81032 (fps = 90, CPU Load = 25)
     [m3vpss ]  910135: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
    
     [host] 
    Usecase is Active !!! 
     [m3vpss ]  970093: CAMERA: Fields = 5401 (fps = 90), Total Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ==================== CameraLink_PrintDetails ==================== 
     [m3vpss ]  970160: CAMERA: Fields = 86435 (fps = 90, CPU Load = 25)
     [m3vpss ]  970160: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
     [m3vpss ]  ================================================================= 
    
    Connection closed.

     

    When I start my own usecase it it stucks in"Timeout occure in boot_proc" for a while and then says:"usecase is actived!" but there is no output on web.

    I think maybe I do something wrong so I try to test the original capture_display usecase which should works well,but the same problem occurs at the same position.From what I see from the boa web,the options are still for tristream_fullfeature usecase,that's very strange.

    I do run the tristream_fullfeature usecase earlier,it runs well but it seems now my choice of usecase dosen't affect the earlier setting.

    I find some other people met the same problem when trying to use a new usecase(like lowfeature) after already use fullfeature usecase.

    Details: I use a ubifs file to create my filesys and NO NFS is used,I write my ubifs to nand and there it starts.

    I doubt if there is something wrong with my flash  writing because someone suggestd a flash erase,could you give me some suggestions?

    regards,

    Zhao

  • Hi Zhao,

    The capture display use case doesn't have encoder link so it cannot stream the encoded bitstream.

    Hence web GUI will not work. 

    This is a simple use case inteded for testing ISS and sensor drivers.

    Your log shows that the use case is working.

    regards,

    Anand

    regards,

    Anand