ipa: rkisp1: Move Sharpness control creation to Filter algorithm
diff mbox series

Message ID 20250616221511.1374-1-laurent.pinchart@ideasonboard.com
State New
Headers show
Series
  • ipa: rkisp1: Move Sharpness control creation to Filter algorithm
Related show

Commit Message

Laurent Pinchart June 16, 2025, 10:15 p.m. UTC
The Sharpness control is used solely by the Filter algorithm. Create it
there, to avoid exposing it to applications when the algorithm is
disabled.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/ipa/rkisp1/algorithms/filter.cpp | 11 +++++++++++
 src/ipa/rkisp1/algorithms/filter.h   |  1 +
 src/ipa/rkisp1/rkisp1.cpp            |  1 -
 3 files changed, 12 insertions(+), 1 deletion(-)


base-commit: b3ff75d7589a263412ad63008b3c8518d40e6316
--
Regards,

Laurent Pinchart

Comments

Kieran Bingham June 17, 2025, 7:47 a.m. UTC | #1
Quoting Laurent Pinchart (2025-06-16 23:15:11)
> The Sharpness control is used solely by the Filter algorithm. Create it
> there, to avoid exposing it to applications when the algorithm is
> disabled.
> 

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>  src/ipa/rkisp1/algorithms/filter.cpp | 11 +++++++++++
>  src/ipa/rkisp1/algorithms/filter.h   |  1 +
>  src/ipa/rkisp1/rkisp1.cpp            |  1 -
>  3 files changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/src/ipa/rkisp1/algorithms/filter.cpp b/src/ipa/rkisp1/algorithms/filter.cpp
> index 7598ef8a9f47..8ad79801792f 100644
> --- a/src/ipa/rkisp1/algorithms/filter.cpp
> +++ b/src/ipa/rkisp1/algorithms/filter.cpp
> @@ -39,6 +39,17 @@ LOG_DEFINE_CATEGORY(RkISP1Filter)
>  static constexpr uint32_t kFiltLumWeightDefault = 0x00022040;
>  static constexpr uint32_t kFiltModeDefault = 0x000004f2;
> 
> +/**
> + * \copydoc libcamera::ipa::Algorithm::init
> + */
> +int Filter::init(IPAContext &context,
> +                [[maybe_unused]] const YamlObject &tuningData)
> +{
> +       auto &cmap = context.ctrlMap;
> +       cmap[&controls::Sharpness] = ControlInfo(0.0f, 10.0f, 1.0f);
> +
> +       return 0;
> +}
>  /**
>   * \copydoc libcamera::ipa::Algorithm::queueRequest
>   */
> diff --git a/src/ipa/rkisp1/algorithms/filter.h b/src/ipa/rkisp1/algorithms/filter.h
> index 8f858e574fa2..37d8938d37bd 100644
> --- a/src/ipa/rkisp1/algorithms/filter.h
> +++ b/src/ipa/rkisp1/algorithms/filter.h
> @@ -21,6 +21,7 @@ public:
>         Filter() = default;
>         ~Filter() = default;
> 
> +       int init(IPAContext &context, const YamlObject &tuningData) override;
>         void queueRequest(IPAContext &context, const uint32_t frame,
>                           IPAFrameContext &frameContext,
>                           const ControlList &controls) override;
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index 1ed7d7d92166..cf66d5553dcd 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -116,7 +116,6 @@ const IPAHwSettings ipaHwSettingsV12{
>  /* List of controls handled by the RkISP1 IPA */
>  const ControlInfoMap::Map rkisp1Controls{
>         { &controls::DebugMetadataEnable, ControlInfo(false, true, false) },
> -       { &controls::Sharpness, ControlInfo(0.0f, 10.0f, 1.0f) },
>         { &controls::draft::NoiseReductionMode, ControlInfo(controls::draft::NoiseReductionModeValues) },
>  };
> 
> 
> base-commit: b3ff75d7589a263412ad63008b3c8518d40e6316
> --
> Regards,
> 
> Laurent Pinchart
>
Paul Elder June 17, 2025, 9:58 a.m. UTC | #2
Quoting Laurent Pinchart (2025-06-17 07:15:11)
> The Sharpness control is used solely by the Filter algorithm. Create it
> there, to avoid exposing it to applications when the algorithm is
> disabled.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>

> ---
>  src/ipa/rkisp1/algorithms/filter.cpp | 11 +++++++++++
>  src/ipa/rkisp1/algorithms/filter.h   |  1 +
>  src/ipa/rkisp1/rkisp1.cpp            |  1 -
>  3 files changed, 12 insertions(+), 1 deletion(-)
> 
> diff --git a/src/ipa/rkisp1/algorithms/filter.cpp b/src/ipa/rkisp1/algorithms/filter.cpp
> index 7598ef8a9f47..8ad79801792f 100644
> --- a/src/ipa/rkisp1/algorithms/filter.cpp
> +++ b/src/ipa/rkisp1/algorithms/filter.cpp
> @@ -39,6 +39,17 @@ LOG_DEFINE_CATEGORY(RkISP1Filter)
>  static constexpr uint32_t kFiltLumWeightDefault = 0x00022040;
>  static constexpr uint32_t kFiltModeDefault = 0x000004f2;
> 
> +/**
> + * \copydoc libcamera::ipa::Algorithm::init
> + */
> +int Filter::init(IPAContext &context,
> +                [[maybe_unused]] const YamlObject &tuningData)
> +{
> +       auto &cmap = context.ctrlMap;
> +       cmap[&controls::Sharpness] = ControlInfo(0.0f, 10.0f, 1.0f);
> +
> +       return 0;
> +}
>  /**
>   * \copydoc libcamera::ipa::Algorithm::queueRequest
>   */
> diff --git a/src/ipa/rkisp1/algorithms/filter.h b/src/ipa/rkisp1/algorithms/filter.h
> index 8f858e574fa2..37d8938d37bd 100644
> --- a/src/ipa/rkisp1/algorithms/filter.h
> +++ b/src/ipa/rkisp1/algorithms/filter.h
> @@ -21,6 +21,7 @@ public:
>         Filter() = default;
>         ~Filter() = default;
> 
> +       int init(IPAContext &context, const YamlObject &tuningData) override;
>         void queueRequest(IPAContext &context, const uint32_t frame,
>                           IPAFrameContext &frameContext,
>                           const ControlList &controls) override;
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index 1ed7d7d92166..cf66d5553dcd 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -116,7 +116,6 @@ const IPAHwSettings ipaHwSettingsV12{
>  /* List of controls handled by the RkISP1 IPA */
>  const ControlInfoMap::Map rkisp1Controls{
>         { &controls::DebugMetadataEnable, ControlInfo(false, true, false) },
> -       { &controls::Sharpness, ControlInfo(0.0f, 10.0f, 1.0f) },
>         { &controls::draft::NoiseReductionMode, ControlInfo(controls::draft::NoiseReductionModeValues) },
>  };
> 
> 
> base-commit: b3ff75d7589a263412ad63008b3c8518d40e6316
> --
> Regards,
> 
> Laurent Pinchart
>

Patch
diff mbox series

diff --git a/src/ipa/rkisp1/algorithms/filter.cpp b/src/ipa/rkisp1/algorithms/filter.cpp
index 7598ef8a9f47..8ad79801792f 100644
--- a/src/ipa/rkisp1/algorithms/filter.cpp
+++ b/src/ipa/rkisp1/algorithms/filter.cpp
@@ -39,6 +39,17 @@  LOG_DEFINE_CATEGORY(RkISP1Filter)
 static constexpr uint32_t kFiltLumWeightDefault = 0x00022040;
 static constexpr uint32_t kFiltModeDefault = 0x000004f2;

+/**
+ * \copydoc libcamera::ipa::Algorithm::init
+ */
+int Filter::init(IPAContext &context,
+		 [[maybe_unused]] const YamlObject &tuningData)
+{
+	auto &cmap = context.ctrlMap;
+	cmap[&controls::Sharpness] = ControlInfo(0.0f, 10.0f, 1.0f);
+
+	return 0;
+}
 /**
  * \copydoc libcamera::ipa::Algorithm::queueRequest
  */
diff --git a/src/ipa/rkisp1/algorithms/filter.h b/src/ipa/rkisp1/algorithms/filter.h
index 8f858e574fa2..37d8938d37bd 100644
--- a/src/ipa/rkisp1/algorithms/filter.h
+++ b/src/ipa/rkisp1/algorithms/filter.h
@@ -21,6 +21,7 @@  public:
 	Filter() = default;
 	~Filter() = default;

+	int init(IPAContext &context, const YamlObject &tuningData) override;
 	void queueRequest(IPAContext &context, const uint32_t frame,
 			  IPAFrameContext &frameContext,
 			  const ControlList &controls) override;
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index 1ed7d7d92166..cf66d5553dcd 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -116,7 +116,6 @@  const IPAHwSettings ipaHwSettingsV12{
 /* List of controls handled by the RkISP1 IPA */
 const ControlInfoMap::Map rkisp1Controls{
 	{ &controls::DebugMetadataEnable, ControlInfo(false, true, false) },
-	{ &controls::Sharpness, ControlInfo(0.0f, 10.0f, 1.0f) },
 	{ &controls::draft::NoiseReductionMode, ControlInfo(controls::draft::NoiseReductionModeValues) },
 };