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.

How to capture 1920x1080

Other Parts Discussed in Thread: TVP5158, TVP7002

Dear Expert,

I created my usecase as :

cap -> nsf -> dei -> enc(jpg) -> write frame to file

Here is part of my code:

..........................

for(vipInstId=0; vipInstId<capturePrm.numVipInst; vipInstId++)
{
    pCaptureInstPrm                  = &capturePrm.vipInst[vipInstId];
    pCaptureInstPrm->vipInstId       = (SYSTEM_CAPTURE_INST_VIP0_PORTA+vipInstId)%SYSTEM_CAPTURE_INST_MAX;
    pCaptureInstPrm->videoDecoderId  = SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;
    pCaptureInstPrm->inDataFormat    = SYSTEM_DF_YUV422P;
    pCaptureInstPrm->standard        = SYSTEM_STD_1080P_30; //SYSTEM_STD_MUX_4CH_D1;
    pCaptureInstPrm->numOutput       = 1;

    pCaptureOutPrm                   = &pCaptureInstPrm->outParams[0];
    pCaptureOutPrm->dataFormat       = SYSTEM_DF_YUV422I_YUYV;
    pCaptureOutPrm->scEnable         = FALSE;
    pCaptureOutPrm->scOutWidth       = 0;
    pCaptureOutPrm->scOutHeight      = 0;
    pCaptureOutPrm->outQueId         = 0;
 }

for(i = 0; i < NUM_CAPTURE_DEVICES; i++)
{
    vidDecVideoModeArgs[i].videoIfMode        = DEVICE_CAPT_VIDEO_IF_MODE_8BIT;
    vidDecVideoModeArgs[i].videoDataFormat    = SYSTEM_DF_YUV422P;
    vidDecVideoModeArgs[i].standard           = SYSTEM_STD_1080P_30; //SYSTEM_STD_MUX_4CH_D1;
    vidDecVideoModeArgs[i].videoCaptureMode   = DEVICE_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_PIXEL_MUX_EMBEDDED_SYNC;
    vidDecVideoModeArgs[i].videoSystem        = DEVICE_VIDEO_DECODER_VIDEO_SYSTEM_AUTO_DETECT;
    vidDecVideoModeArgs[i].videoCropEnable    = FALSE;
    vidDecVideoModeArgs[i].videoAutoDetectTimeout = -1;
}
................................
gVcapModuleContext.deiId[0]          = SYSTEM_LINK_ID_DEI_HQ_0;


deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].scaleMode = DEI_SCALE_MODE_RATIO;
deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.widthRatio.numerator    = 1;
deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.widthRatio.denominator  = 1;
deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.heightRatio.numerator   = 1;
deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.heightRatio.denominator = 1;
...............................................
deiPrm.comprEnable                                     = FALSE;
deiPrm.setVipScYuv422Format                            = FALSE;
deiPrm.inputFrameRate[DEI_LINK_OUT_QUE_VIP_SC]         = 30;
deiPrm.outputFrameRate[DEI_LINK_OUT_QUE_VIP_SC]        = 30;
deiPrm.enableDeiForceBypass                            = TRUE;
deiPrm.numBufsPerCh[DEI_LINK_OUT_QUE_VIP_SC]           = 6;
deiPrm.enableOut[DEI_LINK_OUT_QUE_VIP_SC]              = TRUE;
deiPrm.outQueParams[DEI_LINK_OUT_QUE_VIP_SC].nextLink  = ipcId[IPC_OUT_VPSS_LINK_IDX];


If I use SYSTEM_STD_MUX_4CH_D1 parameter I get frame with resolution 704x288.

Then I've changed that parameter to SYSTEM_STD_1080P_30 and I get frame with the same resolution!

I would like to get 1920x1080.

What is wrong?

Thank you!


