All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] media: Auto exposure/gain support for atomisp / libcamera integration ?
@ 2021-11-07 17:50 Hans de Goede
  2021-11-07 18:48 ` Mauro Carvalho Chehab
  2021-11-18 10:13 ` Umang Jain
  0 siblings, 2 replies; 9+ messages in thread
From: Hans de Goede @ 2021-11-07 17:50 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Sakari Ailus
  Cc: Hans de Goede, Laurent Pinchart, Tsuchiya Yuto, Andy Shevchenko,
	Yury Luneff, Nable, andrey.i.trufanov, Fabio Aiuto, linux-media,
	linux-staging, libcamera-devel

Hi All,

Now that we have the atomisp2 driver running on some devices like
the Asus T101HA; and with the exposure + gain controls for the ov2680
sensor found on that laptop fixed:

https://lore.kernel.org/linux-media/20211107171549.267583-1-hdegoede@redhat.com/

I believe we need to start thinking about various userspace API
concerns. Thanks to Mauro's great work on various V4L2 API things
are starting to work (somewhat) with regular V4L2 apps, but we really
also need some processing / 3A stuff to make the cameras really
usable.

The most important thing needed is automatic exposure + gain control,
ATM this relies on a custom ATOMISP ioctl, but I believe that we can
just export the controls as regular v4l2 controls on the sensor subdev,
at least for the ov2680 the exposure is already exported this way
but it is read-only. Does anyone see any problems with just making
these normal v4l2 controls on the sensor subdev ?

We can then simulate the custom ATOMISP ioctl through the subdevs,
or we can just remove it alltogether.

Once we have the controls available this way I think we should write
a libcamera plugin, which like the older versions of the Rasberry Pi
plugin (if I've understood things correctly) won't use the MC framework
for now. I believe we first need to understand the atomisp code better
before we add MC support (*). But I still believe that an (experimental)
plugin would be good, both to get something usable so that we can get
more testers / more people interested in contributing.
Another reason is to have another use-case where apps need to support
libcamera to work properly (like on IPU3 devices) which will hopefully
motivate people working on apps to put more effort in supporting libcamera
(preferably through the new pipewire libcamera plugin so that things
will also work in a flatpack sandbox).

###

On other thing which I'm wondering about is the need to call S_INPUT to
select front / back in this list from Mauro:

	$ for i in $(ls /dev/video*|sort -k2 -to -n); do echo -n $i:; v4l2-ctl -D -d $i|grep Name; done
	/dev/video0:	Name             : ATOMISP ISP CAPTURE output
	/dev/video1:	Name             : ATOMISP ISP VIEWFINDER output
	/dev/video2:	Name             : ATOMISP ISP PREVIEW output
	/dev/video3:	Name             : ATOMISP ISP VIDEO output
	/dev/video4:	Name             : ATOMISP ISP ACC
	/dev/video5:	Name             : ATOMISP ISP MEMORY input
	/dev/video6:	Name             : ATOMISP ISP CAPTURE output
	/dev/video7:	Name             : ATOMISP ISP VIEWFINDER output
	/dev/video8:	Name             : ATOMISP ISP PREVIEW output
	/dev/video9:	Name             : ATOMISP ISP VIDEO output
	/dev/video10:	Name             : ATOMISP ISP ACC

I notice that everything is listed twice, I wonder if we can use /dev/video2
with input 0 together with /dev/video8 for input 1, if that is possible then
we might set a different default input on each.

And maybe also make them /dev/video0 (already done I see) and /dev/video1,
possibly combined with a module-option to hide the others for now. This
should make things better for regular apps. OTOH if we go the libcamera
route then this is not really necessary I guess?

Regards,

Hans

*) I do believe that in the end MC support makes sense at least
to tie together the 


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

end of thread, other threads:[~2021-11-18 18:40 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-07 17:50 [RFC] media: Auto exposure/gain support for atomisp / libcamera integration ? Hans de Goede
2021-11-07 18:48 ` Mauro Carvalho Chehab
2021-11-17 17:24   ` [libcamera-devel] " Kieran Bingham
2021-11-17 21:05     ` Laurent Pinchart
2021-11-18  7:58       ` Mauro Carvalho Chehab
2021-11-18 11:29         ` Laurent Pinchart
2021-11-18 10:13 ` Umang Jain
2021-11-18 10:50   ` Laurent Pinchart
2021-11-18 18:40     ` Hans de Goede

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.