ov5642 1080p 30 fps and sabre light

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

ov5642 1080p 30 fps and sabre light

Jump to solution
4,628 Views
ottavio
Contributor I

Hello, I bought a sabre light from boundary devices (BD-SL-i.MX6) and a parallel camera ov5642.

The camera works well at 30 fps for resolutions up to 720p, but when I try to run at 1080p I am able to get onyly 15 fps.

The following pipeline works:

gst-launch mfw_v4lsrc device=/dev/video0 capture-mode=5 fps-n=15 ! vpuenc codec=12 ! multipartmux ! tcpserversink host=192.168.103.59 port=5001

but this other one does not work

root@nitrogen6x:~# gst-launch mfw_v4lsrc device=/dev/video0 capture-mode=5 fps-n=30 ! vpuenc codec=12 ! multipartmux ! tcpserversink host=192.168.103.59 port=5001
MFW_GST_V4LSRC_PLUGIN 3.0.11 build on Aug 25 2014 14:58:35.
Setting pipeline to PAUSED ...
[INFO]    Product Info: i.MX6Q/D/S
vpuenc versions :)
    plugin: 3.0.11
    wrapper: 1.0.46(VPUWRAPPER_ARM_LINUX Build on Aug 25 2014 14:52:13)
    vpulib: 5.4.23
    firmware: 3.1.1.46056
ERROR: Pipeline doesn't want to pause.
Setting pipeline to NULL ...
Freeing pipeline ...
root@nitrogen6x:~#

From the kernel I get this error

mxc_v4l2_s_param: vidioc_int_s_parm returned an error -22

Is someone able to acquire video from the parallel camera at 1080p 30 fps?

Labels (2)
0 Kudos
1 Solution
1,442 Views
EricNelson
Senior Contributor II

Hi Ottavio,

I'm not sure what decision drove the 15fps limit. It could be that cabling or specifics of the camera driver used by Freescale drove that decision.

I believe that 30fps is attainable, but adjusting the reg/value pairs is time consuming at best, and requires documentation from Omnivision that is only available under NDA. The documentation is also quite sparse regarding all of the variables used to generate various resolutions and clocks.

I did see some code in the main-line kernel a long time ago that attempted to generalize the process and achieve truly variable resolutions and frame rates, but I don't have a reference. Integrating with the Freescale driver is likely to be quite a big effort.

View solution in original post

0 Kudos
8 Replies
1,442 Views
EricNelson
Senior Contributor II

Hi Ottavio,

Thanks for the order.

The OV5642 camera driver only supports 15fps. If you look here in the camera driver, you'll see the 15fps register settings:

         linux-imx6/ov5642.c at boundary-imx_3.10.17_1.0.0_ga · boundarydevices/linux-imx6 · GitHub

And the 30fps entry in this table is blank:

         https://github.com/boundarydevices/linux-imx6/blob/boundary-imx_3.10.17_1.0.0_ga/drivers/media/platf...

The OV5640 (MIPI) camera does support 30fps:

        linux-imx6/ov5640_mipi.c at boundary-imx_3.10.17_1.0.0_ga · boundarydevices/linux-imx6 · GitHub

0 Kudos
1,442 Views
ottavio
Contributor I

Thank you Eric for your answer.

Do you think it is possible to patch the driver to add support for 1080p 30 fps? Or is there any physical reason behind the 15fps limit?

Further more, where can I find some info to understand the inhalt of the structs reg_value used in the driver?

0 Kudos
1,443 Views
EricNelson
Senior Contributor II

Hi Ottavio,

I'm not sure what decision drove the 15fps limit. It could be that cabling or specifics of the camera driver used by Freescale drove that decision.

I believe that 30fps is attainable, but adjusting the reg/value pairs is time consuming at best, and requires documentation from Omnivision that is only available under NDA. The documentation is also quite sparse regarding all of the variables used to generate various resolutions and clocks.

I did see some code in the main-line kernel a long time ago that attempted to generalize the process and achieve truly variable resolutions and frame rates, but I don't have a reference. Integrating with the Freescale driver is likely to be quite a big effort.

0 Kudos
1,442 Views
sreekanthm
Contributor II

Hi Eric,

I am trying to set the exposure values based on the Android API on Ov5640 MIPI on IMX6 board and I did changes based on the response from Alejandro (as below)

https://community.freescale.com/message/503821#503821.

case V4L2_CID_GAIN:

  OV5640_set_gain16( (__s32)vc->value);

break;

but seems there is no impact on the camera exposure when I change values using Android API. I posted the issue in the Freescale communities and received below response, could you please assist me in implementing the Camera Exposure?

https://community.freescale.com/thread/366940

Thanks,

Sreekanth

0 Kudos
1,442 Views
ottavio
Contributor I

ok, one last question. do you know any other parallel camera that can provide 1080p 30 fps compatible with the sabre light? I'd be happy to buy it and not to go crazy with the driver of the ov5642.

Thank you

Ottavio

0 Kudos
1,442 Views
EricNelson
Senior Contributor II

Hi Ottavio,

Unfortunately, I'm not aware of another parallel camera module that does 1080p30.

What's driving the need for a parallel interface?

0 Kudos
1,442 Views
SergioSolis
NXP Employee
NXP Employee

I also looked for one by asking here and we do not know of any other, sorry for that.

0 Kudos
1,442 Views
EricNelson
Senior Contributor II

Can you use MIPI? Our MIPI camera module does support 1080P30.

0 Kudos