Message ID | 20250703114225.2074071-9-paul.elder@ideasonboard.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
2025. 07. 03. 13:42 keltezéssel, Paul Elder írta: > Remove AeEnable handling from the Camera and all IPAs, as it is now > handled by the inject_controls layer. > > Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> > > --- > The mali-c55 IPA needs to support AnalogueGainMode and ExposureTimeMode, > but that is out of scope for this series. That is https://bugs.libcamera.org/show_bug.cgi?id=262 Regards, Barnabás Pőcze > > No change in v2 > --- > src/ipa/mali-c55/algorithms/agc.cpp | 1 + > src/ipa/rkisp1/algorithms/agc.cpp | 2 -- > src/ipa/rpi/common/ipa_base.cpp | 2 -- > src/libcamera/camera.cpp | 19 ------------------- > src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 5 ----- > 5 files changed, 1 insertion(+), 28 deletions(-) > > diff --git a/src/ipa/mali-c55/algorithms/agc.cpp b/src/ipa/mali-c55/algorithms/agc.cpp > index 70667db34f1e..818cea35afa9 100644 > --- a/src/ipa/mali-c55/algorithms/agc.cpp > +++ b/src/ipa/mali-c55/algorithms/agc.cpp > @@ -137,6 +137,7 @@ int Agc::init(IPAContext &context, const YamlObject &tuningData) > if (ret) > return ret; > > + /* \todo Support AnalogueGainMode and ExposureTimeMode */ > context.ctrlMap[&controls::AeEnable] = ControlInfo(false, true); > context.ctrlMap[&controls::DigitalGain] = ControlInfo( > static_cast<float>(kMinDigitalGain), > diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp > index 137a0750017b..8a890d387efb 100644 > --- a/src/ipa/rkisp1/algorithms/agc.cpp > +++ b/src/ipa/rkisp1/algorithms/agc.cpp > @@ -155,8 +155,6 @@ int Agc::init(IPAContext &context, const YamlObject &tuningData) > ControlInfo({ { ControlValue(controls::AnalogueGainModeAuto), > ControlValue(controls::AnalogueGainModeManual) } }, > ControlValue(controls::AnalogueGainModeAuto)); > - /* \todo Move this to the Camera class */ > - context.ctrlMap[&controls::AeEnable] = ControlInfo(false, true, true); > context.ctrlMap.merge(controls()); > > return 0; > diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp > index 6565f5366312..059b1bd5942e 100644 > --- a/src/ipa/rpi/common/ipa_base.cpp > +++ b/src/ipa/rpi/common/ipa_base.cpp > @@ -55,8 +55,6 @@ constexpr Duration controllerMinFrameDuration = 1.0s / 30.0; > > /* List of controls handled by the Raspberry Pi IPA */ > const ControlInfoMap::Map ipaControls{ > - /* \todo Move this to the Camera class */ > - { &controls::AeEnable, ControlInfo(false, true, true) }, > { &controls::ExposureTimeMode, > ControlInfo({ { ControlValue(controls::ExposureTimeModeAuto), > ControlValue(controls::ExposureTimeModeManual) } }, > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp > index 665fc5157349..3d0782a9eed2 100644 > --- a/src/libcamera/camera.cpp > +++ b/src/libcamera/camera.cpp > @@ -1374,25 +1374,6 @@ int Camera::queueRequest(Request *request) > } > } > > - /* Pre-process AeEnable. */ > - ControlList &controls = request->controls(); > - const auto &aeEnable = controls.get(controls::AeEnable); > - if (aeEnable) { > - if (_d()->controlInfo_.count(controls::AnalogueGainMode.id()) && > - !controls.contains(controls::AnalogueGainMode.id())) { > - controls.set(controls::AnalogueGainMode, > - *aeEnable ? controls::AnalogueGainModeAuto > - : controls::AnalogueGainModeManual); > - } > - > - if (_d()->controlInfo_.count(controls::ExposureTimeMode.id()) && > - !controls.contains(controls::ExposureTimeMode.id())) { > - controls.set(controls::ExposureTimeMode, > - *aeEnable ? controls::ExposureTimeModeAuto > - : controls::ExposureTimeModeManual); > - } > - } > - > LayerManager *layerManager = d->pipe()->cameraManager()->_d()->layerManager(); > layerManager->queueRequest(this, request); > > diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp > index 4b5816dfdde0..ab12d5b5ae9a 100644 > --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp > +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp > @@ -607,11 +607,6 @@ int UVCCameraData::init(MediaDevice *media) > addControl(cid, info, &ctrls); > } > > - if (autoExposureMode_ && manualExposureMode_) { > - /* \todo Move this to the Camera class */ > - ctrls[&controls::AeEnable] = ControlInfo(false, true, true); > - } > - > controlInfo_ = ControlInfoMap(std::move(ctrls), controls::controls); > > /*
diff --git a/src/ipa/mali-c55/algorithms/agc.cpp b/src/ipa/mali-c55/algorithms/agc.cpp index 70667db34f1e..818cea35afa9 100644 --- a/src/ipa/mali-c55/algorithms/agc.cpp +++ b/src/ipa/mali-c55/algorithms/agc.cpp @@ -137,6 +137,7 @@ int Agc::init(IPAContext &context, const YamlObject &tuningData) if (ret) return ret; + /* \todo Support AnalogueGainMode and ExposureTimeMode */ context.ctrlMap[&controls::AeEnable] = ControlInfo(false, true); context.ctrlMap[&controls::DigitalGain] = ControlInfo( static_cast<float>(kMinDigitalGain), diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp index 137a0750017b..8a890d387efb 100644 --- a/src/ipa/rkisp1/algorithms/agc.cpp +++ b/src/ipa/rkisp1/algorithms/agc.cpp @@ -155,8 +155,6 @@ int Agc::init(IPAContext &context, const YamlObject &tuningData) ControlInfo({ { ControlValue(controls::AnalogueGainModeAuto), ControlValue(controls::AnalogueGainModeManual) } }, ControlValue(controls::AnalogueGainModeAuto)); - /* \todo Move this to the Camera class */ - context.ctrlMap[&controls::AeEnable] = ControlInfo(false, true, true); context.ctrlMap.merge(controls()); return 0; diff --git a/src/ipa/rpi/common/ipa_base.cpp b/src/ipa/rpi/common/ipa_base.cpp index 6565f5366312..059b1bd5942e 100644 --- a/src/ipa/rpi/common/ipa_base.cpp +++ b/src/ipa/rpi/common/ipa_base.cpp @@ -55,8 +55,6 @@ constexpr Duration controllerMinFrameDuration = 1.0s / 30.0; /* List of controls handled by the Raspberry Pi IPA */ const ControlInfoMap::Map ipaControls{ - /* \todo Move this to the Camera class */ - { &controls::AeEnable, ControlInfo(false, true, true) }, { &controls::ExposureTimeMode, ControlInfo({ { ControlValue(controls::ExposureTimeModeAuto), ControlValue(controls::ExposureTimeModeManual) } }, diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp index 665fc5157349..3d0782a9eed2 100644 --- a/src/libcamera/camera.cpp +++ b/src/libcamera/camera.cpp @@ -1374,25 +1374,6 @@ int Camera::queueRequest(Request *request) } } - /* Pre-process AeEnable. */ - ControlList &controls = request->controls(); - const auto &aeEnable = controls.get(controls::AeEnable); - if (aeEnable) { - if (_d()->controlInfo_.count(controls::AnalogueGainMode.id()) && - !controls.contains(controls::AnalogueGainMode.id())) { - controls.set(controls::AnalogueGainMode, - *aeEnable ? controls::AnalogueGainModeAuto - : controls::AnalogueGainModeManual); - } - - if (_d()->controlInfo_.count(controls::ExposureTimeMode.id()) && - !controls.contains(controls::ExposureTimeMode.id())) { - controls.set(controls::ExposureTimeMode, - *aeEnable ? controls::ExposureTimeModeAuto - : controls::ExposureTimeModeManual); - } - } - LayerManager *layerManager = d->pipe()->cameraManager()->_d()->layerManager(); layerManager->queueRequest(this, request); diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp index 4b5816dfdde0..ab12d5b5ae9a 100644 --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp @@ -607,11 +607,6 @@ int UVCCameraData::init(MediaDevice *media) addControl(cid, info, &ctrls); } - if (autoExposureMode_ && manualExposureMode_) { - /* \todo Move this to the Camera class */ - ctrls[&controls::AeEnable] = ControlInfo(false, true, true); - } - controlInfo_ = ControlInfoMap(std::move(ctrls), controls::controls); /*
Remove AeEnable handling from the Camera and all IPAs, as it is now handled by the inject_controls layer. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> --- The mali-c55 IPA needs to support AnalogueGainMode and ExposureTimeMode, but that is out of scope for this series. No change in v2 --- src/ipa/mali-c55/algorithms/agc.cpp | 1 + src/ipa/rkisp1/algorithms/agc.cpp | 2 -- src/ipa/rpi/common/ipa_base.cpp | 2 -- src/libcamera/camera.cpp | 19 ------------------- src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 5 ----- 5 files changed, 1 insertion(+), 28 deletions(-)