[libcamera-devel] [RFC 5/6] libcamera: ipu3: Initialize draft properties

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Oct 7 20:36:41 CEST 2020


Hi Jacopo,

On 13/09/2020 12:39, Niklas Söderlund wrote:
> Hi Jacopo,
> 
> Thanks for your work.
> 
> On 2020-09-11 18:20:38 +0200, Jacopo Mondi wrote:
>> Initialize three draft properties for the IPU3 platform.
>>
>> IPU3 reports a maximum of three processing stages: exposure, capture and
>> ISP processing and does not support noise reduction and color
>> aberration.
>>
>> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> 
> Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> 
>> ---
>>  src/libcamera/pipeline/ipu3/ipu3.cpp | 10 +++++++++-
>>  1 file changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
>> index 2d881fe28f98..9ce329a83f5d 100644
>> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
>> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
>> @@ -13,6 +13,7 @@
>>  
>>  #include <libcamera/camera.h>
>>  #include <libcamera/formats.h>
>> +#include <libcamera/property_ids.h>
>>  #include <libcamera/request.h>
>>  #include <libcamera/stream.h>
>>  
>> @@ -776,7 +777,14 @@ int PipelineHandlerIPU3::registerCameras()
>>  			continue;
>>  
>>  		/* Initialize the camera properties. */
>> -		data->properties_ = cio2->sensor()->properties();
>> +		for (const auto &sensorProperty : cio2->sensor()->properties())
>> +			data->properties_.set(sensorProperty.first,
>> +					      sensorProperty.second);

Why does this need to change here?

Perhaps that's because of the previous patch... I guess the previous
patch has set data->properties to be initialised with all properties and
their defaults? (I'm still confused if that's needed.) - so this only
updates properties that are in the sensor...




>> +		data->properties_.set(properties::DraftPipelineMaxDepth, 3);
>> +		data->properties_.set(properties::DraftAvailableNoiseReductionModes,
>> +				      { static_cast<int32_t>(properties::DRAFT_NOISE_REDUCTION_MODE_OFF) });

Is the cast necessary here?

>> +		data->properties_.set(properties::DraftAvailableColorCorrectionAberrationModes,
>> +				      { static_cast<int32_t>(properties::DRAFT_COLOR_CORRECTION_ABERRATION_OFF) });
>>  
>>  		/**
>>  		 * \todo Dynamically assign ImgU and output devices to each
>> -- 
>> 2.28.0
>>
>> _______________________________________________
>> 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