[libcamera-devel] [PATCH 1/1] libcamera: controls: Add DigitalGain control
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Nov 23 10:17:33 CET 2020
Hi Jacopo,
On 23/11/2020 08:58, Jacopo Mondi wrote:
> Hi Kieran,
>
> On Mon, Nov 16, 2020 at 10:40:25AM +0000, Kieran Bingham wrote:
>> Hi David,
>>
>> On 27/10/2020 14:12, David Plowman wrote:
>>> This control reports the global digital gain applied by the pipeline
>>> as a whole, after capturing a raw image from the sensor.
>>>
>>> Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
>>> ---
>>> src/libcamera/control_ids.yaml | 11 +++++++++++
>>> 1 file changed, 11 insertions(+)
>>>
>>> diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
>>> index c8874fa9..e6362c74 100644
>>> --- a/src/libcamera/control_ids.yaml
>>> +++ b/src/libcamera/control_ids.yaml
>>> @@ -530,4 +530,15 @@ controls:
>>> This control is only present when the pipeline supports scaling. Its
>>> maximum valid value is given by the properties::ScalerCropMaximum
>>> property, and the two can be used to implement digital zoom.
>>> +
>>> + - DigitalGain:
>>> + type: float
>>> + description: |
>>> + Global digital gain value applied to the image during all the
>>> + processing steps after capturing the image from the sensor. Any raw
>>> + images, therefore, will not include this gain, but the final images
>>> + output by the imaging pipeline as a whole will include it.
>>> +
>>> + This control is intended to report the value used by the image
>>> + processing pipeline.
>>
>>
>> If this is a per-stream thing anyway, I guess it will then be up to
>> pipeline handlers to set this to the appropriate value for each stream
>> when it completes. The fact that this value would not be applicable to a
>> RAW stream makes me think it certainly should be a per-stream metadata
>> style value.
>>
>>
>> I'd hope this could be handled by a common helper in that instance so it
>> doesn't get left out of some pipeline handlers, but included in some,
>> and become inconsistent. Not yet sure how we can handle that, but that
>> will be a core issue anyway.
>>
>>
>> I wonder if we should mark this somehow as read-only, at least until we
>> determine that someone needs to set it.
>>
>> We could introduce a control property between type: and description:
>> read-only: true
>
> Isn't a read-only control just a metadata ?
>
> Wouldn't it be enough for a pipeline that does not support changing
> the control value from applications not reporting it in the list of
> supported Camera's controls, but only report it as part of a completed
> request's metadata ?
Ah, yes of course - because if the control is not listed as supported it
won't be there to set in the first place! I forgot about that.
So - indeed, no requirement to mark anything as read-only. That will be
implicit.
--
Kieran
>
> Thanks
> j
>
>>
>>
>> Otherwise, I see no objections currently. I think we're just waiting on
>> top-level thoughts from Laurent. (And perhaps per-stream controls, but
>> that brings it's own questions )
>>
>> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>>
>>
>>> ...
>>>
>>
>> --
>> Regards
>> --
>> Kieran
>> _______________________________________________
>> libcamera-devel mailing list
>> libcamera-devel at lists.libcamera.org
>> https://lists.libcamera.org/listinfo/libcamera-devel
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list