From: Sylwester Nawrocki <snjw23@gmail.com>
To: Sakari Ailus <sakari.ailus@iki.fi>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
"HeungJun, Kim" <riverful.kim@samsung.com>,
linux-media@vger.kernel.org, mchehab@redhat.com,
hverkuil@xs4all.nl, kyungmin.park@samsung.com,
Hans de Goede <hdegoede@redhat.com>
Subject: Re: [RFC PATCH 1/4] v4l: Add V4L2_CID_PRESET_WHITE_BALANCE menu control
Date: Fri, 30 Dec 2011 11:14:39 +0100 [thread overview]
Message-ID: <4EFD8F0F.6060505@gmail.com> (raw)
In-Reply-To: <20111229233406.GU3677@valkosipuli.localdomain>
Hi Sakari,
On 12/30/2011 12:34 AM, Sakari Ailus wrote:
> On Wed, Dec 28, 2011 at 02:51:38PM +0100, Laurent Pinchart wrote:
>> On Wednesday 28 December 2011 14:35:00 Sylwester Nawrocki wrote:
>>> On 12/28/2011 07:23 AM, HeungJun, Kim wrote:
>>>> It adds the new CID for setting White Balance Preset. This CID is
>>>> provided as menu type using the following items:
>>>> 0 - V4L2_WHITE_BALANCE_INCANDESCENT,
>>>> 1 - V4L2_WHITE_BALANCE_FLUORESCENT,
>>>> 2 - V4L2_WHITE_BALANCE_DAYLIGHT,
>>>> 3 - V4L2_WHITE_BALANCE_CLOUDY,
>>>> 4 - V4L2_WHITE_BALANCE_SHADE,
>>>
>>> I have been also investigating those white balance presets recently and
>>> noticed they're also needed for the pwc driver. Looking at
>>> drivers/media/video/pwc/pwc-v4l2.c there is something like:
>>>
>>> const char * const pwc_auto_whitebal_qmenu[] = {
>>> "Indoor (Incandescant Lighting) Mode",
>>> "Outdoor (Sunlight) Mode",
>>> "Indoor (Fluorescent Lighting) Mode",
>>> "Manual Mode",
>>> "Auto Mode",
>>> NULL
>>> };
>>>
>>> static const struct v4l2_ctrl_config pwc_auto_white_balance_cfg = {
>>> .ops = &pwc_ctrl_ops,
>>> .id = V4L2_CID_AUTO_WHITE_BALANCE,
>>> .type = V4L2_CTRL_TYPE_MENU,
>>> .max = awb_auto,
>>> .qmenu = pwc_auto_whitebal_qmenu,
>>> };
>>>
>>> ...
>>>
>>> cfg = pwc_auto_white_balance_cfg;
>>> cfg.name = v4l2_ctrl_get_name(cfg.id);
>>> cfg.def = def;
>>> pdev->auto_white_balance = v4l2_ctrl_new_custom(hdl, &cfg, NULL);
>>>
>>> So this driver re-defines V4L2_CID_AUTO_WHITE_BALANCE as a menu control
>>> with custom entries. That's interesting... However it works in practice
>>> and applications have access to what's provided by hardware.
>>> Perhaps V4L2_CID_AUTO_WHITE_BALANCE_TEMPERATURE would be a better fit for
>>> that :)
>>>
>>> Nevertheless, redefining standard controls in particular drivers sounds
>>> a little dubious. I wonder if this is a generally agreed approach ?
>>
>> No agreed with me at least :-)
>>
>>> Then, how does your V4L2_CID_PRESET_WHITE_BALANCE control interact with
>>> V4L2_CID_AUTO_WHITE_BALANCE control ? Does V4L2_CID_AUTO_WHITE_BALANCE need
>>> to be set to false for V4L2_CID_PRESET_WHITE_BALANCE to be effective ?
>>
>> Is the preset a fixed white balance setting, or is it an auto white balance
>> with the algorithm tuned for a particular configuration ? In the first case,
>> does it correspond to a fixed white balance temperature value ?
>
> While I'm waiting for a final answer to this, I guess it's the second. There
> are three things involved here:
>
> - V4L2_CID_WHITE_BALANCE_TEMPERATURE: relatively low level control telling
> the colour temperature of the light source. Setting a value for this
> essentially means using manual white balance.
>
> - V4L2_CID_AUTO_WHITE_BALANCE: automatic white balance enabled or disabled.
Was the third thing the V4L2_CID_DO_WHITE_BALANCE control that you wanted to
say ? It's also quite essential functionality, to be able to fix white balance
after pointing camera to a white object. And I would expect
V4L2_CID_WHITE_BALANCE_PRESET control's documentation to state how an
interaction with V4L2_CID_DO_WHITE_BALANCE looks like.
> The new control proposed by HeungJun is input for the automatic white
> balance algorithm unless I'm mistaken. Whether or not the value is static,
> however, might be considered of secondary importance: it is a name instead
> of a number and clearly intended to be used as a high level control. I'd
> still expect it to be a hint for the algorithm.
>
> The value of the new control would have an effect as long as automatic white
> balance is enabled.
The idea to treat the preset as a hint to the algorithm is interesting, however
as it turns out this are just static values (R/B balance) in manual WB mode.
I expect some parameters for adjusting auto WB algorithm (WB (R/G/B) gain bias
or something similar) to be present in sensor's ISP as well. If I remember well
I've seen something like this in one of sensor's documentations.
>>>> diff --git a/Documentation/DocBook/media/v4l/controls.xml
>>>> b/Documentation/DocBook/media/v4l/controls.xml index c0422c6..350c138
>>>> 100644
>>>> --- a/Documentation/DocBook/media/v4l/controls.xml
>>>> +++ b/Documentation/DocBook/media/v4l/controls.xml
>>>> @@ -2841,6 +2841,44 @@ it one step further. This is a write-only
>>>> control.</entry>
>>>>
>>>> </row>
>>>> <row><entry></entry></row>
>>>>
>>>> + <row id="v4l2-preset-white-balance">
>>>> + <entry
>>>> spanname="id"><constant>V4L2_CID_PRESET_WHITE_BALANCE</constant> </
>>>> entry>
>>>
>>> Wouldn't V4L2_CID_WHITE_BALANCE_PRESET be better ?
>>
>> That's what I was about to say.
>
> And the menu items would contain the same prefix with CID_ removed. They're
> going to be long, but I don't see that as an issue for menu items.
Should we call it V4L2_CID_WB_PRESET then ?
Anyway V4L2_WHITE_BALANCE_PRESET_INCADESCENT for example is not that long,
we have control names that almost reach 80 characters :)
--
Regards,
Sylwester
next prev parent reply other threads:[~2011-12-30 10:14 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-28 6:23 [RFC PATCH 0/4] Add some new camera controls HeungJun, Kim
2011-12-28 6:23 ` [RFC PATCH 1/4] v4l: Add V4L2_CID_PRESET_WHITE_BALANCE menu control HeungJun, Kim
2011-12-28 13:35 ` Sylwester Nawrocki
2011-12-28 13:51 ` Laurent Pinchart
2011-12-29 5:08 ` HeungJun, Kim
2011-12-29 23:58 ` Laurent Pinchart
2011-12-30 5:21 ` Kim, Heungjun
2011-12-30 10:30 ` Sylwester Nawrocki
2012-01-02 4:38 ` Kim, Heungjun
2012-01-02 21:50 ` Sylwester Nawrocki
2011-12-29 23:34 ` Sakari Ailus
2011-12-30 6:35 ` HeungJun, Kim
2011-12-30 8:41 ` Hans de Goede
2011-12-30 18:42 ` 'Sakari Ailus'
2011-12-30 18:56 ` Hans de Goede
2011-12-30 21:03 ` 'Sakari Ailus'
2011-12-30 18:17 ` 'Sakari Ailus'
2011-12-30 10:14 ` Sylwester Nawrocki [this message]
2011-12-30 20:41 ` Sakari Ailus
2012-01-01 15:38 ` Sylwester Nawrocki
2012-01-04 20:39 ` Sakari Ailus
2012-01-04 20:57 ` Laurent Pinchart
2012-01-04 21:24 ` Sakari Ailus
2012-01-04 22:06 ` Sylwester Nawrocki
2012-01-11 22:36 ` Sakari Ailus
2012-01-13 21:41 ` Sylwester Nawrocki
2011-12-29 4:06 ` HeungJun, Kim
2012-01-02 9:53 ` Sylwester Nawrocki
2011-12-30 11:23 ` Sylwester Nawrocki
2011-12-28 6:23 ` [RFC PATCH 2/4] v4l: Add V4L2_CID_SCENEMODE " HeungJun, Kim
2011-12-28 13:56 ` Laurent Pinchart
2011-12-29 5:40 ` HeungJun, Kim
2011-12-30 0:11 ` Laurent Pinchart
2011-12-30 5:31 ` HeungJun, Kim
2011-12-28 6:23 ` [RFC PATCH 3/4] v4l: Add V4L2_CID_WDR button control HeungJun, Kim
2011-12-28 13:56 ` Laurent Pinchart
2011-12-29 5:52 ` HeungJun, Kim
2011-12-30 0:13 ` Laurent Pinchart
2011-12-30 5:41 ` HeungJun, Kim
2011-12-30 21:10 ` Sakari Ailus
2011-12-28 6:23 ` [RFC PATCH 4/4] v4l: Add V4L2_CID_ANTISHAKE " HeungJun, Kim
2011-12-28 13:58 ` Laurent Pinchart
2011-12-29 5:57 ` HeungJun, Kim
2011-12-28 14:01 ` [RFC PATCH 0/4] Add some new camera controls Laurent Pinchart
2011-12-29 6:15 ` HeungJun, Kim
2011-12-30 0:16 ` Laurent Pinchart
2011-12-30 7:52 ` HeungJun, Kim
2011-12-30 11:18 ` Sylwester Nawrocki
2012-01-04 21:07 ` Sakari Ailus
2012-01-28 17:01 ` Sylwester Nawrocki
2012-01-30 22:25 ` 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=4EFD8F0F.6060505@gmail.com \
--to=snjw23@gmail.com \
--cc=hdegoede@redhat.com \
--cc=hverkuil@xs4all.nl \
--cc=kyungmin.park@samsung.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@redhat.com \
--cc=riverful.kim@samsung.com \
--cc=sakari.ailus@iki.fi \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).