[libcamera-devel] [PATCH] ipa: rkisp1: Move the IPA to the ipa::rkisp1 namespace

Jean-Michel Hautbois jeanmichel.hautbois at ideasonboard.com
Mon Apr 26 08:01:11 CEST 2021



On 26/04/2021 07:57, Laurent Pinchart wrote:
> Hi Jean-Michel,
> 
> On Mon, Apr 26, 2021 at 07:49:11AM +0200, Jean-Michel Hautbois wrote:
>> On 26/04/2021 00:03, Laurent Pinchart wrote:
>>> On Fri, Apr 23, 2021 at 10:02:15AM +0100, Kieran Bingham wrote:
>>>> On 23/04/2021 07:39, Jean-Michel Hautbois wrote:
>>>>> Simplify name-spacing of the RKISP1 components by placing it in the
>>>>> ipa::rkisp1 namespace directly.
>>>>
>>>> Given that I did the same for the IPU3 - Perhaps I'm biased, but I think
>>>> this is better ;-D
>>>>
>>>>> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
>>>>
>>>> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>>>
>>> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>>>
>>> We should consider renaming IPARkISP1Interface to Interface though, and
>>> IPARkISP1 to... Implementation ?
>>
>> Thanks.
>> Do you mean having the following ?
>>
>> -class IPARkISP1 : public IPARkISP1Interface
>> +class Implementation : public Interface
>>
>> It would be the same for all IPAs then ?
> 
> That's the idea, yes. It's just an idea though :-) It looks a bit...
> bare maybe ? But if we keep IPA and RkISP1 in the name of the classes,
> it defeats the purpose of namespaces a little bit.
For reading ease couldn't we have:
class RkISP1Implementation: public RkISP1Interface

That would keep the naming without the IPA :-).
It is "just" a mojom patching, right :-p ?

>>>>> ---
>>>>>  src/ipa/rkisp1/rkisp1.cpp | 28 ++++++++++++++++------------
>>>>>  1 file changed, 16 insertions(+), 12 deletions(-)
>>>>>
>>>>> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
>>>>> index 8a57b080..6d45673c 100644
>>>>> --- a/src/ipa/rkisp1/rkisp1.cpp
>>>>> +++ b/src/ipa/rkisp1/rkisp1.cpp
>>>>> @@ -28,7 +28,9 @@ namespace libcamera {
>>>>>  
>>>>>  LOG_DEFINE_CATEGORY(IPARkISP1)
>>>>>  
>>>>> -class IPARkISP1 : public ipa::rkisp1::IPARkISP1Interface
>>>>> +namespace ipa::rkisp1 {
>>>>> +
>>>>> +class IPARkISP1 : public IPARkISP1Interface
>>>>>  {
>>>>>  public:
>>>>>  	int init(unsigned int hwRevision) override;
>>>>> @@ -40,7 +42,7 @@ public:
>>>>>  		      const std::map<uint32_t, ControlInfoMap> &entityControls) override;
>>>>>  	void mapBuffers(const std::vector<IPABuffer> &buffers) override;
>>>>>  	void unmapBuffers(const std::vector<unsigned int> &ids) override;
>>>>> -	void processEvent(const ipa::rkisp1::RkISP1Event &event) override;
>>>>> +	void processEvent(const RkISP1Event &event) override;
>>>>>  
>>>>>  private:
>>>>>  	void queueRequest(unsigned int frame, rkisp1_params_cfg *params,
>>>>> @@ -171,10 +173,10 @@ void IPARkISP1::unmapBuffers(const std::vector<unsigned int> &ids)
>>>>>  	}
>>>>>  }
>>>>>  
>>>>> -void IPARkISP1::processEvent(const ipa::rkisp1::RkISP1Event &event)
>>>>> +void IPARkISP1::processEvent(const RkISP1Event &event)
>>>>>  {
>>>>>  	switch (event.op) {
>>>>> -	case ipa::rkisp1::EventSignalStatBuffer: {
>>>>> +	case EventSignalStatBuffer: {
>>>>>  		unsigned int frame = event.frame;
>>>>>  		unsigned int bufferId = event.bufferId;
>>>>>  
>>>>> @@ -184,7 +186,7 @@ void IPARkISP1::processEvent(const ipa::rkisp1::RkISP1Event &event)
>>>>>  		updateStatistics(frame, stats);
>>>>>  		break;
>>>>>  	}
>>>>> -	case ipa::rkisp1::EventQueueRequest: {
>>>>> +	case EventQueueRequest: {
>>>>>  		unsigned int frame = event.frame;
>>>>>  		unsigned int bufferId = event.bufferId;
>>>>>  
>>>>> @@ -215,8 +217,8 @@ void IPARkISP1::queueRequest(unsigned int frame, rkisp1_params_cfg *params,
>>>>>  		params->module_en_update = RKISP1_CIF_ISP_MODULE_AEC;
>>>>>  	}
>>>>>  
>>>>> -	ipa::rkisp1::RkISP1Action op;
>>>>> -	op.op = ipa::rkisp1::ActionParamFilled;
>>>>> +	RkISP1Action op;
>>>>> +	op.op = ActionParamFilled;
>>>>>  
>>>>>  	queueFrameAction.emit(frame, op);
>>>>>  }
>>>>> @@ -268,8 +270,8 @@ void IPARkISP1::updateStatistics(unsigned int frame,
>>>>>  
>>>>>  void IPARkISP1::setControls(unsigned int frame)
>>>>>  {
>>>>> -	ipa::rkisp1::RkISP1Action op;
>>>>> -	op.op = ipa::rkisp1::ActionV4L2Set;
>>>>> +	RkISP1Action op;
>>>>> +	op.op = ActionV4L2Set;
>>>>>  
>>>>>  	ControlList ctrls(ctrls_);
>>>>>  	ctrls.set(V4L2_CID_EXPOSURE, static_cast<int32_t>(exposure_));
>>>>> @@ -286,13 +288,15 @@ void IPARkISP1::metadataReady(unsigned int frame, unsigned int aeState)
>>>>>  	if (aeState)
>>>>>  		ctrls.set(controls::AeLocked, aeState == 2);
>>>>>  
>>>>> -	ipa::rkisp1::RkISP1Action op;
>>>>> -	op.op = ipa::rkisp1::ActionMetadata;
>>>>> +	RkISP1Action op;
>>>>> +	op.op = ActionMetadata;
>>>>>  	op.controls = ctrls;
>>>>>  
>>>>>  	queueFrameAction.emit(frame, op);
>>>>>  }
>>>>>  
>>>>> +} /* namespace ipa::rkisp1 */
>>>>> +
>>>>>  /*
>>>>>   * External IPA module interface
>>>>>   */
>>>>> @@ -307,7 +311,7 @@ const struct IPAModuleInfo ipaModuleInfo = {
>>>>>  
>>>>>  IPAInterface *ipaCreate()
>>>>>  {
>>>>> -	return new IPARkISP1();
>>>>> +	return new ipa::rkisp1::IPARkISP1();
>>>>>  }
>>>>>  }
>>>>>  
> 


More information about the libcamera-devel mailing list