How to handle bt656 video stream(not a camera data) to CSI0 of IPU on imx6 board?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to handle bt656 video stream(not a camera data) to CSI0 of IPU on imx6 board?

Jump to solution
4,633 Views
pingwu
Contributor I

Hi all,

I have a custom imx6 solo board which have one bt656 video source (not a camera, only 8bit data plus pixclk pin) conntect to IPU. 8bit data pin connect to imx6 CSI0_DAT12~CSI0_DAT19 and pixclk pin connect CSI0_PIXCLK. I want to capture this video source and display onto lvds panel. How to capture this video stream?

Do I need write a dummy camera driver to handle this bt656 video data? or have another simple method to handle it ?  Any patch, article, guide or document is appreciatively, Thanks

HiQiang_FSL​, 

I searched your document "Patch to Support BT656 and BT1120 Output For i.MX6 BSP" (Patch to Support BT656 and BT1120 Output For i.MX6 BSP​ ), but this patch is for BT656 video output,  Any suggestion about bt656 video stream input for i.MX6? Thanks

Labels (3)
Tags (4)
0 Kudos
1 Solution
2,987 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

The BT656 input was already supported by default BSP, you can reference to "drivers\media\video\mxc\capture\adv7180.c".

Since you only connected 8 data lines and the pixel clock, only one modification was needed:

in function ioctl_g_ifparm():

Change from

     p->u.bt656.bt_sync_correct = 1;

To

     p->u.bt656.bt_sync_correct = 0;

View solution in original post

0 Kudos
15 Replies
2,988 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

The BT656 input was already supported by default BSP, you can reference to "drivers\media\video\mxc\capture\adv7180.c".

Since you only connected 8 data lines and the pixel clock, only one modification was needed:

in function ioctl_g_ifparm():

Change from

     p->u.bt656.bt_sync_correct = 1;

To

     p->u.bt656.bt_sync_correct = 0;

0 Kudos
2,987 Views
zhangpai
Contributor I

HI, Qiang Li

when i set as you said.  but it doesn't work. Did i need do anything else?  (I have a custom imx6 solo board which have one bt656 video source (not a camera, only 8bit data plus pixclk pin) conntect to IPU)。

Or ,did you have any solution to deal with this case.

0 Kudos
2,987 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

Your input is same as adv7180, BT656 with 1 pixel line and 8 data line.

You  can reference to this document: https://community.nxp.com/docs/DOC-332679

0 Kudos
2,987 Views
zhangpai
Contributor I

frame.png

你好,我的摄像头显示如上。不明白,这个边界为什么会这样,现在不知道是要改哪里代码,请问这个是什么原因导致的?

0 Kudos
2,987 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

这个应该和你输入芯片的设置有关,原始的输入图像就有这个边界。

0 Kudos
2,987 Views
zhangpai
Contributor I

你好,摄像头输入画面,有点晃动(像是小幅度左右摆动),这个需要设置ipu的什么参数吗?

0 Kudos
2,987 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

这和应该和ISI无关的。

0 Kudos
2,987 Views
zhangpai
Contributor I

你好,我遇到了一个问题,编译android ,需要gpt分区,可是emmc 最大读取8个分区,可以告诉我这个是mmc驱动哪里限制的吗?我用的是L4.1.5的内核。谢谢 指教!!非常感谢!

0 Kudos
2,987 Views
zhangpai
Contributor I

你好。关于这个我有个疑问,可否帮我解答

mxc_v4l2_tvin.c

gettimeofday(&tv_current, 0);
total_time = (tv_current.tv_sec - tv_start.tv_sec) * 1000000L;
total_time += tv_current.tv_usec - tv_start.tv_usec;
printf("total time for %u frames = %u us = %lld fps\n", i, total_time, (i * 1000000ULL) / total_time);

这个打印lOG是"total time for 600 frames = 20032855 us = 29 fps".  我想知道怎么更改展示的fps。我这边bt565数据来的是60帧的。可这里只有29fps.不知道这个要怎么改?

0 Kudos
2,987 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

实际的fps由外部camera输入的fps决定的,BT656是60Hz的场,所以按照帧来接收就是30fps。

0 Kudos
2,987 Views
zhangpai
Contributor I

BT656 progressive 的数据过来的也是30fps吗?这里打印出的29 fps 只跟60hz有关系?

0 Kudos
2,987 Views
zhangpai
Contributor I

你好,这个文档讲的比较笼统,我按照这个设置了,还是提示mxc_v4l_dqueue timeout enc_counter 0。请问L4.1.5.2.10这个BSP上面能实现吗?还是要加别的补丁?

或者有什么好的办法,可以检测csI0中是否有数据?

0 Kudos
2,987 Views
pingwu
Contributor I

Hi Qiang Li,

Thanks, 

Did I need write a dummy camera driver (my video source is not a indeed camera) ?

0 Kudos
2,987 Views
qiang_li-mpu_se
NXP Employee
NXP Employee

Yes

0 Kudos
2,987 Views
zhangpai
Contributor I

how can I do for V412?When I test mxc_v4l2_tvin.out. Which says:mxc_v4l_dqueue timeout enc_counter 0 ,VIDIOC_DQBUF failed 。

0 Kudos