[v3,14/29] pipeline: rkisp1: Fix number of buffers imported into the dewarper
diff mbox series

Message ID 20251125162851.2301793-15-stefan.klug@ideasonboard.com
State Accepted
Headers show
Series
  • Full dewarper support on imx8mp
Related show

Commit Message

Stefan Klug Nov. 25, 2025, 4:28 p.m. UTC
When the dewarper is used, an addition buffer loop with
kRkISP1MinBufferCount buffers is created between ISP and dewarper. When
the dewarper is configured, it stores the bufferCount value of the
requested stream configurations. This number of buffers is then imported
when the dewarper is started.

On the input stream of the dewarper the bufferCount is currently left
unchanged, meaning it carries the bufferCount as supplied by the user
instead of the bufferCount of the additional loop. Fix that by setting
the bufferCount to kRkISP1MinBufferCount.

Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>

---

Changes in v3:
- Added this patch
---
 src/libcamera/pipeline/rkisp1/rkisp1.cpp | 1 +
 1 file changed, 1 insertion(+)

Comments

Kieran Bingham Nov. 25, 2025, 5:09 p.m. UTC | #1
Quoting Stefan Klug (2025-11-25 16:28:26)
> When the dewarper is used, an addition buffer loop with
> kRkISP1MinBufferCount buffers is created between ISP and dewarper. When
> the dewarper is configured, it stores the bufferCount value of the
> requested stream configurations. This number of buffers is then imported
> when the dewarper is started.
> 
> On the input stream of the dewarper the bufferCount is currently left
> unchanged, meaning it carries the bufferCount as supplied by the user
> instead of the bufferCount of the additional loop. Fix that by setting
> the bufferCount to kRkISP1MinBufferCount.
> 
> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
> 

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

> ---
> 
> Changes in v3:
> - Added this patch
> ---
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index 79c8717c839a..138e1d5bf06b 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -954,6 +954,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
>                         if (data->usesDewarper_) {
>                                 outputCfgs.push_back(const_cast<StreamConfiguration &>(cfg));
>  
> +                               ispCfg.bufferCount = kRkISP1MinBufferCount;
>                                 ispCfg.size = format.size;
>                                 ispCfg.stride =
>                                         PixelFormatInfo::info(ispCfg.pixelFormat)
> -- 
> 2.51.0
>

Patch
diff mbox series

diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index 79c8717c839a..138e1d5bf06b 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -954,6 +954,7 @@  int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
 			if (data->usesDewarper_) {
 				outputCfgs.push_back(const_cast<StreamConfiguration &>(cfg));
 
+				ispCfg.bufferCount = kRkISP1MinBufferCount;
 				ispCfg.size = format.size;
 				ispCfg.stride =
 					PixelFormatInfo::info(ispCfg.pixelFormat)