Void setMJPEGEncChParams (EncLink_CreateParams *encPrm, Int32 startChNum, Int32 endChNum)
{
     Int32 i;

     EncLink_ChCreateParams *pLinkChPrm;
     EncLink_ChDynamicParams *pLinkDynPrm;
     VENC_CHN_DYNAMIC_PARAM_S *pDynPrm;
     VENC_CHN_PARAMS_S *pChPrm;

     for (i=startChNum; i<endChNum; i++)
     {
          pLinkChPrm  = &encPrm->chCreateParams[i];
          pLinkDynPrm = &pLinkChPrm->defaultDynamicParams;

          pChPrm      = &gVencModuleContext.vencConfig.encChannelParams[i];
          pDynPrm     = &pChPrm->dynamicParam;

          pLinkChPrm->format                 = IVIDEO_MJPEG;
          pLinkChPrm->profile                = 0;
          pLinkChPrm->dataLayout             = IVIDEO_FIELD_SEPARATED;
          pLinkChPrm->fieldMergeEncodeEnable = FALSE;
          pLinkChPrm->enableAnalyticinfo     = 0;
          pLinkChPrm->enableWaterMarking     = 0;
          pLinkChPrm->maxBitRate             = 0;
          pLinkChPrm->encodingPreset         = 0;
          pLinkChPrm->rateControlPreset      = 0;
          pLinkChPrm->enableSVCExtensionFlag = 0;
          pLinkChPrm->numTemporalLayer       = 0;

          pLinkDynPrm->intraFrameInterval    = 0;
          pLinkDynPrm->targetBitRate         = 100*1000;
          pLinkDynPrm->interFrameInterval    = 0;
          pLinkDynPrm->mvAccuracy            = 0;
          pLinkDynPrm->inputFrameRate        = 30;
          pLinkDynPrm->qpMin                 = 0;
          pLinkDynPrm->qpMax                 = 0;
          pLinkDynPrm->qpInit                = -1;
          pLinkDynPrm->vbrDuration           = 0;
          pLinkDynPrm->vbrSensitivity        = 0;
     }
}




