Hi TI Forum,
We are using custom board having TDA2xx SoC. We are using Vision SDK 3.0.7
We have a requirement wherein we would need to switch between splash screen and Reverse camera display during boot till completion of Linux kernel load.
Iam trying to display 1 channel video and still image based on user selection whether he wants splash image or Reverse camera video.
If user presses Switch-1 then still image has to be displayed, which is displaying properly.
If user presses Switch-2 then Reverse camera Video has to be displayed. But when user selects this switch Video is getting distorted. Then after analysing found the data format of image and video differs hence this problem.
The splash image is of SYSTEM_DF_YUV420SP_UV format and video is SYSTEM_DF_YUV422I_YUYV
To resolve this used the below function which converts the captured video to SYSTEM_DF_YUV420SP_UV. As this is Reverse Camera feature the firmware is loaded(Early Load) during uboot so that within 2-3 seconds Reverse camera is displayed. Till uboot display of both Splash image and video is proper. But as soon as Linux kernel load starts, the display is getting freezed. If the below conversion is not done there is no freeze but display is distorted. Could you please clarify if the below conversion module is a limitation? If not, how could we resolve. If we see the logs we are seeing XDC Error.
Void ChainsCommon_SetVPEPrms(VpeLink_CreateParams *pPrm,
UInt32 outId, chId;
memset(pPrm, 0, sizeof(*pPrm));
pPrm->enableOut = TRUE;
pPrm->enableOut = FALSE;
for(outId=0; outId<VPE_LINK_OUT_QUE_ID_MAX; outId++)
for (chId = 0; chId < 1; chId++)
chPrms = &pPrm->chParams[chId];
chPrms->outParams[outId].numBufsPerCh = 10;//4;//4;//VPE_LINK_NUM_BUFS_PER_CH_DEFAULT;
chPrms->outParams[outId].inputFrameRate = 50;
chPrms->outParams[outId].outputFrameRate = 50;
chPrms->outParams[outId].width = captureInWidth;
chPrms->outParams[outId].height = captureInHeight;
chPrms->outParams[outId].dataFormat = SYSTEM_DF_YUV420SP_UV;
chPrms->deiCfg.bypass = FALSE;
chPrms->deiCfg.inpMode = VPE_DEI_EDIMODE_LUMA_CHROMA;
chPrms->deiCfg.tempInpEnable = TRUE;
chPrms->deiCfg.tempInpChromaEnable = TRUE;
chPrms->deiCfg.spatMaxBypass = TRUE;
chPrms->deiCfg.tempMaxBypass = TRUE;
chPrms->scCfg.bypass = TRUE;//FALSE;//TRUE;
chPrms->scCfg.nonLinear = FALSE;
chPrms->scCfg.stripSize = 0;
chPrms->scCropCfg.cropStartX = 0;
chPrms->scCropCfg.cropStartY = 0;
chPrms->scCropCfg.cropWidth = captureInWidth;//0;
chPrms->scCropCfg.cropHeight = captureInHeight;//0;