Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1630070 > unrolled thread
| Started by | Pavel Machek <pavel@ucw.cz> |
|---|---|
| First post | 2017-04-25 00:10 +0200 |
| Last post | 2017-04-25 13:30 +0200 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: support autofocus / autogain in libv4l2 Pavel Machek <pavel@ucw.cz> - 2017-04-25 00:10 +0200
Re: support autofocus / autogain in libv4l2 Mauro Carvalho Chehab <mchehab@s-opensource.com> - 2017-04-25 04:00 +0200
Re: support autofocus / autogain in libv4l2 Pavel Machek <pavel@ucw.cz> - 2017-04-25 10:30 +0200
Re: support autofocus / autogain in libv4l2 Pavel Machek <pavel@ucw.cz> - 2017-04-25 13:30 +0200
| From | Pavel Machek <pavel@ucw.cz> |
|---|---|
| Date | 2017-04-25 00:10 +0200 |
| Subject | Re: support autofocus / autogain in libv4l2 |
| Message-ID | <tzUlb-4gQ-9@gated-at.bofh.it> |
[Multipart message — attachments visible in raw view] — view raw
Hi! > Please don't add a new application under lib/. It is fine if you want > some testing application, if the ones there aren't enough, but please > place it under contrib/test/. > > You should likely take a look at v4l2grab first, as it could have > almost everything you would need. I really need some kind of video output. v4l2grab is not useful there. v4l2gl might be, but I don't think I have enough dependencies. Umm, and it looks like libv4l can not automatically convert from GRBG10.. and if it could, going through RGB24 would probably be too slow on this device :-(. > IMO, the above belongs to a separate processing module under > lib/libv4lconvert/processing/ Is there an example using autogain/autowhitebalance from libv4lconvert? Best regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[toc] | [next] | [standalone]
| From | Mauro Carvalho Chehab <mchehab@s-opensource.com> |
|---|---|
| Date | 2017-04-25 04:00 +0200 |
| Message-ID | <tzXVL-6sb-5@gated-at.bofh.it> |
| In reply to | #1630070 |
Em Tue, 25 Apr 2017 00:07:01 +0200 Pavel Machek <pavel@ucw.cz> escreveu: > Hi! > > > Please don't add a new application under lib/. It is fine if you want > > some testing application, if the ones there aren't enough, but please > > place it under contrib/test/. > > > > You should likely take a look at v4l2grab first, as it could have > > almost everything you would need. > > I really need some kind of video output. v4l2grab is not useful > there. v4l2gl might be, but I don't think I have enough dependencies. Well, you could use some app to show the snaps that v4l2grab takes. Yeah, compiling v4l2gl on N9 can indeed be complex. I suspect that it shouldn't hard to compile xawtv there (probably disabling some optional features). > Umm, and it looks like libv4l can not automatically convert from > GRBG10.. and if it could, going through RGB24 would probably be too > slow on this device :-(. I suspect it shouldn't be hard to add support for GRBG10. It already supports 8 and 16 bits Bayer formats, at lib/libv4lconvert/bayer.c (to both RGB and YUV formats). How it would preform is another question ;) > > IMO, the above belongs to a separate processing module under > > lib/libv4lconvert/processing/ > > Is there an example using autogain/autowhitebalance from > libv4lconvert? Well, if you plug a USB camera without those controls, it should automatically expose controls for it, as if the device had such controls. Thanks, Mauro
[toc] | [prev] | [next] | [standalone]
| From | Pavel Machek <pavel@ucw.cz> |
|---|---|
| Date | 2017-04-25 10:30 +0200 |
| Message-ID | <tA41c-2cn-27@gated-at.bofh.it> |
| In reply to | #1630148 |
[Multipart message — attachments visible in raw view] — view raw
Hi! > > > Please don't add a new application under lib/. It is fine if you want > > > some testing application, if the ones there aren't enough, but please > > > place it under contrib/test/. > > > > > > You should likely take a look at v4l2grab first, as it could have > > > almost everything you would need. > > > > I really need some kind of video output. v4l2grab is not useful > > there. v4l2gl might be, but I don't think I have enough dependencies. > > Well, you could use some app to show the snaps that v4l2grab takes. That would be too slow :-(. > Yeah, compiling v4l2gl on N9 can indeed be complex. I suspect that it > shouldn't hard to compile xawtv there (probably disabling some optional > features). I do have mplayer working, but that one is not linked against libv4l2 :-(. > > Umm, and it looks like libv4l can not automatically convert from > > GRBG10.. and if it could, going through RGB24 would probably be too > > slow on this device :-(. > > I suspect it shouldn't be hard to add support for GRBG10. It already > supports 8 and 16 bits Bayer formats, at lib/libv4lconvert/bayer.c > (to both RGB and YUV formats). Is 16bit bayer a recent development? I can't see it in commit 374806e868f5a7a48ecffde4c6a1abfcfa5ccd65 Author: Hans Verkuil <hans.verkuil@cisco.com> Date: Fri Apr 22 09:31:57 2016 +0200 > > Is there an example using autogain/autowhitebalance from > > libv4lconvert? > > Well, if you plug a USB camera without those controls, it should > automatically expose controls for it, as if the device had such > controls. And settings are persistent, so I can enable autogain, then lauch something like xawtv, and it will automatically get autogain? Ok, good. Regards, Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[toc] | [prev] | [next] | [standalone]
| From | Pavel Machek <pavel@ucw.cz> |
|---|---|
| Date | 2017-04-25 13:30 +0200 |
| Message-ID | <tA6Po-420-17@gated-at.bofh.it> |
| In reply to | #1630148 |
[Multipart message — attachments visible in raw view] — view raw
Hi!
> > Umm, and it looks like libv4l can not automatically convert from
> > GRBG10.. and if it could, going through RGB24 would probably be too
> > slow on this device :-(.
>
> I suspect it shouldn't be hard to add support for GRBG10. It already
> supports 8 and 16 bits Bayer formats, at lib/libv4lconvert/bayer.c
> (to both RGB and YUV formats).
Proper format for 16 bit bayer would be tricky, AFAICT. Anyway, does
this look reasonable? It does not work too well here, since omap3isp
driver does not seem to support ENUM_FMT. (And I get just half of the
vertical image, strange. Interlacing?)
Best regards,
Pavel
diff --git a/lib/libv4lconvert/libv4lconvert.c b/lib/libv4lconvert/libv4lconvert.c
index d3d8936..2a469b2 100644
--- a/lib/libv4lconvert/libv4lconvert.c
+++ b/lib/libv4lconvert/libv4lconvert.c
@@ -123,6 +126,8 @@ static const struct v4lconvert_pixfmt supported_src_pixfmts[] = {
{ V4L2_PIX_FMT_SGRBG8, 8, 8, 8, 1 },
{ V4L2_PIX_FMT_SRGGB8, 8, 8, 8, 1 },
{ V4L2_PIX_FMT_STV0680, 8, 8, 8, 1 },
+
+ { V4L2_PIX_FMT_SGRBG10, 16, 8, 8, 1 },
/* compressed bayer */
{ V4L2_PIX_FMT_SPCA561, 0, 9, 9, 1 },
{ V4L2_PIX_FMT_SN9C10X, 0, 9, 9, 1 },
@@ -668,6 +680,7 @@ static int v4lconvert_processing_needs_double_conversion(
case V4L2_PIX_FMT_SGRBG8:
case V4L2_PIX_FMT_SRGGB8:
case V4L2_PIX_FMT_STV0680:
+ case V4L2_PIX_FMT_SGRBG10:
return 0;
}
switch (dest_pix_fmt) {
@@ -694,6 +707,17 @@ unsigned char *v4lconvert_alloc_buffer(int needed,
return *buf;
}
+static void v4lconvert_10to8(void *_src, unsigned char *dst, int width, int height)
+{
+ int i;
+ uint16_t *src = _src;
+
+ printf("sizes %d x %d\n", width, height);
+ for (i=0; i<width*height; i++) {
+ dst[i] = src[i] >> 2;
+ }
+}
+
int v4lconvert_oom_error(struct v4lconvert_data *data)
{
V4LCONVERT_ERR("could not allocate memory\n");
@@ -867,7 +893,8 @@ static int v4lconvert_convert_pixfmt(struct v4lconvert_data *data,
#endif
case V4L2_PIX_FMT_SN9C2028:
case V4L2_PIX_FMT_SQ905C:
- case V4L2_PIX_FMT_STV0680: { /* Not compressed but needs some shuffling */
+ case V4L2_PIX_FMT_STV0680:
+ case V4L2_PIX_FMT_SGRBG10: { /* Not compressed but needs some shuffling */
unsigned char *tmpbuf;
struct v4l2_format tmpfmt = *fmt;
@@ -877,6 +904,11 @@ static int v4lconvert_convert_pixfmt(struct v4lconvert_data *data,
return v4lconvert_oom_error(data);
switch (src_pix_fmt) {
+ case V4L2_PIX_FMT_SGRBG10:
+ v4lconvert_10to8(src, tmpbuf, width, height);
+
+ tmpfmt.fmt.pix.pixelformat = V4L2_PIX_FMT_SGRBG8;
+ break;
case V4L2_PIX_FMT_SPCA561:
v4lconvert_decode_spca561(src, tmpbuf, width, height);
tmpfmt.fmt.pix.pixelformat = V4L2_PIX_FMT_SGBRG8;
@@ -949,6 +981,7 @@ static int v4lconvert_convert_pixfmt(struct v4lconvert_data *data,
V4LCONVERT_ERR("short raw bayer data frame\n");
errno = EPIPE;
result = -1;
+ /* FIXME: but then we proceed anyway?! */
}
switch (dest_pix_fmt) {
case V4L2_PIX_FMT_RGB24:
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web