Hi All
I am experiencing problem with the below usecase.
It causes unhandled exception while trying to create the scalar link.
The o/p resolution of the scalar link is 320x192
Can someone check, what is wrong with this usecase?
Best Regards
JK
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.
Hi All
I am experiencing problem with the below usecase.
It causes unhandled exception while trying to create the scalar link.
The o/p resolution of the scalar link is 320x192
Can someone check, what is wrong with this usecase?
Best Regards
JK
Hello,
I will try to involve someone for IPNC support or you could contact your local FAE.
Best Regards,
Margarita
Hi Anand
Attached the use case code and console log
Best Regards
JK
/** ================================================================== * @file multich_tristream_lowPower.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 + 1080p> --------------------------- SENSOR ________||_______ |---SALDRE/WDR ON---| | | | CAMERA LINK | | |____(VPSSM3)____| GLBCE_LINK/WDR(VPSSM3) | | | | | | _________________ SALDRE/WDR OFF | | | | | |--| ISP LINK | | | |____(VPSSM3)___| | | | | | | | | | | | |------|------| | |------------ RSZA RSZB (1920x1080) (720x480) (420SP) (420SP) | | ___________| | | | DUP(VPSSM3)(0)----| | (1) ----------- | ------------ | | MERGE(VPSSM3) | | SWOSD(VPSSM3) | | IPC OUT(VPSSM3) | | IPC IN(VIDEOM3) | --------------- | | | H264ENC(VIDEOM3) MJPEGENC(VIDEOM3) | | | --------------- | IPC BITS OUT(VIDEOM3) | | IPC BITS IN(A8) | | ************* * STREAMING * ************* ------------------------------------------------------------------------------------------*/ #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" extern UInt32 gIsGlbceInitDone; extern UInt32 gIsDiplayToBeDisabled; extern GlbcePreset gGLBCE_AlgoPreset; /* ============================================================================= * Externs * ============================================================================= */ /* ============================================================================= * Use case code * ============================================================================= */ static SystemVideo_Ivahd2ChMap_Tbl systemVid_encDecIvaChMapTbl = { .isPopulated = 1, .ivaMap[0] = { .EncNumCh = 2, .EncChList = {0, 1}, .DecNumCh = 2, .DecChList = {0, 1}, }, }; #ifdef ENABLE_TILER #define TILER_ENABLE TRUE #else #define TILER_ENABLE FALSE #endif //#define MUX /* Merge Link for camera streams */ #define NUM_MERGE_LINK (1) #define CAM_STREAM_MERGE_IDX (0) /* =================================================================== * @func MultiCh_createTriStreamLowPwr * * @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 svc_create_tristream() { UInt32 i; CameraLink_CreateParams cameraPrm; IspLink_CreateParams ispPrm; UInt32 ispId; GlbceLink_CreateParams glbcePrm; UInt32 glbceId; // MjpegLink_CreateParams simcopPrm; #ifndef MUX MergeLink_CreateParams mergePrm[NUM_MERGE_LINK]; #else MuxLink_CreateParams muxPrm; #endif IpcLink_CreateParams ipcOutVpssPrm; IpcLink_CreateParams ipcInVideoPrm; EncLink_CreateParams encPrm; DupLink_CreateParams dupPrm; SclrLink_CreateParams sclrPrm; IpcBitsOutLinkRTOS_CreateParams ipcBitsOutVideoPrm; // IpcBitsOutLinkRTOS_CreateParams ipcBitsOutVpssPrm; IpcBitsInLinkHLOS_CreateParams ipcBitsInHostPrm0; // IpcBitsInLinkHLOS_CreateParams ipcBitsInHostPrm1; VstabLink_CreateParams vstabPrm; GlbceSupportLink_CreateParams glbceSupportPrm; CameraLink_VipInstParams *pCameraInstPrm; CameraLink_OutParams *pCameraOutPrm; UInt32 mergeId[NUM_MERGE_LINK]; UInt32 dupId; UInt32 sclrId; #ifdef MUX UInt32 muxId; #endif UInt32 ipcOutVpssId; UInt32 ipcInVideoId; UInt32 vstabId; UInt32 glbceSupportId; #ifdef WDR_ON WdrLink_CreateParams wdrPrm; UInt32 wdrId; #endif /* IPC struct init */ MULTICH_INIT_STRUCT(IpcLink_CreateParams, ipcOutVpssPrm); MULTICH_INIT_STRUCT(IpcLink_CreateParams, ipcInVideoPrm); MULTICH_INIT_STRUCT(IpcBitsOutLinkRTOS_CreateParams, ipcBitsOutVideoPrm); MULTICH_INIT_STRUCT(IpcBitsInLinkHLOS_CreateParams, ipcBitsInHostPrm0); #ifdef MUX MULTICH_INIT_STRUCT(MuxLink_CreateParams, muxPrm); #endif OSA_printf("\n********** LOW POWER USECASE ********\n"); OSA_printf ("********* Entered Tri Streaming usecase - H264 1080p @60fps + H264 D1 @30fps + MJPEG 1080p @5fps ********\n\n"); 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); /* Link IDs */ gVcamModuleContext.cameraId = SYSTEM_LINK_ID_CAMERA; gVencModuleContext.encId = SYSTEM_LINK_ID_VENC_0; mergeId[CAM_STREAM_MERGE_IDX] = SYSTEM_VPSS_LINK_ID_MERGE_0; dupId = SYSTEM_VPSS_LINK_ID_DUP_0; sclrId = SYSTEM_LINK_ID_SCLR_INST_0; gVsysModuleContext.swOsdId = SYSTEM_LINK_ID_SWOSD_0; #ifdef MUX muxId = SYSTEM_VPSS_LINK_ID_MUX_0; #endif vstabId = SYSTEM_LINK_ID_VSTAB_0; glbceSupportId = SYSTEM_LINK_ID_GLBCE_SUPPORT_0; #ifdef WDR_ON wdrId = SYSTEM_LINK_ID_WDR; #endif /* IPC frame Link IDs */ ipcOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0; ipcInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0; /* IPC bits link IDs */ gVencModuleContext.ipcBitsOutRTOSId = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0; gVencModuleContext.ipcBitsInHLOSId = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0; ispId = SYSTEM_LINK_ID_ISP_0; glbceId = SYSTEM_LINK_ID_GLBCE; OSA_printf("JK:gUI_mcfw_config.glbceEnable = %d \n ",gUI_mcfw_config.glbceEnable);//0 OSA_printf("JK:gUI_mcfw_config.demoCfg.resolution_combo = %d \n ",gUI_mcfw_config.demoCfg.resolution_combo);//0 { /* Camera Link params */ CameraLink_CreateParams_Init(&cameraPrm); cameraPrm.captureMode = CAMERA_LINK_CAPMODE_ISIF; cameraPrm.outQueParams[0].nextLink = dupId;//mergeId[CAM_STREAM_MERGE_IDX];//dupId; cameraPrm.outQueParams[1].nextLink = mergeId[CAM_STREAM_MERGE_IDX]; // gVcamModuleContext.glbceId = SYSTEM_LINK_ID_INVALID; /* This is for TVP5158 Audio Channels - Change it to 16 if there are 16 * audio channels connected in cascade */ // cameraPrm.numAudioChannels = 1; cameraPrm.numVipInst = 1; #ifdef ENABLE_TILER_CAMERA cameraPrm.tilerEnable = TRUE; #else cameraPrm.tilerEnable = FALSE; #endif cameraPrm.vsEnable = gUI_mcfw_config.vsEnable; cameraPrm.vstabLinkId = vstabId; 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; #ifdef IMGS_OMNIVISION_OV10630 pCameraInstPrm->sensorOutWidth = 1280; pCameraInstPrm->sensorOutHeight = 720; #elif defined IMGS_MICRON_MT9M034 pCameraInstPrm->sensorOutWidth = 1280; pCameraInstPrm->sensorOutHeight = 720; #else switch(gUI_mcfw_config.demoCfg.resolution_combo) { case RES_1080P_D1 : pCameraInstPrm->sensorOutWidth = 1920; pCameraInstPrm->sensorOutHeight = 1080; break; case RES_1080P_1080P: pCameraInstPrm->sensorOutWidth = 1920; pCameraInstPrm->sensorOutHeight = 1080; break; case RES_3MP_D1 : pCameraInstPrm->sensorOutWidth = 2048; pCameraInstPrm->sensorOutHeight = 1536; break; case RES_5MP_D1 : pCameraInstPrm->sensorOutWidth = 2560; pCameraInstPrm->sensorOutHeight = 1920; break; case RES_8MP_D1 : pCameraInstPrm->sensorOutWidth = 3264; pCameraInstPrm->sensorOutHeight = 2448; break; case RES_10MP_D1 : pCameraInstPrm->sensorOutWidth = 3648; pCameraInstPrm->sensorOutHeight = 2736; break; case RES_960P_D1 : pCameraInstPrm->sensorOutWidth = 1280; pCameraInstPrm->sensorOutHeight = 960; break; default : pCameraInstPrm->sensorOutWidth = 1920; pCameraInstPrm->sensorOutHeight = 1080; break; } #endif switch(gUI_mcfw_config.demoCfg.resolution_combo) { case RES_1080P_D1 : pCameraInstPrm->standard = SYSTEM_STD_1080P_60; break; case RES_1080P_1080P: pCameraInstPrm->standard = SYSTEM_STD_1080P_60; break; case RES_3MP_D1 : pCameraInstPrm->standard = SYSTEM_STD_3MP_2048_1536; break; case RES_5MP_D1 : pCameraInstPrm->standard = SYSTEM_STD_5MP_2560_1920; break; case RES_8MP_D1 : pCameraInstPrm->standard = SYSTEM_STD_8MP_3264_2448; break; case RES_10MP_D1 : pCameraInstPrm->standard = SYSTEM_STD_10MP_3648_2736; break; case RES_960P_D1 : pCameraInstPrm->standard = SYSTEM_STD_960P_30; break; default : pCameraInstPrm->standard = SYSTEM_STD_1080P_60; break; } pCameraInstPrm->numOutput = 2; /* First stream */ pCameraOutPrm = &pCameraInstPrm->outParams[0]; pCameraOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV; pCameraOutPrm->scEnable = FALSE; #ifdef IMGS_OMNIVISION_OV10630 pCameraOutPrm->scOutWidth = 1280; pCameraOutPrm->scOutHeight = 720; #elif defined IMGS_MICRON_MT9M034 pCameraOutPrm->scOutWidth = 1280; pCameraOutPrm->scOutHeight = 720; #else /* When VS is enabled then scOutWidth/scOutHeight cannot be equal to sensorOutWidth/sensorOutHeight */ if(cameraPrm.vsEnable == 0) { switch(gUI_mcfw_config.demoCfg.resolution_combo) { case RES_1080P_D1 : pCameraOutPrm->scOutWidth = 1920; pCameraOutPrm->scOutHeight = 1080; break; case RES_1080P_1080P: pCameraOutPrm->scOutWidth = 1920; pCameraOutPrm->scOutHeight = 1080; break; case RES_3MP_D1 : pCameraOutPrm->scOutWidth = 2048; pCameraOutPrm->scOutHeight = 1536; break; case RES_5MP_D1 : pCameraOutPrm->scOutWidth = 2560; pCameraOutPrm->scOutHeight = 1920; break; case RES_8MP_D1 : pCameraOutPrm->scOutWidth = 3264; pCameraOutPrm->scOutHeight = 2448; break; case RES_10MP_D1 : pCameraOutPrm->scOutWidth = 3648; pCameraOutPrm->scOutHeight = 2736; break; case RES_960P_D1 : pCameraOutPrm->scOutWidth = 1280; pCameraOutPrm->scOutHeight = 960; break; default : pCameraOutPrm->scOutWidth = 1920; pCameraOutPrm->scOutHeight = 1080; break; } } else { pCameraOutPrm->scOutWidth = 1600; pCameraOutPrm->scOutHeight = 900; } #endif pCameraOutPrm->scOutWidth = 1920;//1280; pCameraOutPrm->scOutHeight = 1080;//720; pCameraOutPrm->outQueId = 0; /* Second stream */ pCameraOutPrm = &pCameraInstPrm->outParams[1]; pCameraOutPrm->dataFormat = SYSTEM_DF_YUV420SP_UV; pCameraOutPrm->scEnable = FALSE; pCameraOutPrm->scOutWidth = 720;//1920;//1280;//720; pCameraOutPrm->scOutHeight = 480;//1080;//720;// 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; } /* vstab Link params */ vstabPrm.totalFrameWidth = pCameraInstPrm->sensorOutWidth; vstabPrm.totalFrameHeight = pCameraInstPrm->sensorOutHeight; glbceSupportPrm.glbceLinkID = glbceId; OSA_printf("JK:gUI_mcfw_config.glbceEnable = %d \n ",gUI_mcfw_config.glbceEnable);//0 dupPrm.inQueParams.prevLinkId = gVcamModuleContext.cameraId; dupPrm.inQueParams.prevLinkQueId = 0; dupPrm.numOutQue = 2; dupPrm.outQueParams[0].nextLink = mergeId[CAM_STREAM_MERGE_IDX]; dupPrm.outQueParams[1].nextLink = sclrId; dupPrm.notifyNextLink = TRUE; /* Scaler Link Params */ SclrLink_CreateParams_Init(&sclrPrm); sclrPrm.inQueParams.prevLinkId = dupId; sclrPrm.inQueParams.prevLinkQueId = 0; sclrPrm.outQueParams.nextLink = mergeId[CAM_STREAM_MERGE_IDX]; sclrPrm.tilerEnable = FALSE; sclrPrm.enableLineSkipSc = FALSE; sclrPrm.inputFrameRate = 30; sclrPrm.outputFrameRate = 30; sclrPrm.scaleMode = DEI_SCALE_MODE_ABSOLUTE; 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; #ifndef MUX /* Merge Link params */ mergePrm[CAM_STREAM_MERGE_IDX].numInQue = 3; mergePrm[CAM_STREAM_MERGE_IDX].inQueParams[0].prevLinkId = dupId; mergePrm[CAM_STREAM_MERGE_IDX].inQueParams[0].prevLinkQueId = 0; mergePrm[CAM_STREAM_MERGE_IDX].inQueParams[1].prevLinkId = gVcamModuleContext.cameraId; mergePrm[CAM_STREAM_MERGE_IDX].inQueParams[1].prevLinkQueId = 1; mergePrm[CAM_STREAM_MERGE_IDX].inQueParams[2].prevLinkId = sclrId; mergePrm[CAM_STREAM_MERGE_IDX].inQueParams[2].prevLinkQueId = 2; mergePrm[CAM_STREAM_MERGE_IDX].outQueParams.nextLink = ipcOutVpssId;// gVsysModuleContext.swOsdId; mergePrm[CAM_STREAM_MERGE_IDX].notifyNextLink = TRUE; #else muxPrm.numInQue = 2; muxPrm.inQueParams[0].prevLinkId = dupId; muxPrm.inQueParams[0].prevLinkQueId = 0; muxPrm.inQueParams[1].prevLinkId = gVcamModuleContext.cameraId; muxPrm.inQueParams[1].prevLinkQueId = 1; muxPrm.outQueParams.nextLink = ipcOutVpssId; muxPrm.muxNumOutChan = 1; muxPrm.outChMap[0].inQueId = 0; muxPrm.outChMap[0].inChNum = 0; #endif #if 0 /* SWOSD Link Params */ swosdPrm.inQueParams.prevLinkId = mergeId[CAM_STREAM_MERGE_IDX]; swosdPrm.inQueParams.prevLinkQueId = 0; swosdPrm.outQueParams.nextLink = ipcOutVpssId; #endif /* IPC Out VPSS link params */ #ifdef MUX ipcOutVpssPrm.inQueParams.prevLinkId = muxId;//gVsysModuleContext.swOsdId; #else ipcOutVpssPrm.inQueParams.prevLinkId = mergeId[CAM_STREAM_MERGE_IDX]; #endif ipcOutVpssPrm.inQueParams.prevLinkQueId = 0; ipcOutVpssPrm.numOutQue = 1; ipcOutVpssPrm.outQueParams[0].nextLink = ipcInVideoId; ipcOutVpssPrm.notifyNextLink = TRUE; ipcOutVpssPrm.notifyPrevLink = TRUE; ipcOutVpssPrm.noNotifyMode = FALSE; /* IPC In VIDEO params */ ipcInVideoPrm.inQueParams.prevLinkId = ipcOutVpssId; ipcInVideoPrm.inQueParams.prevLinkQueId = 0; ipcInVideoPrm.numOutQue = 1; ipcInVideoPrm.outQueParams[0].nextLink = gVencModuleContext.encId; ipcInVideoPrm.notifyNextLink = TRUE; ipcInVideoPrm.notifyPrevLink = TRUE; ipcInVideoPrm.noNotifyMode = FALSE; /* Video Encoder Link params */ MULTICH_INIT_STRUCT(EncLink_CreateParams, encPrm); { EncLink_ChCreateParams *pLinkChPrm; EncLink_ChDynamicParams *pLinkDynPrm; VENC_CHN_DYNAMIC_PARAM_S *pDynPrm; VENC_CHN_PARAMS_S *pChPrm; for (i = 0; i < VENC_PRIMARY_CHANNELS; i++)//VENC_PRIMARY_CHANNELS = 2 { pLinkChPrm = &encPrm.chCreateParams[i]; pLinkDynPrm = &pLinkChPrm->defaultDynamicParams; pChPrm = &gVencModuleContext.vencConfig.encChannelParams[i]; //OSA_printf("pChPrm->videoWidth = %d\n",pChPrm->videoWidth); //OSA_printf("pChPrm->videoHeight = %d\n",pChPrm->videoHeight); //OSA_printf("pChPrm->dynamicParam.inputFrameRate = %d\n",pChPrm->dynamicParam.inputFrameRate); pDynPrm = &pChPrm->dynamicParam; pLinkChPrm->format = IVIDEO_H264HP; //"SINGLE_H264" pLinkChPrm->profile = gVencModuleContext.vencConfig.h264Profile[i]; pLinkChPrm->dataLayout = IVIDEO_PROGRESSIVE; pLinkChPrm->fieldMergeEncodeEnable = FALSE; pLinkChPrm->enableAnalyticinfo = pChPrm->enableAnalyticinfo; pLinkChPrm->maxBitRate = pChPrm->maxBitRate; pLinkChPrm->encodingPreset = pChPrm->encodingPreset; pLinkChPrm->rateControlPreset = IVIDEO_USER_DEFINED; //pChPrm->rcType; pLinkChPrm->enableHighSpeed = FALSE; pLinkChPrm->enableWaterMarking = pChPrm->enableWaterMarking; pLinkChPrm->StreamPreset = gUI_mcfw_config.StreamPreset[i]; pLinkDynPrm->intraFrameInterval = pDynPrm->intraFrameInterval; pLinkDynPrm->targetBitRate = pDynPrm->targetBitRate; pLinkDynPrm->interFrameInterval = 1; pLinkDynPrm->mvAccuracy = IVIDENC2_MOTIONVECTOR_QUARTERPEL; pLinkDynPrm->inputFrameRate = pDynPrm->inputFrameRate; pLinkDynPrm->rcAlg = pDynPrm->rcAlg; pLinkDynPrm->qpMin = pDynPrm->qpMin; pLinkDynPrm->qpMax = pDynPrm->qpMax; pLinkDynPrm->qpInit = pDynPrm->qpInit; pLinkDynPrm->vbrDuration = pDynPrm->vbrDuration; pLinkDynPrm->vbrSensitivity = pDynPrm->vbrSensitivity; if ((gUI_mcfw_config.demoCfg.resolution_combo == RES_10MP_D1) && (i == 0)) { encPrm.numBufPerCh[i] = 2; } else if ((gUI_mcfw_config.demoCfg.resolution_combo == RES_8MP_D1) && (i == 0)) { encPrm.numBufPerCh[i] = 3; } else { encPrm.numBufPerCh[i] = 4; } gVencModuleContext.encFormat[i] = pLinkChPrm->format; } } /* Video Encoder Framerate */ encPrm.chCreateParams[0].defaultDynamicParams.inputFrameRate = 60; // ENC_LINK_DEFAULT_ALGPARAMS_INPUTFRAMERATE; encPrm.chCreateParams[1].defaultDynamicParams.inputFrameRate = 30; // ENC_LINK_DEFAULT_ALGPARAMS_INPUTFRAMERATE; //encPrm.chCreateParams[1].defaultDynamicParams.inputFrameRate = 5; encPrm.vsEnable = 0;//gUI_mcfw_config.vsEnable; OSA_printf("JK:encPrm.vsEnable = %d \n ",encPrm.vsEnable);//0 encPrm.isVaUseCase = 0; OSA_printf("JK:encPrm.isVaUseCase = %d \n ",encPrm.isVaUseCase);//0 #if 0 for (i = VENC_PRIMARY_CHANNELS; i < (VENC_CHN_MAX - 1); i++) { encPrm.chCreateParams[i].format = IVIDEO_MJPEG; encPrm.chCreateParams[i].profile = 0; encPrm.chCreateParams[i].dataLayout = IVIDEO_PROGRESSIVE; encPrm.chCreateParams[i].fieldMergeEncodeEnable = FALSE; encPrm.chCreateParams[i].defaultDynamicParams.intraFrameInterval = 0; encPrm.chCreateParams[i].encodingPreset = 0; encPrm.chCreateParams[i].enableAnalyticinfo = 0; encPrm.chCreateParams[i].enableWaterMarking = 0; encPrm.chCreateParams[i].defaultDynamicParams.inputFrameRate = 60; encPrm.chCreateParams[i].rateControlPreset = 0; encPrm.chCreateParams[i].defaultDynamicParams.targetBitRate = 100 * 1000; encPrm.chCreateParams[i].defaultDynamicParams.interFrameInterval = 0; encPrm.chCreateParams[i].defaultDynamicParams.mvAccuracy = 0; } #endif encPrm.inQueParams.prevLinkId = ipcInVideoId; encPrm.inQueParams.prevLinkQueId = 0; encPrm.outQueParams.nextLink = gVencModuleContext.ipcBitsOutRTOSId; /* IPC Bits Out VIDEO Link params */ ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId = gVencModuleContext.encId; ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId = 0; ipcBitsOutVideoPrm.baseCreateParams.numOutQue = 1; ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink = gVencModuleContext.ipcBitsInHLOSId; MultiCh_ipcBitsInitCreateParams_BitsOutRTOS(&ipcBitsOutVideoPrm, TRUE); /* IPC Bits In HOST Link params */ ipcBitsInHostPrm0.baseCreateParams.inQueParams.prevLinkId = gVencModuleContext.ipcBitsOutRTOSId; ipcBitsInHostPrm0.baseCreateParams.inQueParams.prevLinkQueId = 0; MultiCh_ipcBitsInitCreateParams_BitsInHLOS(&ipcBitsInHostPrm0); /* Links Creation */ /* Camera Link */ System_linkCreate(gVcamModuleContext.cameraId, &cameraPrm, sizeof(cameraPrm)); System_linkControl(gVcamModuleContext.cameraId, CAMERA_LINK_CMD_DETECT_VIDEO, NULL, 0, TRUE); if(gUI_mcfw_config.glbceEnable) { #ifndef WDR_ON System_linkCreate(glbceSupportId, &glbceSupportPrm,sizeof(glbceSupportPrm)); /* glbce link create */ System_linkCreate(glbceId, &glbcePrm,sizeof(glbcePrm)); #else System_linkCreate(wdrId, &wdrPrm,sizeof(wdrPrm)); #endif /* cam pp link create */ System_linkCreate(ispId, &ispPrm,sizeof(ispPrm)); gIsGlbceInitDone = 1; } else { gIsGlbceInitDone = 0; } /* Dup Link */ System_linkCreate(dupId, &dupPrm, sizeof(dupPrm)); System_linkCreate(sclrId, &sclrPrm, sizeof(sclrPrm)); #ifndef MUX /* Merge Link */ System_linkCreate(mergeId[CAM_STREAM_MERGE_IDX], &mergePrm[CAM_STREAM_MERGE_IDX], sizeof(mergePrm[CAM_STREAM_MERGE_IDX])); #else System_linkCreate(muxId, &muxPrm, sizeof(muxPrm)); #endif /* SWOSD Link */ // System_linkCreate(gVsysModuleContext.swOsdId, &swosdPrm, sizeof(swosdPrm)); /* IPC Links */ System_linkCreate(ipcOutVpssId, &ipcOutVpssPrm, sizeof(ipcOutVpssPrm)); System_linkCreate(ipcInVideoId, &ipcInVideoPrm, sizeof(ipcInVideoPrm)); /* Video Encoder Link */ System_linkCreate(gVencModuleContext.encId, &encPrm, sizeof(encPrm)); /* VSTAB link */ System_linkCreate(vstabId, &vstabPrm, sizeof(vstabPrm)); /* IPC Bits Links */ System_linkCreate(gVencModuleContext.ipcBitsOutRTOSId, &ipcBitsOutVideoPrm, sizeof(ipcBitsOutVideoPrm)); System_linkCreate(gVencModuleContext.ipcBitsInHLOSId, &ipcBitsInHostPrm0, sizeof(ipcBitsInHostPrm0)); OSA_printf("USECASE SETUP DONE\n"); } /* =================================================================== * @func MultiCh_deleteTriStreamLowPwr * * @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 svc_delete_tristream() { UInt32 ispId; UInt32 glbceId; UInt32 dupId; UInt32 sclrId; // UInt32 grpxId[VDIS_DEV_MAX]; UInt32 mergeId; // UInt32 swosdId; UInt32 ipcOutVpssId; UInt32 ipcInVideoId; UInt32 vstabId; UInt32 glbceSupportId; #ifdef WDR_ON UInt32 wdrId; #endif mergeId = SYSTEM_VPSS_LINK_ID_MERGE_0; dupId = SYSTEM_VPSS_LINK_ID_DUP_0; sclrId = SYSTEM_LINK_ID_SCLR_INST_0; gVsysModuleContext.swOsdId = SYSTEM_LINK_ID_SWOSD_0; ipcOutVpssId = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0; ipcInVideoId = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0; ispId = SYSTEM_LINK_ID_ISP_0; glbceId = SYSTEM_LINK_ID_GLBCE; vstabId = SYSTEM_LINK_ID_VSTAB_0; glbceSupportId = SYSTEM_LINK_ID_GLBCE_SUPPORT_0; #ifdef WDR_ON wdrId = SYSTEM_LINK_ID_WDR; #endif /* Deleting the links in order of sink to source */ System_linkDelete(gVencModuleContext.ipcBitsOutRTOSId); System_linkDelete(gVencModuleContext.ipcBitsInHLOSId); /* VSTAB Link */ System_linkDelete(vstabId); System_linkDelete(gVencModuleContext.encId); System_linkDelete(ipcOutVpssId); System_linkDelete(ipcInVideoId); System_linkDelete(mergeId); System_linkDelete(dupId); System_linkDelete(sclrId); if(gIsGlbceInitDone) { #ifndef WDR_ON System_linkDelete(glbceId); System_linkDelete(glbceSupportId); #else System_linkDelete(wdrId); #endif System_linkDelete(ispId); gIsGlbceInitDone = 0; } else OSA_printf("We come here to leave for the day\n"); System_linkDelete(gVcamModuleContext.cameraId); /* SWOSD Link */ System_linkDelete(gVsysModuleContext.swOsdId); /* Print the HWI, SWI and all tasks load */ /* Reset the accumulated timer ticks */ MultiCh_prfLoadCalcEnable(FALSE, TRUE, FALSE); OSA_printf("USECASE TEARDOWN DONE\n"); }
Starting kernel ... Uncompressing Linux... done, booting the kernel. Linux version 2.6.37_DM388_IPNC_3.80.00 (jayakrishnan@jk-desktop) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #1 Mon Aug 4 09:59:43 SGT 2014 CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache Machine: dm385ipnc vram size = 4194304 at 0x0 bootconsole [earlycon0] enabled ti81xx_reserve: ### Reserved DDR region @84f00000 reserved size = 4194304 at 0x0 FB: Reserving 4194304 bytes SDRAM for VRAM Memory policy: ECC disabled, Data cache writeback OMAP chip is DM385 1.0 SRAM: Mapped pa 0x402f1000 to va 0xfe400000 size: 0xf000 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 19040 Kernel command line: console=ttyO0,115200n8 root=/dev/nfs rw mem=80M vram=4M notifyk.vpssm3_sva=0xBFD00000 nfsroot=192.168.1.170:/home/jayakrishnan/work/projects/dm388/ipnc_rdk_3Layer/Source/ipnc_rdk/target/filesys,nolock eth=00:0C:0C:02:50:A1 ip=192.168.1.224 cmemk.phys_start=0x85000000 cmemk.phys_end=0x89000000 cmemk.allowOverlap=1 earlyprintk rootdelay=4 cpsw: kernel boot params Ethernet address: 00:0C:0C:02:50:A1 PID hash table entries: 512 (order: -1, 2048 bytes) Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 74MB 1MB = 75MB total Memory: 70684k/70684k available, 11236k reserved, 0K highmem Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) DMA : 0xffc00000 - 0xffe00000 ( 2 MB) vmalloc : 0xc5800000 - 0xf8000000 ( 808 MB) lowmem : 0xc0000000 - 0xc5000000 ( 80 MB) pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) modules : 0xbf000000 - 0xbfe00000 ( 14 MB) .init : 0xc0008000 - 0xc003e000 ( 216 kB) .text : 0xc003e000 - 0xc04b9000 (4588 kB) .data : 0xc04ba000 - 0xc04fa980 ( 259 kB) SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 NR_IRQS:375 IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts Total of 128 interrupts on 1 active controller GPMC revision 6.0 Trying to install interrupt handler for IRQ368 Trying to install interrupt handler for IRQ369 Trying to install interrupt handler for IRQ370 Trying to install interrupt handler for IRQ371 Trying to install interrupt handler for IRQ372 Trying to install interrupt handler for IRQ373 Trying to install interrupt handler for IRQ374 Trying to install type control for IRQ375 Trying to set irq flags for IRQ375 OMAP clockevent source: GPTIMER1 at 20000000 Hz Console: colour dummy device 80x30 Calibrating delay loop... 599.65 BogoMIPS (lpj=2998272) pid_max: default: 32768 minimum: 301 Security Framework initialized Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok devtmpfs: initialized TI81XX: Map 0x84f00000 to 0xfe500000 for dram barrier TI81XX: Map 0x40300000 to 0xfe600000 for sram barrier omap_voltage_early_init: voltage driver support not added regulator: core version 0.5 regulator: dummy: NET: Registered protocol family 16 omap_voltage_domain_lookup: Voltage driver init not yet happened.Faulting! omap_voltage_add_dev: VDD specified does not exist! OMAP GPIO hardware version 0.1 OMAP GPIO hardware version 0.1 OMAP GPIO hardware version 0.1 OMAP GPIO hardware version 0.1 omap_mux_init: Add partition: #1: core, flags: 4 Cannot clk_get ck_32 Debugfs: Only enabling/disabling deep sleep and wakeup timer is supported now registered ti81xx_vpss device registered ti81xx_vidout device registered ti81xx on-chip HDMI device registered ti81xx_fb device PWM0 init success. PWM1 init success. bio: create slab <bio-0> at 0 SCSI subsystem initialized USBSS revision 4ea2080b registerd cppi-dma Intr @ IRQ 17 Cppi41 Init Done omap_i2c omap_i2c.1: bus 1 rev4.0 at 100 kHz tps65910 1-002d: No interrupt support, no core IRQ Advanced Linux Sound Architecture Driver Version 1.0.23. Switching to clocksource gp timer musb-hdrc: version 6.0, peripheral, debug=0 musb-hdrc musb-hdrc.0: dma type: dma-cppi41 MUSB controller-0 revision 4ea20800 usb2phy: computed values rxcalib(15)DACs(24 14 17) usb2phy: override computed values rxcalib(15)DACs(24 14 17) usb2phy_config: musb(0) rxcalib done, rxcalib read value 6f6c5d8e musb-hdrc musb-hdrc.0: USB Peripheral mode controller at c581e000 using DMA, IRQ 18 NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 2, 16384 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. NetWinder Floating Point Emulator V0.97 (double precision) PMU: registered new PMU device of type 0 omap-iommu omap-iommu.0: ducati registered omap-iommu omap-iommu.1: sys registered JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc. msgmni has been set to 138 io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) CMEMK module: built on Aug 4 2014 at 09:54:55 Reference Linux version 2.6.37 File /home/jayakrishnan/work/projects/dm388/ipnc_rdk_orig/Source/ti_tools/linuxutils_3_23_00_01/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c allocated heap buffer 0xc7000000 of size 0x4000000 cmemk initialized Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled omap_uart.0: ttyO0 at MMIO 0x48020000 (irq = 72) is a OMAP UART0 console [ttyO0] enabled, bootconsole disabled console [ttyO0] enabled, bootconsole disabled omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1 omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2 brd: module loaded loop: module loaded omap2-nand driver initializing ONFI param page 0 valid ONFI flash detected NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit) omap2-nand: detected x16 NAND flash Creating 8 MTD partitions on "omap2-nand.0": 0x000000000000-0x000000020000 : "U-Boot-min" 0x000000020000-0x000000260000 : "U-Boot" 0x000000260000-0x000000280000 : "U-Boot Env" 0x000000280000-0x0000006c0000 : "Kernel" 0x0000006c0000-0x000006fc0000 : "File System" 0x000006fc0000-0x000007bc0000 : "Data" 0x000007bc0000-0x00000b0c0000 : "File System2" 0x00000b0c0000-0x000010000000 : "Reserved" davinci_mdio davinci_mdio.0: davinci mdio revision 1.6 davinci_mdio davinci_mdio.0: detected phy mask fffffffe davinci_mdio.0: probed davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver unknown mice: PS/2 mouse device common for all mice omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0 i2c /dev entries driver Linux video capture interface: v2.00 OMAP Watchdog Timer Rev 0x00: initial timeout 60 sec notify_shm_drv: no DSP present (MULTIPROC_INVALIDID) notify_init : notify drivercreated for remote proc id 1 at physical Address 0xbfd00000 cm: Module associated with clock hdmi_i2s_fck didn't enable in 100000 tries asoc: tlv320aic3x-hifi <-> davinci-mcasp.1 mapping ok asoc: HDMI-DAI-CODEC <-> hdmi-dai mapping ok ALSA device list: #0: TI81XX EVM nf_conntrack version 0.5.0 (1104 buckets, 4416 max) ip_tables: (C) 2000-2006 Netfilter Core Team TCP cubic registered NET: Registered protocol family 17 Bridge firewalling registered lib80211: common routines for IEEE802.11 drivers Registering the dns_resolver key type VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 omap_voltage_late_init: Voltage driver support not added Power Management for TI81XX. Detected MACID=0:c:c:2:50:a1 omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800) CPSW phy found : id is : 0x4dd074 PHY 0:01 not found IP-Config: Guessing netmask 255.255.255.0 IP-Config: Complete: device=eth0, addr=192.168.1.224, mask=255.255.255.0, gw=255.255.255.255, host=192.168.1.224, domain=, nis-domain=(none), bootserver=255.255.255.255, rootserver=192.168.1.170, rootpath= Waiting 4sec before mounting root device... PHY: 0:00 - Link is Up - 1000/Full VFS: Mounted root (nfs filesystem) on device 0:14. devtmpfs: mounted Freeing init memory: 216K INIT: version 2.86 booting Please wait: booting... Starting udev Root filesystem already rw, not remounting Caching udev devnodes root: mount: mounting /dev/root on / failed: No such file or directory NOT configuring network interfaces: / is an NFS mount rm: cannot remove '/tmp': Device or resource busy Fri Nov 9 12:48:00 GMT-8 2012 inside finish.sh UBI: attaching mtd5 to ubi0 UBI: physical eraseblock size: 131072 bytes (128 KiB) UBI: logical eraseblock size: 126976 bytes UBI: smallest flash I/O unit: 2048 UBI: sub-page size: 512 UBI: VID header offset: 2048 (aligned 2048) UBI: data offset: 4096 UBI: max. sequence number: 15272 UBI: attached mtd5 to ubi0 UBI: MTD device name: "Data" UBI: MTD device size: 12 MiB UBI: number of good PEBs: 96 UBI: number of bad PEBs: 0 UBI: number of corrupted PEBs: 0 UBI: max. allowed volumes: 128 UBI: wear-leveling threshold: 4096 UBI: number of internal volumes: 1 UBI: number of user volumes: 1 UBI: available PEBs: 0 UBI: total number of reserved PEBs: 96 UBI: number of PEBs reserved for bad PEB handling: 2 UBI: max/mean erase counter: 170/159 UBI: image sequence number: 420757383 UBI: background thread "ubi_bgt0d" started, PID 254 UBI device number 0, total 96 LEBs (12189696 bytes, 11.6 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB) UBIFS: recovery needed UBIFS: recovery completed UBIFS: mounted UBI device 0, volume 0, name "ubifs_volume" UBIFS: file system size: 10285056 bytes (10044 KiB, 9 MiB, 81 LEBs) UBIFS: journal size: 1015809 bytes (992 KiB, 0 MiB, 6 LEBs) UBIFS: media format: w4/r0 (latest is w4/r0) UBIFS: default compressor: lzo UBIFS: reserved for root: 485787 bytes (474 KiB) UBI: attaching mtd7 to ubi1 UBI: physical eraseblock size: 131072 bytes (128 KiB) UBI: logical eraseblock size: 126976 bytes UBI: smallest flash I/O unit: 2048 UBI: sub-page size: 512 UBI: VID header offset: 2048 (aligned 2048) UBI: data offset: 4096 UBI: max. sequence number: 2071 UBI: attached mtd7 to ubi1 UBI: MTD device name: "Reserved" UBI: MTD device size: 79 MiB UBI: number of good PEBs: 634 UBI: number of bad PEBs: 0 UBI: number of corrupted PEBs: 0 UBI: max. allowed volumes: 128 UBI: wear-leveling threshold: 4096 UBI: number of internal volumes: 1 UBI: number of user volumes: 1 UBI: available PEBs: 0 UBI: total number of reserved PEBs: 634 UBI: number of PEBs reserved for bad PEB handling: 6 UBI: max/mean erase counter: 17/16 UBI: image sequence number: 1245370820 UBI: background thread "ubi_bgt1d" started, PID 266 UBI device number 1, total 634 LEBs (80502784 bytes, 76.8 MiB), available 0 LEBs (0 bytes), LEB size 126976 bytes (124.0 KiB) UBIFS: recovery needed UBIFS: recovery completed UBIFS: mounted UBI device 1, volume 0, name "ubifs_volume" UBIFS: file system size: 78090240 bytes (76260 KiB, 74 MiB, 615 LEBs) UBIFS: journal size: 3936256 bytes (3844 KiB, 3 MiB, 31 LEBs) UBIFS: media format: w4/r0 (latest is w4/r0) UBIFS: default compressor: lzo UBIFS: reserved for root: 3688395 bytes (3601 KiB) numid=1,iface=MIXER,name='PCM Playback Volume' ; type=INTEGER,access=rw---R--,values=2,min=0,max=127,step=0 : values=127,127 | dBscale-min=-63.50dB,step=0.50dB,mute=0 SysLink version : 2.21.02.10 SysLink module created on Date:Nov 10 2014 Time:15:08:24 Trace enabled Trace SetFailureReason enabled [c6xdsp ] Remote Debug Shared Memory @ 0xbff00000 [m3video] Remote Debug Shared Memory @ 0xbff05020 [m3vpss ] Remote Debug Shared Memory @ 0xbff0a040 /dev/mem opened. Phy Addr : 0x48181560 Data : 0x00000002 Unhandled fault: external abort on non-linefetch (0x1018) at 0x402a50e4 Phy Addr : 0x48180f10 Data : 0x00000000 Phy Addr : 0x48180508 Data : 0x00000302 Phy Addr : 0x48180520 Data : 0x00000002 Phy Addr : 0x48180524 Data : 0x00000002 Phy Addr : 0x48180528 Data : 0x00000002 Phy Addr : 0x4c0000e4 Data : 0x00170209 Bus error [host] Setting DMM priority for [ISS ] to [0] ( 0x4e000634 = 0x00080000 ) [host] Setting L3 bandwidth regulator for [ISS ] to [press=[3,3] BW=400, WM Cycles=2500] Creat queue id:0 queue id:0 FileMngThread created Creat queue id:32769 queue id:32769 AlramThread created Share memory init success IPNC_3.80.00 (jayakrishnan@jk-desktop) (gcc version 4.5.3 20110311 (prer [host] Setting DMM priority for [HDVICP0 ] to [1] ( 0x4e000634 = 0x00000009 ) Creat queue id:65538 queue id:65538 Creat queue id:98307 queue id:98307 queue id:32769 [host] Setting L3 bandwidth regulator for [HDVICP0 ] to [press=[0,0] BW=900, WM Cycles=2500] [host] Attached to slave procId 1. [host] Attached to slave procId 0. [host] Loaded file ./firmware/ipnc_rdk_fw_m3vpss.xem3 on slave procId 1. [c6xdsp ] Remote Debug Shared Memory @ 0xbff00000 [m3video] Remote Debug Shared Memory @ 0xbff05020 [m3vpss ] Remote Debug Shared Memory @ 0xbff0a040 [host] Started slave procId 1. [host] Loaded file ./firmware/ipnc_rdk_fw_m3video.xem3 on slave procId 0. [host] Started slave procId 0. [host] After Ipc_loadcallback status [0x00000000] [host] After Ipc_loadcallback status [0x00000000] [host] After Ipc_startcallback status [0x00000000] [host] After Ipc_startcallback status [0x00000000] [m3video] ***** SYSTEM : Frequency <ORG> - 200000000, <NEW> - 200000000 [m3vpss ] ***** SYSTEM : Frequency <ORG> - 200000000, <NEW> - 200000000 [m3video] [m3vpss ] notify_attach rtnVal 0 [m3video] *** UTILS: CPU KHz = 400000 Khz *** [m3vpss ] initProxyServer rtnVal 0 [m3video] [m3vpss ] [m3video] 35: SYSTEM : System Common Init in progress !!! [m3vpss ] *** UTILS: CPU KHz = 400000 Khz *** [m3video] 35: SYSTEM: IPC init in progress !!! [m3vpss ] [m3video] 36: SYSTEM: Attaching to [HOST] ... [m3vpss ] 70: SYSTEM : System Common Init in progress !!! [m3video] 85: SYSTEM: Attaching to [HOST] ... [m3vpss ] 70: SYSTEM: IPC init in progress !!! [m3video] 101: SYSTEM: Attaching to [HOST] ... SUCCESS !!! [m3vpss ] 70: SYSTEM: Attaching to [HOST] ... [m3video] 101: SYSTEM: Attaching to [VPSS-M3] ... [m3vpss ] 120: SYSTEM: Attaching to [HOST] ... [m3vpss ] 122: SYSTEM: Attaching to [HOST] ... SUCCESS !!! [m3vpss ] 123: SYSTEM: Attaching to [VIDEO-M3] ... [m3video] 151: SYSTEM: Attaching to [VPSS-M3] ... [m3video] 173: SYSTEM: Attaching to [VPSS-M3] ... SUCCESS !!! [m3vpss ] 173: SYSTEM: Attaching to [VIDEO-M3] ... [m3video] 174: SYSTEM: Opening MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [m3vpss ] 173: SYSTEM: Attaching to [VIDEO-M3] ... SUCCESS !!! [m3vpss ] 174: SYSTEM: Creating MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [m3vpss ] 174: SYSTEM: Creating MsgQ [VPSS-M3_MSGQ] ... [m3vpss ] 175: SYSTEM: Creating MsgQ [VPSS-M3_ACK_MSGQ] ... [m3vpss ] 177: SYSTEM: Notify register to [HOST] line 0, event 12 ... [m3vpss ] 177: SYSTEM: Notify register to [VIDEO-M3] line 0, event 12 ... [m3vpss ] 177: SYSTEM: IPC init DONE !!! [m3vpss ] Received character 's' [m3vpss ] 193: MEM: Shared Region 2: Base = 0xb8000000, Length = 0x06900000 (105 MB) [m3vpss ] 193: MEM: Shared Region 1: Base = 0x89000000, Length = 0x03b00000 (59 MB) [m3vpss ] 196: SYSTEM : System Common Init Done !!! [c6xdsp ] Remote Debug Shared Memory @ 0xbff00000 [m3video] Remote Debug Shared Memory @ 0xbff05020 [m3vpss ] Remote Debug Shared Memory @ 0xbff0a040 [m3video] 274: SYSTEM: Opening MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [m3video] 275: SYSTEM: Creating MsgQ [VIDEO-M3_MSGQ] ... [m3video] 275: SYSTEM: Creating MsgQ [VIDEO-M3_ACK_MSGQ] ... [m3video] 277: SYSTEM: Notify register to [HOST] line 0, event 12 ... [m3video] 277: SYSTEM: Notify register to [VPSS-M3] line 0, event 12 ... [m3video] 278: SYSTEM: IPC init DONE !!! [m3video] 293: MEM: Shared Region 2: Base = 0xb8000000, Length = 0x06900000 (105 MB) [m3video] 293: MEM: Shared Region 1: Base = 0x89000000, Length = 0x03b00000 (59 MB) [m3video] Received character 's' queue id:65538 Creat queue id:131076 queue id:131076 CPU is TI812x ***************************************************************** IPNC BUILD VERSION: IPNC RDK VERSION 03.80.00.05 (LOW POWER) ***************************************************************** DEMOCFG Value : 0 Videocodecmode : 8 Videocodecres : 0 streamtype : 2 vsenable : 0 ./bin/ipnc_rdk_mcfw.out TRISTREAM TRIPLE_H264 APPRO2A AEWB 1080P_D1 H264 HIGH_SPEED1 H264 HIGH_SPEED2 MJPEG 80 & [m3video] 296: SYSTEM : System Common Init Done !!! Creat queue id:163845 queue id:163845 queue id:65538 [c6xdsp ] Remote Debug Shared Memory @ 0xbff00000 [m3video] Remote Debug Shared Memory @ 0xbff05020 [m3vpss ] Remote Debug Shared Memory @ 0xbff0a040 [m3vpss ] 496: SYSTEM : System VPSS Init in progress !!! [m3vpss ] PLATFORM: UNKNOWN CPU detected, defaulting to ISS_PLATFORM_CPU_REV_2_1 [m3vpss ] 497: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_0] in region 0 ... [m3vpss ] 497: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_0] in region 0 ... [m3vpss ] 498: SYSTEM: ListElem Shared Addr = 0xbe984180 [m3vpss ] 500: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_1] in region 0 ... [m3vpss ] 501: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_1] in region 0 ... [m3vpss ] 501: SYSTEM: ListElem Shared Addr = 0xbe987680 ApproDrvInit: 7 queue id:163845 [m3vpss ] 515: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_24] in region 0 ... [m3vpss ] 515: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_24] in region 0 ... [m3vpss ] 516: SYSTEM: ListElem Shared Addr = 0xbe98ab80 [m3vpss ] 518: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_25] in region 0 ... [m3vpss ] 519: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_25] in region 0 ... [m3vpss ] 519: SYSTEM: ListElem Shared Addr = 0xbe9aa580 [m3vpss ] 522: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_26] in region 0 ... [c6xdsp ] Remote Debug Shared Memory @ 0xbff00000 [m3video] Remote Debug Shared Memory @ 0xbff05020 [m3vpss ] Remote Debug Shared Memory @ 0xbff0a040 [m3vpss ] 522: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_26] in region 0 ... [m3vpss ] 523: SYSTEM: ListElem Shared Addr = 0xbe9c9f80 [m3vpss ] 529: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_29] in region 0 ... [m3vpss ] 530: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_29] in region 0 ... [m3vpss ] 530: SYSTEM: ListElem Shared Addr = 0xbe9e9980 [m3vpss ] 533: SYSTEM: Creating ListMP [VPSS-M3_IPC_OUT_30] in region 0 ... [m3vpss ] 533: SYSTEM: Creating ListMP [VPSS-M3_IPC_IN_30] in region 0 ... [m3vpss ] 534: SYSTEM: ListElem Shared Addr = 0xbea03600 [m3vpss ] 536: SYSTEM : Device Init in progress !!! [m3vpss ] Iss_init called !!!!!! [m3vpss ] CPIS_init DONE !!!!!! [m3vpss ] 542: SYSTEM : Device Init in progress DONE !!! [c6xdsp ] Remote Debug Shared Memory @ 0xbff00000 [m3video] Remote Debug Shared Memory @ 0xbff05020 [m3vpss ] Remote Debug Shared Memory @ 0xbff0a040 [m3video] 595: SYSTEM : System Video Init in progress !!! [m3vpss ] Sensor in 1080p Mode... [m3video] 596: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_0] in region 0 ... [m3video] 596: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_0] in region 0 ... [m3video] 597: SYSTEM: ListElem Shared Addr = 0xbea1d280 [m3video] 599: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_1] in region 0 ... [m3video] 599: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_1] in region 0 ... [m3video] 600: SYSTEM: ListElem Shared Addr = 0xbea20780 [m3video] 610: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_29] in region 0 ... [m3video] 610: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_29] in region 0 ... [m3video] 611: SYSTEM: ListElem Shared Addr = 0xbea23c80 [m3video] 613: SYSTEM: Creating ListMP [VIDEO-M3_IPC_OUT_30] in region 0 ... [m3video] 614: SYSTEM: Creating ListMP [VIDEO-M3_IPC_IN_30] in region 0 ... [m3video] 614: SYSTEM: ListElem Shared Addr = 0xbea3d900 [m3video] 616: HDVICP: Doing PRCM for IVAHD[0] ... [m3video] 616: HDVICP: PRCM for IVAHD[0] ... DONE. [m3video] 617: SYSTEM : Initializing Links !!! [m3video] 618: SYSTEM : FREE SPACE : System Heap = 2088976 B, Mbx = 10240 msgs) [m3video] 618: SYSTEM : FREE SPACE : SR0 Heap = 15372416 B (14 MB) [m3video] 618: SYSTEM : FREE SPACE : Frame Buffer = 110100352 B (104 MB) [m3video] 619: SYSTEM : FREE SPACE : Bitstream Buffer = 61865856 B (58 MB) [m3video] 619: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ... [m3video] 620: SYSTEM : FREE SPACE : Tiler Buffer = 128 B (0 MB) - TILER OFF [m3video] Entered the MctnfLink_init() [m3video] 680: SYSTEM : Initializing Links ... DONE !!! [m3video] 680: SYSTEM : System Video Init Done !!! [m3vpss ] XXXXX DRV_imgsSetAgain() Error(1000) [m3vpss ] XXXXX DRV_imgsSetAgain() Error(1000) [m3vpss ] With IMX136 SETTING_-_-,DRV_imgsSetRegs,598 0 [m3vpss ] 727: SYSTEM : System VPSS Init Done !!! [m3vpss ] 727: UTILS: DMA: HWI Create for INT62 !!! [m3vpss ] 728: SYSTEM : Initializing Links !!! [m3vpss ] 728: SYSTEM : FREE SPACE : System Heap = 1684624 B, Mbx = 10240 msgs) [m3vpss ] 728: SYSTEM : FREE SPACE : SR0 Heap = 15372416 B (14 MB) [m3vpss ] 729: SYSTEM : FREE SPACE : Frame Buffer = 105790336 B (100 MB) [m3vpss ] 729: SYSTEM : FREE SPACE : Bitstream Buffer = 61865856 B (58 MB) [m3vpss ] 730: SYSTEM : FREE SPACE : Tiler Buffer = 128 B (0 MB) - TILER OFF [m3vpss ] 812: SYSTEM : InitializiDMA: Module install successful, device major num = 248 ng Links ... DONDRV: Module install successful E !!! [m3vpssDRV: Module built on Nov 10 2014 15:15:04 ] Received character 't' [c6xdsp ] Remote Debug Shared Memory @ 0xbff00000 [m3video] Remote Debug Shared Memory @ 0xbff05020 [m3vpss ] Remote Debug Shared Memory @ 0xbff0a040 [m3video] Received character 't' /dev/mem opened. Phy Addr : 0x48180e00 Data : 0x00030000 Phy Addr : 0x48180e10 Data : 0x00000007 Phy Addr : 0x48180e04 Data : 0x00000000 Phy Addr : 0x48180e14 Data : 0x00000000 Phy Addr : 0x48180800 Data : 0x00000001 Phy Addr : 0x48180820 Data : 0x00070000 Phy Addr : 0x48180824 Data : 0x00030002 Phy Addr : 0x48180e04 Data : 0x00000000 Phy Addr : 0x48180e00 Data : 0x00030000 Phy Addr : 0x48180e10 Data : 0x00000007 Phy Addr : 0x48180e04 Data : 0x00000000 Phy Addr : 0x48180e14 Data : 0x00000000 Phy Addr : 0x48180800 Data : 0x00000001 Phy Addr : 0x48180820 Data : 0x00070000 Phy Addr : 0x48180824 Data : 0x00030002 [host] Application Start Completed DMA: ChannelID allocated:4 [host] 0: SYSDMA: ChannelID allocated:5 TEM: System Common Init in progress !!! [host] 0: SYSTEM: IPC init in progress !!! [host] 11: SYSTEM: CPU [DSP] is NOT available on this platform !!! [host] 11: SYSTEM: CPU [VIDEO-M3] syslink proc ID is [0] !!! [host] 11: SYSTEM: CPU [VPSS-M3] syslink proc ID is [1] !!! [host] 11: SYSTEM: CPU [HOST] syslink proc ID is [2] !!! [host] 12: SYSTEM: Opening MsgQ Heap [IPC_MSGQ_MSG_HEAP] ... [host] 13: SYSTEM: Creating MsgQ [HOST_MSGQ] ... [host] 15: SYSTEM: Creating MsgQ [HOST_ACK_MSGQ] ... [host] 16: SYSTEM: Opening MsgQ [VIDEO-M3_MSGQ] ... [host] 16: SYSTEM: Opening MsgQ [VPSS-M3_MSGQ] ... [host] 17: SYSTEM: Notify register to [VIDEO-M3] line 0, event 12 ... [host] 18: SYSTEM: Notify register to [VPSS-M3] line 0, event 12 ... [host] 19: SYSTEM: IPC init DONE !!! [host] 20: SYSTEM: Creating ListMP [HOST_IPC_OUT_29] in region 0 ... [host] 22: SYSTEM: Creating ListMP [HOST_IPC_IN_29] in region 0 ... [host] 23: SYSTEM: ListElem Shared Addr = 0x40d4a580 [host] 24: SYSTEM: Creating ListMP [HOST_IPC_OUT_30] in region 0 ... [host] 26: SYSTEM: Creating ListMP [HOST_IPC_IN_30] in region 0 ... [host] 28: SYSTEM: ListElem Shared Addr = 0x40d64200 [host] 29: SYSTEM: Creating ListMP [HOST_IPC_OUT_24] in region 0 ... [host] 31: SYSTEM: Creating ListMP [HOST_IPC_IN_24] in region 0 ... [host] 33: SYSTEM: ListElem Shared Addr = 0x40d7de80 [host] 34: SYSTEM: Creating ListMP [HOST_IPC_OUT_25] in region 0 ... [host] 36: SYSTEM: Creating ListMP [HOST_IPC_IN_25] in region 0 ... [host] 37: SYSTEM: ListElem Shared Addr = 0x40d9d880 [host] 38: SYSTEM: Creating ListMP [HOST_IPC_OUT_26] in region 0 ... [host] 40: SYSTEM: Creating ListMP [HOST_IPC_IN_26] in region 0 ... [host] 42: SYSTEM: ListElem Shared Addr = 0x40dbd280 [host] 43: SYSTEM: System Common Init Done !!! [host] Vsys_allocBuf - addr = 0x4c5b6000,size = 65011712 ##########pInfo->totalsize 63897600 [host] MemMng_memcpy_open:OSA_dmaOpen passed with ch id = 4 [host] CacheMng_MemCpy_open:OSA_dmaOpen passed with ch id = 5 [host] MCFW_IPCFRAMES:App_ipcFramesSendRecvFxn:Entered... [host] Vsys_allocBuf - addr = 0x51520000,size = 29127 [host] DCC buffer allocated for size 29127 [host] DCC Default File Intialization Done [host] ********** LOW POWER USECASE ******** [host] ********* Entered Tri Streaming usecase - H264 1080p @60fps + H264 D1 @30fps + MJPEG 1080p @5fps ******** [host] 63: MCFW : CPU Revision [ES1.0] !!! [host] 63: MCFW : Detected [UNKNOWN] Board !!! [host] 63: MCFW : Base Board Revision [UNKNOWN] !!! [host] JK:gUI_mcfw_config.glbceEnable = 0 [host] JK:gUI_mcfw_config.demoCfg.resolution_combo = 0 [host] JK:gUI_mcfw_config.glbceEnable = 0 [host] JK:Starting SCALAR LINK.. [host] JK:encPrm.vsEnable = 0 [host] JK:encPrm.isVaUseCase = 0 [m3vpss ] 975: CAMERA: Create in progress !!! [m3vpss ] Channel Num Stream 0 Ch 0 ChannelNum 0 [m3vpss ] Channel Num Stream 1 Ch 0 ChannelNum 1 [m3vpss ] 976: CAMERA: VIP0 PortA camera mode is [ 8-bit, Non-mux Embedded Sync] !!! [m3vpss ] 977: CAMERA: VIP 0: VID DEC 268436750 (0x2d): 8ee010e0:ffff0000:8ee0359c, AUD_STATUS -1897902040 [m3vpss ] Iss_captCreate:1661 [m3vpss ] 1194: CAMERA: Create Done !!! [m3vpss ] 1285: CAMERA: Detect video in progress !!! [m3vpss ] 1285: CAMERA: Detect video Done !!! [m3vpss ] 1361: DUP : Create Done !!! [m3vpss ] Unhandled Exception: [m3vpss ] Exception occurred in ThreadType_Task [m3vpss ] handle: 0x8e0cd2a0. [m3vpss ] stack base: 0x8ee6b520. [m3vpss ] stack size: 0x8000. [m3vpss ] R0 = 0x8ba78af9 R8 = 0xffffffff [m3vpss ] R1 = 0x09862090 R9 = 0xffffffff [m3vpss ] R2 = 0x00000001 R10 = 0xffffffff [m3vpss ] R3 = 0x00000804 R11 = 0xffffffff [m3vpss ] R4 = 0x00000000 R12 = 0x22e00300 [m3vpss ] R5 = 0x00000000 SP(R13) = 0x8ee73450 [m3vpss ] R6 = 0xffffffff LR(R14) = 0x8dd6a923 [m3vpss ] R7 = 0x8ee734e0 PC(R15) = 0x8dd65d34 [m3vpss ] PSR = 0x21000000 [m3vpss ] ICSR = 0x0440f803 [m3vpss ] MMFSR = 0x00 [m3vpss ] BFSR = 0x82 [m3vpss ] UFSR = 0x0000 [m3vpss ] HFSR = 0x40000000 [m3vpss ] DFSR = 0x00000000 [m3vpss ] MMAR = 0x09862090 [m3vpss ] BFAR = 0x09862090 [m3vpss ] AFSR = 0x00000000 [m3vpss ] Terminating Execution... inside autorun INIT: Entering runleve sbulla: unknown partition table l: 5 sbulla: unknown partition table Starting telnet daemon. Starting syslogd/klogd: done c _____ _____ _ _ | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_ | | _| .'| . | . | | __| _| . | | | -_| _| _| |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_| |___| |___| Arago Project http://arago-project.org DM385_IPNC ttyO0 Arago 2011.09 DM385_IPNC ttyO0 DM385_IPNC login: root (automatic login) root@DM385_IPNC:~# mkdosfs 3.0.12 (29 Oct 2011) unable to get drive geometry, using default 255/63 /dev/sbulla has 255 heads and 63 sectors per track, logical sector size is 512, using 0xf8 media descriptor, with 1024 sectors; file system has 2 12-bit FATs and 4 sectors per cluster. FAT size is 1 sector, and provides 247 clusters. There is 1 reserved sector. Root directory contains 512 slots and uses 32 sectors. Volume ID is b0fd3ec8, no volume label. 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 Simple mixer control 'PGA',0 Capabilities: cvolume cswitch penum Capture channels: Front Left - Front Right Limits: Capture 0 - 119 Front Left: Capture 80 [67%] [40.00dB] [on] Front Right: Capture 80 [67%] [40.00dB] [on] queue id:0 ./boa: /usr/lib/libssl.so.1.0.0: no version information available (required by ./boa) ./boa: /usr/lib/libcrypto.so.1.0.0: no version information available (required by ./boa) ApproDrvInit: 3 queue id:163845 queue id:0 queue id:32769 queue id:0 TimeOut occure in boot_proc. Program exit. TimeOut occure in boot_proc. Program exit.
Hi JK,
The 'sclrPrm.inQueParams.prevLinkQueId = 0;' setting is wrong.
It should be 'sclrPrm.inQueParams.prevLinkQueId = 1;' since the second output queue of the DUP is connected to the scalar link.
Even 'mergePrm[CAM_STREAM_MERGE_IDX].inQueParams[2].prevLinkQueId = 2;' is wrong.
It should be 'mergePrm[CAM_STREAM_MERGE_IDX].inQueParams[2].prevLinkQueId = 0;' since the only output queue of the scalar is connected to the merge link.
regards,
Anand
Hi Anand
Thanks for pointing out the mistake. The scalar link is working now. In the same use case I wanted to get ch0 848x480, ch1 720p and ch2 1080p , all @30fps.
(The scalar may not be reqd here, but keeping it because a different resolution may be reqd later)
But I am getting only 15 fps for ch 1. (Second stream of VIP instance)
See the log below.
[m3vpss ] ==================== CameraLink_PrintDetails ====================
[m3vpss ] 608146: CAMERA: Fields = 27008 (fps = 45, CPU Load = 14)
[m3vpss ] 608147: CAMERA: Num Resets = 0 (Avg 0 ms per reset)
[m3vpss ] =================================================================
[m3vpss ] 608346: CAMERA: Fields = 2702 (fps = 45), Total Resets = 0 (Avg 0 ms per reset)
[m3video] ==================== EncLink_PrintDetails ====================
[m3video] 613790: HDVICP-ID:0
[m3video] totalAcquire2wait in msec: 10809
[m3video] totalWait2Isr in msec: 346121
[m3video] totalIsr2Done in msec: 939
[m3video] totalWait2Done in msec: 347060
[m3video] totalDone2Release in msec: 0
[m3video] totalAcquire2Release in msec: 362500
[m3video] totalAcq2acqDelay in msec: 243195
[m3video] totalElapsedTime in msec: 605695
[m3video] numAccessCnt: 45426
[m3video] IVA-FPS : 75
[m3video]
[m3video] *** ENCODE Statistics ***
[m3video]
[m3video] Elasped Time : 28 secs
[m3video]
[m3video]
[m3video] CH | In Recv In Skip In User Out Latency
[m3video] Num | FPS FPS Skip FPS FPS Min / Max
[m3video] --------------------------------------------
[m3video] 0 | 30 0 0 30.82 3 / 8
[m3video] 1 | 15 0 0 15.39 7 / 10
[m3video] 2 | 30 0 0 30.82 27 / 34
[m3video]
[m3video] Multi Channel Encode Average Submit Batch Size
[m3video] Max Submit Batch Size : 24
[m3video] IVAHD_0 Average Batch Size : 1
[m3video] IVAHD_0 Max achieved Batch Size : 1
[m3video] ==============================================================
How can I get 30fps for all the 3 channels?
Best Regards
JK
ch0 | ch2 | ch1 | |||||||
848x480 | 1080p | 720p | |||||||
Hi Anand
I removed the scalar and checked the fps. (Pls see the use case diag below)
Now both channels gives ~30fps.
[m3video] ==================== EncLink_PrintDetails ====================
[m3video] 45723: HDVICP-ID:0
[m3video] totalAcquire2wait in msec: 419
[m3video] totalWait2Isr in msec: 16571
[m3video] totalIsr2Done in msec: 37
[m3video] totalWait2Done in msec: 16608
[m3video] totalDone2Release in msec: 0
[m3video] totalAcquire2Release in msec: 17235
[m3video] totalAcq2acqDelay in msec: 12118
[m3video] totalElapsedTime in msec: 29353
[m3video] numAccessCnt: 1726
[m3video] IVA-FPS : 59
[m3video]
[m3video] *** ENCODE Statistics ***
[m3video]
[m3video] Elasped Time : 29 secs
[m3video]
[m3video]
[m3video] CH | In Recv In Skip In User Out Latency
[m3video] Num | FPS FPS Skip FPS FPS Min / Max
[m3video] --------------------------------------------
[m3video] 0 | 30 0 0 30.10 8 / 42
[m3video] 1 | 28 0 0 29.00 22 / 57
[m3video]
[m3video] Multi Channel Encode Average Submit Batch Size
[m3video] Max Submit Batch Size : 24
[m3video] IVAHD_0 Average Batch Size : 1
[m3video] IVAHD_0 Max achieved Batch Size : 1
[m3video] ==============================================================
When I add another channel, the ch1 fps drops. Why?
Best Regards
JK
Hi Anand
This issue has been fixed. The reduction in frame rate was due a bottleneck in the Encoder Link.
Thanks
JK