From: Pavel Machek <pavel@ucw.cz> To: Mauro Carvalho Chehab <mchehab@s-opensource.com> Cc: pali.rohar@gmail.com, sre@kernel.org, kernel list <linux-kernel@vger.kernel.org>, linux-arm-kernel <linux-arm-kernel@lists.infradead.org>, linux-omap@vger.kernel.org, tony@atomide.com, khilman@kernel.org, aaro.koskinen@iki.fi, ivo.g.dimitrov.75@gmail.com, patrikbachan@gmail.com, serge@hallyn.com, abcloriens@gmail.com, Sakari Ailus <sakari.ailus@iki.fi>, Sakari Ailus <sakari.ailus@linux.intel.com>, linux-media@vger.kernel.org, hdegoede@redhat.com Subject: Re: support autofocus / autogain in libv4l2 Date: Tue, 25 Apr 2017 13:23:10 +0200 [thread overview] Message-ID: <20170425112310.GA7926@amd> (raw) In-Reply-To: <20170424225731.7532e368@vento.lan> [-- Attachment #1: Type: text/plain, Size: 3230 bytes --] 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 [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 181 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: pavel@ucw.cz (Pavel Machek) To: linux-arm-kernel@lists.infradead.org Subject: support autofocus / autogain in libv4l2 Date: Tue, 25 Apr 2017 13:23:10 +0200 [thread overview] Message-ID: <20170425112310.GA7926@amd> (raw) In-Reply-To: <20170424225731.7532e368@vento.lan> 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 -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 181 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20170425/a03b799f/attachment-0001.sig>
next prev parent reply other threads:[~2017-04-25 11:23 UTC|newest] Thread overview: 152+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-02-14 12:20 [PATCH v3 0/2] v4l: Add camera voice coil lens control class, current control Sakari Ailus 2017-02-14 12:20 ` [PATCH v3 1/2] " Sakari Ailus 2017-02-14 22:47 ` Pavel Machek 2017-02-15 7:15 ` Sakari Ailus 2017-02-15 8:09 ` Pavel Machek 2017-02-20 22:26 ` Sakari Ailus 2017-02-20 22:48 ` Pavel Machek 2017-04-15 2:23 ` Mauro Carvalho Chehab 2017-04-15 7:12 ` Pavel Machek 2017-04-16 9:12 ` Sakari Ailus 2017-04-19 13:51 ` Mauro Carvalho Chehab 2017-04-24 9:30 ` support autofocus / autogain in libv4l2 Pavel Machek 2017-04-24 13:38 ` Mauro Carvalho Chehab 2017-04-24 13:38 ` Mauro Carvalho Chehab 2017-04-24 21:29 ` Pavel Machek 2017-04-24 21:29 ` Pavel Machek 2017-04-25 1:47 ` Mauro Carvalho Chehab 2017-04-25 1:47 ` Mauro Carvalho Chehab 2017-04-25 8:05 ` Pavel Machek 2017-04-25 8:05 ` Pavel Machek 2017-04-25 8:08 ` Pali Rohár 2017-04-25 8:08 ` Pali Rohár 2017-04-25 8:08 ` Pali Rohár 2017-04-25 11:23 ` Pavel Machek 2017-04-25 11:23 ` Pavel Machek 2017-04-25 11:30 ` Pali Rohár 2017-04-25 11:30 ` Pali Rohár 2017-04-25 12:28 ` Pavel Machek 2017-04-25 12:28 ` Pavel Machek 2017-04-25 12:51 ` Pali Rohár 2017-04-25 12:51 ` Pali Rohár 2017-04-25 16:55 ` Nicolas Dufresne 2017-04-25 16:55 ` Nicolas Dufresne 2017-04-25 16:51 ` Nicolas Dufresne 2017-04-25 16:51 ` Nicolas Dufresne 2017-04-25 16:53 ` Nicolas Dufresne 2017-04-25 16:53 ` Nicolas Dufresne 2017-04-25 16:53 ` Nicolas Dufresne 2017-04-26 10:53 ` Pavel Machek 2017-04-26 10:53 ` Pavel Machek 2017-04-26 10:53 ` [patch] propagating controls in libv4l2 was " Pavel Machek 2017-04-26 10:53 ` Pavel Machek 2017-04-26 11:13 ` Mauro Carvalho Chehab 2017-04-26 11:13 ` Mauro Carvalho Chehab 2017-04-26 13:23 ` [patch] autogain support for bayer10 format (was Re: [patch] propagating controls in libv4l2) Pavel Machek 2017-04-26 13:23 ` Pavel Machek 2017-04-26 15:43 ` Ivaylo Dimitrov 2017-04-26 15:43 ` Ivaylo Dimitrov 2017-04-26 22:51 ` Pavel Machek 2017-04-26 22:51 ` Pavel Machek 2017-04-26 22:51 ` Pavel Machek 2017-04-27 5:52 ` Ivaylo Dimitrov 2017-04-27 5:52 ` Ivaylo Dimitrov 2017-07-13 7:57 ` Pavel Machek 2017-07-13 7:57 ` Pavel Machek 2017-05-03 19:05 ` Russell King - ARM Linux 2017-05-03 19:05 ` Russell King - ARM Linux 2017-05-03 19:58 ` Pavel Machek 2017-05-03 19:58 ` Pavel Machek 2017-05-08 22:28 ` [patch, libv4l]: fix integer overflow Pavel Machek 2017-05-09 6:29 ` Hans Verkuil 2017-05-09 6:32 ` Hans Verkuil 2017-05-09 8:02 ` Pavel Machek 2017-05-09 10:59 ` [patch, libv4l]: fix typos Pavel Machek 2017-05-09 11:01 ` [patch, libv4l]: Add support for GRBG10 format conversion Pavel Machek 2017-05-09 11:04 ` [patch, libv4l]: Introduce define for lookup table size Pavel Machek 2017-05-16 11:17 ` Hans Verkuil 2017-05-16 12:45 ` Pavel Machek 2017-05-16 12:56 ` Hans Verkuil 2017-05-16 23:23 ` Pavel Machek 2017-05-19 9:13 ` [libv4l]: How to do 10-bit support? Stand-alone conversions? Pavel Machek 2018-03-16 20:55 ` [RFC, libv4l]: Make libv4l2 usable on devices with complex pipeline Pavel Machek 2018-03-19 9:47 ` Hans Verkuil 2018-03-19 10:23 ` Pavel Machek 2018-03-19 10:47 ` Mauro Carvalho Chehab 2018-03-19 11:11 ` Hans Verkuil 2018-03-19 12:00 ` Pavel Machek 2018-03-19 12:15 ` Hans Verkuil 2018-03-19 12:48 ` Pavel Machek 2018-03-19 13:29 ` Hans Verkuil 2018-03-19 22:18 ` Pavel Machek 2018-03-19 13:45 ` Mauro Carvalho Chehab 2018-03-19 13:26 ` Mauro Carvalho Chehab 2018-03-20 7:50 ` Pavel Machek 2018-05-15 20:01 ` Pavel Machek 2018-05-15 22:03 ` Mauro Carvalho Chehab 2018-05-16 20:53 ` Pavel Machek 2018-06-02 21:01 ` Pavel Machek 2018-06-06 6:18 ` Tomasz Figa 2018-06-06 8:46 ` Pavel Machek 2018-06-06 8:53 ` Tomasz Figa 2018-06-06 10:01 ` Pavel Machek 2018-06-06 16:57 ` Mauro Carvalho Chehab 2018-06-06 21:27 ` Pavel Machek 2018-06-07 12:22 ` [PATCH, " Pavel Machek 2018-06-06 10:51 ` [RFC, " Pavel Machek 2018-06-06 11:16 ` Tomasz Figa 2018-06-06 20:37 ` Pavel Machek 2018-06-06 17:13 ` Mauro Carvalho Chehab 2018-06-06 10:23 ` Pavel Machek 2018-06-07 7:25 ` Pavel Machek 2017-05-09 11:10 ` [patch, libv4l]: fix integer overflow Pavel Machek 2017-05-16 10:42 ` Pavel Machek 2017-05-21 10:33 ` [patch, libv4l]: add sdlcam example for testing digital still camera functionality Pavel Machek 2017-05-26 20:41 ` Pavel Machek 2017-05-27 9:27 ` Hans Verkuil 2017-05-29 6:13 ` Hans Verkuil 2017-05-29 7:32 ` Pavel Machek 2017-05-29 8:02 ` Hans Verkuil 2017-06-14 11:16 ` Sakari Ailus 2017-06-14 20:41 ` Pavel Machek 2017-07-13 8:36 ` Pavel Machek 2017-05-09 8:07 ` [patch, libv4l]: fix integer overflow Pavel Machek 2017-04-30 22:48 ` [patch] autogain support for bayer10 format (was Re: [patch] propagating controls in libv4l2) Pavel Machek 2017-04-30 22:48 ` Pavel Machek 2017-07-13 9:49 ` [patch] propagating controls in libv4l2 was Re: support autofocus / autogain in libv4l2 Pavel Machek 2017-07-13 9:49 ` Pavel Machek 2017-04-26 11:26 ` Mauro Carvalho Chehab 2017-04-26 11:26 ` Mauro Carvalho Chehab 2017-04-29 9:19 ` Pavel Machek 2017-04-29 9:19 ` Pavel Machek 2017-10-21 22:00 ` Camera support, Prague next week, sdlcam Pavel Machek 2017-10-22 7:36 ` Hans Verkuil 2017-10-22 7:36 ` Hans Verkuil 2017-10-22 8:31 ` Pavel Machek 2017-10-22 8:31 ` Pavel Machek 2017-10-23 18:54 ` Pavel Machek 2017-10-23 18:54 ` Pavel Machek 2017-10-23 19:24 ` Hans Verkuil 2017-10-23 19:24 ` Hans Verkuil 2017-10-23 20:15 ` Sakari Ailus 2017-10-23 20:15 ` Sakari Ailus 2017-10-23 21:02 ` Mauro Carvalho Chehab 2017-10-23 21:02 ` Mauro Carvalho Chehab 2017-10-31 21:28 ` Nokia N9: fun with camera Pavel Machek 2017-11-01 6:36 ` Pavel Machek 2017-11-01 6:36 ` Pavel Machek 2017-11-01 15:32 ` Pavel Machek 2017-11-01 15:32 ` Pavel Machek 2017-04-24 22:07 ` support autofocus / autogain in libv4l2 Pavel Machek 2017-04-24 22:07 ` Pavel Machek 2017-04-25 1:57 ` Mauro Carvalho Chehab 2017-04-25 1:57 ` Mauro Carvalho Chehab 2017-04-25 8:20 ` Pavel Machek 2017-04-25 8:20 ` Pavel Machek 2017-04-25 11:23 ` Pavel Machek [this message] 2017-04-25 11:23 ` Pavel Machek 2017-04-28 22:00 ` [PATCH v3 1/2] v4l: Add camera voice coil lens control class, current control Pavel Machek 2017-04-29 1:46 ` Mauro Carvalho Chehab 2017-05-12 10:49 ` Sakari Ailus 2017-05-13 11:08 ` Pavel Machek 2017-02-14 12:20 ` [PATCH v3 2/2] ad5820: Use VOICE_COIL_CURRENT control Sakari Ailus
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170425112310.GA7926@amd \ --to=pavel@ucw.cz \ --cc=aaro.koskinen@iki.fi \ --cc=abcloriens@gmail.com \ --cc=hdegoede@redhat.com \ --cc=ivo.g.dimitrov.75@gmail.com \ --cc=khilman@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-omap@vger.kernel.org \ --cc=mchehab@s-opensource.com \ --cc=pali.rohar@gmail.com \ --cc=patrikbachan@gmail.com \ --cc=sakari.ailus@iki.fi \ --cc=sakari.ailus@linux.intel.com \ --cc=serge@hallyn.com \ --cc=sre@kernel.org \ --cc=tony@atomide.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.