[libcamera-devel,2/4] ipa: rkisp1: Transfer queueRequest() call to each algorithm
diff mbox series

Message ID 20220704152318.221213-3-fsylvestre@baylibre.com
State Accepted
Headers show
Series
  • Add Demosaicing and Color Processing control for rkisp1
Related show

Commit Message

Florian Sylvestre July 4, 2022, 3:23 p.m. UTC
Implement rkisp1 queueRequest() function to update each algorithm with user
controls.

Signed-off-by: Florian Sylvestre <fsylvestre@baylibre.com>
---
 src/ipa/rkisp1/rkisp1.cpp | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Laurent Pinchart July 13, 2022, 1:10 a.m. UTC | #1
Hi Florian,

Thank you for the patch.

On Mon, Jul 04, 2022 at 05:23:16PM +0200, Florian Sylvestre via libcamera-devel wrote:
> Implement rkisp1 queueRequest() function to update each algorithm with user
> controls.
> 
> Signed-off-by: Florian Sylvestre <fsylvestre@baylibre.com>
> ---
>  src/ipa/rkisp1/rkisp1.cpp | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index a32bb9d1..9b0d675c 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -270,9 +270,10 @@ void IPARkISP1::unmapBuffers(const std::vector<unsigned int> &ids)
>  }
>  
>  void IPARkISP1::queueRequest([[maybe_unused]] const uint32_t frame,

You can drop this [[maybe_unused]] too.

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> -			     [[maybe_unused]] const ControlList &controls)
> +			     const ControlList &controls)
>  {
> -	/* \todo Start processing for 'frame' based on 'controls'. */
> +	for (auto const &algo : algorithms())
> +		algo->queueRequest(context_, frame, controls);
>  }
>  
>  void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
Kieran Bingham July 15, 2022, 9:10 a.m. UTC | #2
Quoting Laurent Pinchart via libcamera-devel (2022-07-13 02:10:39)
> Hi Florian,
> 
> Thank you for the patch.
> 
> On Mon, Jul 04, 2022 at 05:23:16PM +0200, Florian Sylvestre via libcamera-devel wrote:
> > Implement rkisp1 queueRequest() function to update each algorithm with user
> > controls.
> > 
> > Signed-off-by: Florian Sylvestre <fsylvestre@baylibre.com>
> > ---
> >  src/ipa/rkisp1/rkisp1.cpp | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> > index a32bb9d1..9b0d675c 100644
> > --- a/src/ipa/rkisp1/rkisp1.cpp
> > +++ b/src/ipa/rkisp1/rkisp1.cpp
> > @@ -270,9 +270,10 @@ void IPARkISP1::unmapBuffers(const std::vector<unsigned int> &ids)
> >  }
> >  
> >  void IPARkISP1::queueRequest([[maybe_unused]] const uint32_t frame,
> 
> You can drop this [[maybe_unused]] too.
> 
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> 
> > -                          [[maybe_unused]] const ControlList &controls)
> > +                          const ControlList &controls)
> >  {
> > -     /* \todo Start processing for 'frame' based on 'controls'. */

As mentioned in the API implementation for algo->queueRequest() - I
believe this should be obtaining and passing the FrameContext.

The action of passing these controls - is all state that needs to be
determined at later processing, so I believe it has to be done through
the queue.

If this is just passed as a nullptr here for now, I'm fine with that as
I don't think a FrameContext has been established for the RKISP yet.
(But we could also put one in as part of this series, or on top).


With that,

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

> > +     for (auto const &algo : algorithms())
> > +             algo->queueRequest(context_, frame, controls);
> >  }
> >  
> >  void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)
> 
> -- 
> Regards,
> 
> Laurent Pinchart

Patch
diff mbox series

diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index a32bb9d1..9b0d675c 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -270,9 +270,10 @@  void IPARkISP1::unmapBuffers(const std::vector<unsigned int> &ids)
 }
 
 void IPARkISP1::queueRequest([[maybe_unused]] const uint32_t frame,
-			     [[maybe_unused]] const ControlList &controls)
+			     const ControlList &controls)
 {
-	/* \todo Start processing for 'frame' based on 'controls'. */
+	for (auto const &algo : algorithms())
+		algo->queueRequest(context_, frame, controls);
 }
 
 void IPARkISP1::fillParamsBuffer(const uint32_t frame, const uint32_t bufferId)