Void Create_Chain_VcapVenc_h264_2()
{

	UInt32 NumberOfChannelTVP = 1; //1 to 4 !!!

	CaptureLink_CreateParams     capturePrm;
	NsfLink_CreateParams         nsfPrm[NUM_NSF_LINK];
	DeiLink_CreateParams         deiPrm;

	CaptureLink_VipInstParams    *pCaptureInstPrm;
	CaptureLink_OutParams        *pCaptureOutPrm;

	VCAP_VIDDEC_PARAMS_S         vidDecVideoModeArgs[NUM_CAPTURE_DEVICES];

	//UInt32 mergeId, dupId;
	UInt32 vipInstId, i, chId;



	/* For encoder's branch - start */
	IpcLink_CreateParams              ipcOutVpssPrm;
	IpcLink_CreateParams              ipcInVideoPrm;
	EncLink_CreateParams              encPrm;
	IpcBitsOutLinkRTOS_CreateParams   ipcBitsOutVideoPrm;
	IpcBitsInLinkHLOS_CreateParams    ipcBitsInHostPrm;

	System_LinkInfo                   bitsProducerLinkInfo;

	UInt32 ipcId[NUM_IPC_LINK];


	for (i = 0; i < NUM_NSF_LINK;i++)
		MULTICH_INIT_STRUCT(NsfLink_CreateParams, nsfPrm[i]);


	System_linkControl( SYSTEM_LINK_ID_M3VPSS,
			            SYSTEM_M3VPSS_CMD_RESET_VIDEO_DEVICES,
			            NULL, 0, TRUE );

	/* For encoder's branch */
	System_linkControl( SYSTEM_LINK_ID_M3VIDEO,
			            SYSTEM_COMMON_CMD_SET_CH2IVAHD_MAP_TBL,
			            &systemVid_encDecIvaChMapTbl,
						sizeof(SystemVideo_Ivahd2ChMap_Tbl), TRUE );



	gVcapModuleContext.captureId    = SYSTEM_LINK_ID_CAPTURE;
	gVcapModuleContext.nsfId[NSF_AFTER_CAPTURE]     = SYSTEM_LINK_ID_NSF_0;
	

	gVencModuleContext.encId        = SYSTEM_LINK_ID_VENC_0;



	//ENCODERS IPC
	ipcId[IPC_OUT_VPSS_LINK_IDX]   = SYSTEM_VPSS_LINK_ID_IPC_OUT_M3_0;
	ipcId[IPC_IN_VIDEO_LINK_IDX]   = SYSTEM_VIDEO_LINK_ID_IPC_IN_M3_0;

	gVencModuleContext.ipcBitsOutRTOSId       = SYSTEM_VIDEO_LINK_ID_IPC_BITS_OUT_0;
	gVencModuleContext.ipcBitsInHLOSId        = SYSTEM_HOST_LINK_ID_IPC_BITS_IN_0;

	gVcapModuleContext.deiId[0]          = SYSTEM_LINK_ID_DEI_HQ_0;
	


	MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcOutVpssPrm);
	MULTICH_INIT_STRUCT(IpcLink_CreateParams,ipcInVideoPrm);
	MULTICH_INIT_STRUCT(IpcBitsOutLinkRTOS_CreateParams,ipcBitsOutVideoPrm);
	MULTICH_INIT_STRUCT(IpcBitsInLinkHLOS_CreateParams,ipcBitsInHostPrm);
	MULTICH_INIT_STRUCT(EncLink_CreateParams, encPrm);





	CaptureLink_CreateParams_Init(&capturePrm);

	capturePrm.outQueParams[0].nextLink   = gVcapModuleContext.nsfId[NSF_AFTER_CAPTURE];
	capturePrm.numVipInst                 = NumberOfChannelTVP;
	capturePrm.tilerEnable                = FALSE;
	capturePrm.numBufsPerCh               = 6;

	for(vipInstId=0; vipInstId<capturePrm.numVipInst; vipInstId++)
	{
		pCaptureInstPrm                  = &capturePrm.vipInst[vipInstId];
		pCaptureInstPrm->vipInstId       = (SYSTEM_CAPTURE_INST_VIP0_PORTA+vipInstId)%SYSTEM_CAPTURE_INST_MAX;
		pCaptureInstPrm->videoDecoderId  = SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;
		pCaptureInstPrm->inDataFormat    = SYSTEM_DF_YUV422P;
		pCaptureInstPrm->standard        = SYSTEM_STD_1080P_30;//SYSTEM_STD_D1;//SYSTEM_STD_1080P_30;//SYSTEM_STD_MUX_4CH_D1;
		pCaptureInstPrm->numOutput       = 1;

		pCaptureOutPrm                   = &pCaptureInstPrm->outParams[0];
		pCaptureOutPrm->dataFormat       = SYSTEM_DF_YUV422I_YUYV;
		pCaptureOutPrm->scEnable         = FALSE;
		pCaptureOutPrm->scOutWidth       = 1920;
		pCaptureOutPrm->scOutHeight      = 1080;
		pCaptureOutPrm->outQueId         = 0;
	 }

	for(i = 0; i < NUM_CAPTURE_DEVICES; i++)
	{
		vidDecVideoModeArgs[i].videoIfMode        = DEVICE_CAPT_VIDEO_IF_MODE_8BIT;
		vidDecVideoModeArgs[i].videoDataFormat    = SYSTEM_DF_YUV422P;
		vidDecVideoModeArgs[i].standard           = SYSTEM_STD_1080P_30;//SYSTEM_STD_D1;//SYSTEM_STD_1080P_30;//SYSTEM_STD_MUX_4CH_D1;
		vidDecVideoModeArgs[i].videoCaptureMode   = DEVICE_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_PIXEL_MUX_EMBEDDED_SYNC;
		vidDecVideoModeArgs[i].videoSystem        = DEVICE_VIDEO_DECODER_VIDEO_SYSTEM_AUTO_DETECT;
		vidDecVideoModeArgs[i].videoCropEnable    = FALSE;
		vidDecVideoModeArgs[i].videoAutoDetectTimeout = -1;
	}

	if(gVsysModuleContext.enableFastUsecaseSwitch==FALSE)
		Vcap_configVideoDecoder(vidDecVideoModeArgs, NUM_CAPTURE_DEVICES);

	//cap <- nsf -> dei

	nsfPrm[NSF_AFTER_CAPTURE].bypassNsf                     = TRUE;
	nsfPrm[NSF_AFTER_CAPTURE].tilerEnable                   = FALSE;
	nsfPrm[NSF_AFTER_CAPTURE].inQueParams.prevLinkId        = gVcapModuleContext.captureId;
	nsfPrm[NSF_AFTER_CAPTURE].inQueParams.prevLinkQueId     =  0;
	nsfPrm[NSF_AFTER_CAPTURE].numOutQue                     = 1;
	nsfPrm[NSF_AFTER_CAPTURE].outQueParams[0].nextLink      = gVcapModuleContext.deiId[0];
	nsfPrm[NSF_AFTER_CAPTURE].numBufsPerCh                  = 6;


	//nsf <- dei -> ipcOutVpss


	DeiLink_CreateParams_Init(&deiPrm);

	deiPrm.inQueParams.prevLinkId = gVcapModuleContext.nsfId[NSF_AFTER_CAPTURE];
	deiPrm.inQueParams.prevLinkQueId  = 0;

	deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].scaleMode = DEI_SCALE_MODE_RATIO;
	deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.widthRatio.numerator    = 1;
	deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.widthRatio.denominator  = 1;
	deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.heightRatio.numerator   = 1;
	deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0].ratio.heightRatio.denominator = 1;
	for (chId=0; chId < 16; chId++)
		deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][chId] = deiPrm.outScaleFactor[DEI_LINK_OUT_QUE_VIP_SC][0];


	deiPrm.comprEnable                                     = FALSE;
	deiPrm.setVipScYuv422Format                            = FALSE;
	deiPrm.inputFrameRate[DEI_LINK_OUT_QUE_VIP_SC]         = 30;
	deiPrm.outputFrameRate[DEI_LINK_OUT_QUE_VIP_SC]        = 30;
	deiPrm.enableDeiForceBypass                            = TRUE;
	deiPrm.numBufsPerCh[DEI_LINK_OUT_QUE_VIP_SC]           = 6;
	deiPrm.enableOut[DEI_LINK_OUT_QUE_VIP_SC]              = TRUE;
	deiPrm.outQueParams[DEI_LINK_OUT_QUE_VIP_SC].nextLink  = ipcId[IPC_OUT_VPSS_LINK_IDX];



	//dei <- ipcOutVpss -> ipcInVideo

	ipcOutVpssPrm.inQueParams.prevLinkQueId  = DEI_LINK_OUT_QUE_VIP_SC;
	ipcOutVpssPrm.inQueParams.prevLinkId     = gVcapModuleContext.deiId[0];
	ipcOutVpssPrm.numOutQue                  = 1;
	ipcOutVpssPrm.outQueParams[0].nextLink   = ipcId[IPC_IN_VIDEO_LINK_IDX];
	ipcOutVpssPrm.notifyPrevLink             = TRUE;
	ipcOutVpssPrm.notifyNextLink             = TRUE;
	ipcOutVpssPrm.noNotifyMode               = FALSE;



	//ipcOutVpss <- ipcInVideo -> enc

	ipcInVideoPrm.inQueParams.prevLinkId    = ipcId[IPC_OUT_VPSS_LINK_IDX];
	ipcInVideoPrm.inQueParams.prevLinkQueId = 0;
	ipcInVideoPrm.numOutQue                 = 1;

	ipcInVideoPrm.outQueParams[0].nextLink  = gVencModuleContext.encId;

	ipcInVideoPrm.notifyNextLink            = TRUE;
	ipcInVideoPrm.notifyPrevLink            = TRUE;
	ipcInVideoPrm.noNotifyMode              = FALSE;





	//ipcInVideo <- enc -> ipcBitsOutVideo

	EncLink_CreateParams_Init(&encPrm);

	encPrm.numBufPerCh[0] = 6;

	setMJPEGEncChParams(&encPrm, 0, 16);

	

	encPrm.inQueParams.prevLinkId    = ipcId[IPC_IN_VIDEO_LINK_IDX];
	encPrm.inQueParams.prevLinkQueId = 0;
	encPrm.outQueParams.nextLink     = gVencModuleContext.ipcBitsOutRTOSId;


	//enc <- ipcBitsOutVideo -> ipcBitsInHost


	ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkId      = gVencModuleContext.encId;
	ipcBitsOutVideoPrm.baseCreateParams.inQueParams.prevLinkQueId   = 0;
	ipcBitsOutVideoPrm.baseCreateParams.numOutQue                   = 1;
	ipcBitsOutVideoPrm.baseCreateParams.outQueParams[0].nextLink    = gVencModuleContext.ipcBitsInHLOSId;

	ipcBitsOutVideoPrm.baseCreateParams.notifyNextLink = TRUE;
	ipcBitsOutVideoPrm.baseCreateParams.notifyPrevLink = TRUE;
	ipcBitsOutVideoPrm.baseCreateParams.noNotifyMode = FALSE;
	ipcBitsOutVideoPrm.baseCreateParams.notifyProcessLink = FALSE;

	//ipcBitsOutVideo <- ipcBitsInHost -> SYSTEM_LINK_ID_INVALID

	ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkId     = gVencModuleContext.ipcBitsOutRTOSId;
	ipcBitsInHostPrm.baseCreateParams.inQueParams.prevLinkQueId  = 0;
	ipcBitsInHostPrm.baseCreateParams.numOutQue                  = 1;
	ipcBitsInHostPrm.baseCreateParams.outQueParams[0].nextLink   = SYSTEM_LINK_ID_INVALID;

	ipcBitsInHostPrm.baseCreateParams.noNotifyMode = FALSE;
	ipcBitsInHostPrm.baseCreateParams.notifyNextLink = TRUE;
	ipcBitsInHostPrm.baseCreateParams.notifyPrevLink = TRUE;



	ipcBitsInHostPrm.cbCtx = NULL; 
	ipcBitsInHostPrm.cbFxn = DataAvailable_cb; 




	capturePrm.isPalMode = Vcap_isPalMode();



	/*
	 * Create ALL Modules
	 *
	 */

	System_linkCreate (gVcapModuleContext.captureId, &capturePrm, sizeof(capturePrm));

	System_linkCreate (gVcapModuleContext.nsfId[NSF_AFTER_CAPTURE], &nsfPrm[NSF_AFTER_CAPTURE], sizeof(nsfPrm[NSF_AFTER_CAPTURE]));

	System_linkCreate(gVcapModuleContext.deiId[0], &deiPrm, sizeof(deiPrm));

	System_linkCreate(ipcId[IPC_OUT_VPSS_LINK_IDX], &ipcOutVpssPrm , sizeof(ipcOutVpssPrm) );

	System_linkCreate(ipcId[IPC_IN_VIDEO_LINK_IDX], &ipcInVideoPrm , sizeof(ipcInVideoPrm) );

	System_linkCreate(gVencModuleContext.encId, &encPrm, sizeof(encPrm));

	System_linkCreate(gVencModuleContext.ipcBitsOutRTOSId, &ipcBitsOutVideoPrm, sizeof(ipcBitsOutVideoPrm));

	System_linkCreate(gVencModuleContext.ipcBitsInHLOSId, &ipcBitsInHostPrm, sizeof(ipcBitsInHostPrm));



	System_linkGetInfo(gVencModuleContext.ipcBitsInHLOSId, &bitsProducerLinkInfo);

	printf ("\n\n========bitsProducerLinkInfo============\n");
		printf ("numQ %d, numCh %d\n",
						bitsProducerLinkInfo.numQue,
						bitsProducerLinkInfo.queInfo[0].numCh);
		{
			int i;
			for (i=0; i<bitsProducerLinkInfo.queInfo[0].numCh; i++)
			{
				printf ("Ch [%d] Width %d, Height %d\n",
					i,
					bitsProducerLinkInfo.queInfo[0].chInfo[i].width,
					bitsProducerLinkInfo.queInfo[0].chInfo[i].height
					);
			}
		}
	printf ("\n====================\n\n");
}

  • Hello,

    What is the software release that you are using here?

    Best Regards,

    Margarita

  • What is the external video decoder you are using ? Have you configured it to 1080P30 capture ? You should set

    pCaptureInstPrm->videoDecoderId  = 0 as you will not be using TVP5158.Share the console logs from start of application and also logs of Vsys_printDetailedStatistics

  • Hi Badri,

    I use DVR with rdk3.0 and I use tvp5158!

    I've configured cap link and video decoder as :

        capturePrm.outQueParams[0].nextLink   = gVcapModuleContext.nsfId[NSF_AFTER_CAPTURE];
        capturePrm.numVipInst                 = NumberOfChannelTVP;
        capturePrm.tilerEnable                = FALSE;
        capturePrm.numBufsPerCh               = 6;

        for(vipInstId=0; vipInstId<capturePrm.numVipInst; vipInstId++)
        {
            pCaptureInstPrm                  = &capturePrm.vipInst[vipInstId];
            pCaptureInstPrm->vipInstId       = (SYSTEM_CAPTURE_INST_VIP0_PORTA+vipInstId)%SYSTEM_CAPTURE_INST_MAX;
            pCaptureInstPrm->videoDecoderId  = SYSTEM_DEVICE_VID_DEC_TVP5158_DRV;
            pCaptureInstPrm->inDataFormat    = SYSTEM_DF_YUV422P;
            pCaptureInstPrm->standard        = SYSTEM_STD_1080P_30;
            pCaptureInstPrm->numOutput       = 1;

            pCaptureOutPrm                   = &pCaptureInstPrm->outParams[0];
            pCaptureOutPrm->dataFormat       = SYSTEM_DF_YUV422I_YUYV;
            pCaptureOutPrm->scEnable         = FALSE;
            pCaptureOutPrm->scOutWidth       = 0;
            pCaptureOutPrm->scOutHeight      = 0;
            pCaptureOutPrm->outQueId         = 0;
         }

        for(i = 0; i < 1; i++)
        {
            vidDecVideoModeArgs[i].videoIfMode        = DEVICE_CAPT_VIDEO_IF_MODE_24BIT;
            vidDecVideoModeArgs[i].videoDataFormat    = SYSTEM_DF_YUV422P;
            vidDecVideoModeArgs[i].standard           = SYSTEM_STD_1080P_30;
            vidDecVideoModeArgs[i].videoCaptureMode   = DEVICE_CAPT_VIDEO_CAPTURE_MODE_MULTI_CH_PIXEL_MUX_EMBEDDED_SYNC;
            vidDecVideoModeArgs[i].videoSystem        = DEVICE_VIDEO_DECODER_VIDEO_SYSTEM_AUTO_DETECT;
            vidDecVideoModeArgs[i].videoCropEnable    = FALSE;
            vidDecVideoModeArgs[i].videoAutoDetectTimeout = -1;
        }

     
            Vcap_configVideoDecoder(vidDecVideoModeArgs, 1);

    My log is :

     62: SYSTEM: System Common Init Done !!!

     [MY USECASE] : Create_Chain_VcapVenc_h264_2
     VCAP: TVP5158-0 (0x5c): Detected video (720x288@50Hz, 1) !!!

     Audio Channels are not supported
     TVP5158: 0x5c: Patch is already running.
     TVP5158: 0x5c: 5158:0002:0302
     [m3vpss ]  985752: CAPTURE: Create in progress !!!
     [m3vpss ]  985762: CAPTURE: VIP0 PortA capture mode is [ 8-bit, Pixel-mux Embedded Sync] !!!
     [m3vpss ]  UTILS: DMA: Allocated CH (TCC) = 58 (58)

    I wonder why tvp detects video as 720x288...

    It depend on the camera resolution? Am I right?

    And why capture mode is 8-bit? I suppose that he should be 24-bit.

    Thank you!

  • TVP5158 cant capture 1080P.It can only capture D1. ALso the camera you are connecting is not 1080P it is D1 .

    You will need a Expansion IO daughter card with TVP7002 to capture 1080P if you are using the EVM.

  • Thank you for your prompt reply!

    Then I've another question about tvp7002!

    RDK are bundled with sources for tvp5158(src_linux/devices/tvp5158/src).

    Where I can get patch or sources for tvp7002?

    Thank you!

  • TVp7002 is not part of DVRRDK. You can refer example code for tvp7002 in HDVPSS and write a device controller based on that ti_tools/hdvpss/packages/ti/psp/devices/tvp7002 or you can refer \linux-dvr-rdk\drivers\media\video\tvp7002.c  which is the kernel driver for tvp7002 control. Our you can simply use i2c cmds to configure the tvp7002 .Refer this post which explains TVP7002 usage with DVRRDK RE: Capture Issue: "Overflow detected on VIP0"