Hi,
Currently I'm working on TI8148 with adv7180 encoder/decoder attached to VIN[0] port A.
I am using saLoopBack application to capture the video from the adv7180.
When I executed saLoopBack, I encountered the following error at startCapture. It is failed in Fvid2 device create.
LOG:
ti81xxvin ti81xxvin: vidioc_streamon
ti81xxvin ti81xxvin: ti81xxvin_check_format
Inside ti81xxvin_check_format
hpitch : 870
min_hpitch 0 min_numlines 240
sizeimage 12fc00
numlines 240
ti81xxvin_vps_create capt_num 2
VPSS_CAPTURE: create capture2
VPSS_SHRBUF: FOUND 0xa0215000, end 0xa0400000, map vir 0xd0415000 size 4096
VPSS_FVID2: Fvid2 handle 0x00000000 with notifyno 14 within 1 ms
VPSS_FVID2: create handle is NULL
VPSS_SHRBUF: free mem paddr 0xa0215000 vaddr 0xd0415000 size 4096
ti81xxvin ti81xxvin: ti81xxvin_vps_create failed
ti81xxvin ti81xxvin: Vps create failed
ti81xxvin ti81xxvin: ti81xxvin_release
I had set capture device as /dev/video0.
I had set fb device as /dev/fb0.
I have to capture 720x576 data in YCbCr format.
Here is my configurations:
Capture Control Parameters :
cctrl->ccparams->videoCaptureMode = VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC;
cctrl->ccparams->videoIfMode = VPS_CAPT_VIDEO_IF_MODE_8BIT;
cctrl->ccparams->inDataFormat = FVID2_DF_YUV422I_UYVY;
cctrl->ccparams->periodicCallbackEnable = 0;
cctrl->ccparams->numCh = 1;
cctrl->ccparams->numStream = 1;
cctrl->ccparams->vipParserInstConfig = NULL;
cctrl->ccparams->cscConfig = NULL;
cctrl->ccparams->vipParserPortConfig = NULL;
cctrl->ccparams->inScanFormat = FVID2_SF_INTERLACED;
cctrl->decoder_width = 1920;
cctrl->decoder_width = 1080;
cctrl->scformat = FVID2_SF_PROGRESSIVE;
cctrl->fmt.channelnum = 0;
cctrl->fmt.width = 1920;
cctrl->fmt.height = 1080;
cctrl->fmt.pitch[0] = 1920 * 2;
cctrl->fmt.pitch[1] = 1920 * 2;
cctrl->fmt.pitch[2] = 1920 * 2;
cctrl->fmt.fieldmerged[0] = 0;
cctrl->fmt.fieldmerged[1] = 0;
cctrl->fmt.fieldmerged[2] = 0;
cctrl->fmt.dataformat = FVID2_DF_YUV422I_UYVY;
cctrl->fmt.scanformat = FVID2_SF_INTERLACED;
cctrl->fmt.bpp = 24;
ti81xxvin_vps_config_format:
cparams->videoCaptureMode = VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC;
cparams->videoIfMode = VPS_CAPT_VIDEO_IF_MODE_8BIT;
cparams->inDataFormat = FVID2_DF_YUV422I_UYVY;
cparams->periodicCallbackEnable = 0;
cparams->numCh = 1;
cparams->numStream = 1;
fvid2_fmt.dataformat = df;
fvid2_fmt.scanformat = cparams->inScanFormat; fvid2_fmt.bpp = 24;
fvid2_fmt.reserved = NULL;
cctrl->decoder_width = inst->video.buf_params.width;
cctrl->decoder_height = inst->video.buf_params.height;
hdvpss_capture_sdev_info:
static struct ti81xxvin_subdev_info hdvpss_capture_sdev_info[] = {
{
.name = TVP7002_INST0,
.board_info = {
/* TODO Find the correct address
of the TVP7002 connected */
I2C_BOARD_INFO("adv7180", 0x20),
.platform_data = &adv7180_pdata,
},
.vip_port_cfg = {
.ctrlChanSel = VPS_VIP_CTRL_CHAN_SEL_7_0,
.ancChSel8b = VPS_VIP_ANC_CH_SEL_DONT_CARE,
.pixClkEdgePol = VPS_VIP_PIX_CLK_EDGE_POL_RISING,
.invertFidPol = 0,
.embConfig = {
.errCorrEnable = 1,
.srcNumPos = VPS_VIP_SRC_NUM_POS_DONT_CARE,
.isMaxChan3Bits = 0,
},
.disConfig = {
.fidSkewPostCnt = 0,
.fidSkewPreCnt = 0,
.lineCaptureStyle =
VPS_VIP_LINE_CAPTURE_STYLE_DONT_CARE,
.fidDetectMode =
VPS_VIP_FID_DETECT_MODE_DONT_CARE,
.actvidPol = VPS_VIP_POLARITY_DONT_CARE,
.vsyncPol = VPS_VIP_POLARITY_DONT_CARE,
.hsyncPol = VPS_VIP_POLARITY_DONT_CARE,
}
},
.video_capture_mode = VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC,
.video_if_mode = VPS_CAPT_VIDEO_IF_MODE_8BIT,
.input_data_format = FVID2_DF_YUV422I_UYVY,
}
Are the above configurations correct ?
Please Clarify me.
Thanks,
Rajeshkumar