Hi,
Our Hardware is EVM DM8168 + VS CARD. We use DVRRDK_V03.00.00.00 for our usecase. Our usecase is attached. Our use case works fine as is. Below are some things we are trying to achieve. Can you please help us with the same?
- The demo currently writes only one channel encoded output to the file system. Is it possible to write the encoded output of all the four channels on to the filesystem simultaneously?
- We want to customize the demo in such a way that once the encoded file size reaches a certain limit, just overwrite it. How do we know the limit?
- Can we add time stamp to the encoded file?
- Is there a way to send the encoded data via ethernet for viewing?
Appreciate your help on this.
Thanks,
Shilpa.
[Vie
/******************************************************************************* * * * Copyright (c) 2011 Texas Instruments Incorporated - http://www.ti.com/ * * ALL RIGHTS RESERVED * * * ******************************************************************************/ /** \file demo_vcap_venc_custom.c \brief */ #include <demo_vcap_venc_vdis.h> #include <demo_scd_bits_wr.h> //VcapVencVdecVdis_res ipcbits_resArray[MCFW_IPCBITS_RESOLUTION_TYPES]; static Void VcapVencVdecVdisSplUsecase_setVencDynamicParams(Demo_Info *demoInfo, VENC_PARAMS_S *vencParams) { UInt32 chId; VENC_CHN_DYNAMIC_PARAM_S params = { 0 }; VSYS_VIDEO_STANDARD_E vidStandard; vidStandard = Demo_captureGetSignalStandard(); /* Setting FPS for the Encoder Channels */ for(chId=0; chId<vencParams->numPrimaryChn; chId++) { if(vidStandard == VSYS_STD_PAL) { memset(¶ms, 0, sizeof(params)); Venc_setInputFrameRate(chId, 25); params.frameRate = 25; Venc_setDynamicParam(chId, 0, ¶ms, VENC_FRAMERATE); } else if(vidStandard == VSYS_STD_NTSC) { memset(¶ms, 0, sizeof(params)); Venc_setInputFrameRate(chId, 30); params.frameRate = 30; Venc_setDynamicParam(chId, 0, ¶ms, VENC_FRAMERATE); } else { printf (" DEMO: No video detected at CH [%d] !!!\n", chId); } } } Void VcapVenccustom_start() { VSYS_PARAMS_S vsysParams; VCAP_PARAMS_S vcapParams; VENC_PARAMS_S vencParams; //Bool enableFWrite = FALSE; Vsys_params_init(&vsysParams); Vcap_params_init(&vcapParams); Venc_params_init(&vencParams); //ipcbits_resArray[0].width = MCFW_IPCBITS_D1_WIDTH; //ipcbits_resArray[0].height = MCFW_IPCBITS_D1_HEIGHT; gDemo_info.maxVcapChannels = 4; gDemo_info.maxVdisChannels = 0; gDemo_info.maxVencChannels = 4; gDemo_info.maxVdecChannels = 0; gDemo_info.VsysNumChs = 4; vcapParams.numChn = gDemo_info.maxVcapChannels; vencParams.numPrimaryChn = gDemo_info.maxVencChannels; vencParams.numSecondaryChn = 0; vsysParams.numChs = gDemo_info.VsysNumChs; vsysParams.systemUseCase = VSYS_USECASE_MULTICHN_CUSTOM_VCAP_VENC; vsysParams.enableSecondaryOut = FALSE; vsysParams.enableCapture = TRUE; vsysParams.enableNsf = TRUE; vsysParams.enableEncode = TRUE; vsysParams.enableDecode = FALSE; vsysParams.enableNullSrc = FALSE; vsysParams.numDeis = 0; printf ("--------------- CHANNEL DETAILS-------------\n"); printf ("Capture Channels => %d\n", vcapParams.numChn); printf ("Enc Channels => Primary %d, Secondary %d\n", vencParams.numPrimaryChn, vencParams.numSecondaryChn); printf ("-------------------------------------------\n"); Vsys_init(&vsysParams); Vcap_init(&vcapParams); Venc_init(&vencParams); //enableFWrite = Demo_getFileWriteEnable(); //VcapVencVdecVdis_ipcBitsSetFileExtension("h264"); //VcapVencVdecVdis_ipcBitsInit(ipcbits_resArray, enableFWrite, FALSE); /* Init the application specific module which will handle bitstream exchange */ VcapVenc_bitsWriteCreate(); /* Init the application specific module which will handle video frame exchange */ VcapVenc_ipcFramesCreate(VSYS_USECASE_MULTICHN_CUSTOM_VCAP_VENC); VcapVenc_ipcFramesInSetCbInfo(); /* Create Link instances and connects compoent blocks */ Vsys_create(); /* Start components in reverse order */ Venc_start(); Vcap_start(); VcapVencVdecVdisSplUsecase_setVencDynamicParams(&gDemo_info,&vencParams); } Void VcapVenccustom_stop() { /* Stop components */ Vcap_stop(); Venc_stop(); Vsys_delete(); /* De-initialize components */ Vcap_exit(); Venc_exit(); Vsys_exit(); }