public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/5] Fix OV5640 exposure & gain
@ 2018-09-11 13:48 Hugues Fruchet
  2018-09-11 13:48 ` [PATCH v3 1/5] media: ov5640: fix exposure regression Hugues Fruchet
                   ` (8 more replies)
  0 siblings, 9 replies; 14+ messages in thread
From: Hugues Fruchet @ 2018-09-11 13:48 UTC (permalink / raw)
  To: Steve Longerbeam, Sakari Ailus, Jacopo Mondi, Hans Verkuil,
	Mauro Carvalho Chehab
  Cc: linux-media, Hugues Fruchet, Benjamin Gaignard

This patch serie fixes some problems around exposure & gain in OV5640 driver.

The 4th patch about autocontrols requires also a fix in v4l2-ctrls.c:
https://www.mail-archive.com/linux-media@vger.kernel.org/msg133164.html

Here is the test procedure used for exposure & gain controls check:
1) Preview in background
$> gst-launch-1.0 v4l2src ! "video/x-raw, width=640, Height=480" ! queue ! waylandsink -e &
2) Check gain & exposure values
$> v4l2-ctl --all | grep -e exposure -e gain | grep "(int)"
                       exposure (int)    : min=0 max=65535 step=1 default=0 value=330 flags=inactive, volatile
                           gain (int)    : min=0 max=1023 step=1 default=0 value=19 flags=inactive, volatile
3) Put finger in front of camera and check that gain/exposure values are changing:
$> v4l2-ctl --all | grep -e exposure -e gain | grep "(int)"
                       exposure (int)    : min=0 max=65535 step=1 default=0 value=660 flags=inactive, volatile
                           gain (int)    : min=0 max=1023 step=1 default=0 value=37 flags=inactive, volatile
4) switch to manual mode, image exposition must not change
$> v4l2-ctl --set-ctrl=gain_automatic=0
$> v4l2-ctl --set-ctrl=auto_exposure=1
Note the "1" for manual exposure.

5) Check current gain/exposure values:
$> v4l2-ctl --all | grep -e exposure -e gain | grep "(int)"
                       exposure (int)    : min=0 max=65535 step=1 default=0 value=330
                           gain (int)    : min=0 max=1023 step=1 default=0 value=20

6) Put finger behind camera and check that gain/exposure values are NOT changing:
$> v4l2-ctl --all | grep -e exposure -e gain | grep "(int)"
                       exposure (int)    : min=0 max=65535 step=1 default=0 value=330
                           gain (int)    : min=0 max=1023 step=1 default=0 value=20
7) Update exposure, check that it is well changed on display and that same value is returned:
$> v4l2-ctl --set-ctrl=exposure=100
$> v4l2-ctl --get-ctrl=exposure
exposure: 100

9) Update gain, check that it is well changed on display and that same value is returned:
$> v4l2-ctl --set-ctrl=gain=10
$> v4l2-ctl --get-ctrl=gain
gain: 10

10) Switch back to auto gain/exposure, verify that image is correct and values returned are correct:
$> v4l2-ctl --set-ctrl=gain_automatic=1
$> v4l2-ctl --set-ctrl=auto_exposure=0
$> v4l2-ctl --all | grep -e exposure -e gain | grep "(int)"
                       exposure (int)    : min=0 max=65535 step=1 default=0 value=330 flags=inactive, volatile
                           gain (int)    : min=0 max=1023 step=1 default=0 value=22 flags=inactive, volatile
Note the "0" for auto exposure.

===========
= history =
===========
version 3:
  - Change patch 5/5 by removing set_mode() orig_mode parameter as per jacopo' suggestion:
    https://www.spinics.net/lists/linux-media/msg139457.html

version 2:
  - Fix patch 3/5 commit comment and rename binning function as per jacopo' suggestion:
    https://www.mail-archive.com/linux-media@vger.kernel.org/msg133272.html

Hugues Fruchet (5):
  media: ov5640: fix exposure regression
  media: ov5640: fix auto gain & exposure when changing mode
  media: ov5640: fix wrong binning value in exposure calculation
  media: ov5640: fix auto controls values when switching to manual mode
  media: ov5640: fix restore of last mode set

 drivers/media/i2c/ov5640.c | 128 ++++++++++++++++++++++++++-------------------
 1 file changed, 73 insertions(+), 55 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2018-09-24 14:12 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-11 13:48 [PATCH v3 0/5] Fix OV5640 exposure & gain Hugues Fruchet
2018-09-11 13:48 ` [PATCH v3 1/5] media: ov5640: fix exposure regression Hugues Fruchet
2018-09-11 13:48 ` [PATCH v3 2/5] media: ov5640: fix auto gain & exposure when changing mode Hugues Fruchet
2018-09-11 13:48 ` [PATCH v3 3/5] media: ov5640: fix wrong binning value in exposure calculation Hugues Fruchet
2018-09-11 13:48 ` [PATCH v3 4/5] media: ov5640: fix auto controls values when switching to manual mode Hugues Fruchet
2018-09-11 13:48 ` [PATCH v3 5/5] media: ov5640: fix restore of last mode set Hugues Fruchet
2018-09-14 16:00 ` [PATCH v3 0/5] Fix OV5640 exposure & gain jacopo mondi
2018-09-14 16:07 ` jacopo mondi
2018-09-15 23:02   ` Sakari Ailus
2018-09-17  7:47     ` jacopo mondi
2018-09-17 11:40       ` Sakari Ailus
2018-09-24  8:11         ` Hugues FRUCHET
2018-09-14 17:49 ` Steve Longerbeam
2018-09-14 18:25 ` Nicolas Dufresne

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox