[PATCH v2 5/6] pipeline: rpi: Remove ispOutputCount_ and ispOutputTotal_

Jacopo Mondi jacopo.mondi at ideasonboard.com
Thu Jun 5 09:28:28 CEST 2025


Hi Naush

On Thu, May 22, 2025 at 08:48:21AM +0100, Naushir Patuck wrote:
> With the drop frame logic removed from the pipeline handler, these
> member variables and not used, so remove them.
>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> Reviewed-by: David Plowman <david.plowman at raspberrypi.com>

Indeed, these also seems to be unused

Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>

Thanks
  j

> ---
>  src/libcamera/pipeline/rpi/common/pipeline_base.h |  6 +-----
>  src/libcamera/pipeline/rpi/pisp/pisp.cpp          | 12 ------------
>  src/libcamera/pipeline/rpi/vc4/vc4.cpp            | 15 ---------------
>  3 files changed, 1 insertion(+), 32 deletions(-)
>
> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.h b/src/libcamera/pipeline/rpi/common/pipeline_base.h
> index e27c4f860d1a..898f31577059 100644
> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.h
> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.h
> @@ -48,8 +48,7 @@ class CameraData : public Camera::Private
>  public:
>  	CameraData(PipelineHandler *pipe)
>  		: Camera::Private(pipe), state_(State::Stopped),
> -		  startupFrameCount_(0), invalidFrameCount_(0), buffersAllocated_(false),
> -		  ispOutputCount_(0), ispOutputTotal_(0)
> +		  startupFrameCount_(0), invalidFrameCount_(0), buffersAllocated_(false)
>  	{
>  	}
>
> @@ -179,9 +178,6 @@ protected:
>
>  	virtual void tryRunPipeline() = 0;
>
> -	unsigned int ispOutputCount_;
> -	unsigned int ispOutputTotal_;
> -
>  private:
>  	void checkRequestCompleted();
>  };
> diff --git a/src/libcamera/pipeline/rpi/pisp/pisp.cpp b/src/libcamera/pipeline/rpi/pisp/pisp.cpp
> index 91e7f4c94d96..ccf135c3d8ce 100644
> --- a/src/libcamera/pipeline/rpi/pisp/pisp.cpp
> +++ b/src/libcamera/pipeline/rpi/pisp/pisp.cpp
> @@ -1834,12 +1834,6 @@ void PiSPCameraData::beOutputDequeue(FrameBuffer *buffer)
>  		dmabufSyncEnd(buffer->planes()[0].fd);
>
>  	handleStreamBuffer(buffer, stream);
> -
> -	/*
> -	 * Increment the number of ISP outputs generated.
> -	 * This is needed to track dropped frames.
> -	 */
> -	ispOutputCount_++;
>  	handleState();
>  }
>
> @@ -1885,7 +1879,6 @@ void PiSPCameraData::prepareIspComplete(const ipa::RPi::BufferIds &buffers, bool
>  		 * If there is no need to run the Backend, just signal that the
>  		 * input buffer is completed and all Backend outputs are ready.
>  		 */
> -		ispOutputCount_ = ispOutputTotal_;
>  		buffer = cfe_[Cfe::Output0].getBuffers().at(bayerId).buffer;
>  		handleStreamBuffer(buffer, &cfe_[Cfe::Output0]);
>  	} else
> @@ -1994,7 +1987,6 @@ int PiSPCameraData::configureBe(const std::optional<ColorSpace> &yuvColorSpace)
>  	global.bayer_enables |= PISP_BE_BAYER_ENABLE_INPUT;
>  	global.bayer_order = toPiSPBayerOrder(cfeFormat.fourcc);
>
> -	ispOutputTotal_ = 1; /* Config buffer */
>  	if (PISP_IMAGE_FORMAT_COMPRESSED(inputFormat.format)) {
>  		pisp_decompress_config decompress;
>  		decompress.offset = DefaultCompressionOffset;
> @@ -2025,7 +2017,6 @@ int PiSPCameraData::configureBe(const std::optional<ColorSpace> &yuvColorSpace)
>  		setupOutputClipping(ispFormat0, outputFormat0);
>
>  		be_->SetOutputFormat(0, outputFormat0);
> -		ispOutputTotal_++;
>  	}
>
>  	if (global.rgb_enables & PISP_BE_RGB_ENABLE_OUTPUT1) {
> @@ -2049,7 +2040,6 @@ int PiSPCameraData::configureBe(const std::optional<ColorSpace> &yuvColorSpace)
>  		setupOutputClipping(ispFormat1, outputFormat1);
>
>  		be_->SetOutputFormat(1, outputFormat1);
> -		ispOutputTotal_++;
>  	}
>
>  	/* Setup the TDN I/O blocks in case TDN gets turned on later. */
> @@ -2256,8 +2246,6 @@ void PiSPCameraData::prepareCfe()
>
>  void PiSPCameraData::prepareBe(uint32_t bufferId, bool stitchSwapBuffers)
>  {
> -	ispOutputCount_ = 0;
> -
>  	FrameBuffer *buffer = cfe_[Cfe::Output0].getBuffers().at(bufferId).buffer;
>
>  	LOG(RPI, Debug) << "Input re-queue to ISP, buffer id " << bufferId
> diff --git a/src/libcamera/pipeline/rpi/vc4/vc4.cpp b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> index fe910bdf2ff9..ac6dab814d35 100644
> --- a/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> +++ b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> @@ -597,8 +597,6 @@ int Vc4CameraData::platformConfigure(const RPi::RPiCameraConfiguration *rpiConfi
>  		stream->setFlags(StreamFlag::External);
>  	}
>
> -	ispOutputTotal_ = outStreams.size();
> -
>  	/*
>  	 * If ISP::Output0 stream has not been configured by the application,
>  	 * we must allow the hardware to generate an output so that the data
> @@ -625,8 +623,6 @@ int Vc4CameraData::platformConfigure(const RPi::RPiCameraConfiguration *rpiConfi
>  			return -EINVAL;
>  		}
>
> -		ispOutputTotal_++;
> -
>  		LOG(RPI, Debug) << "Defaulting ISP Output0 format to "
>  				<< format;
>  	}
> @@ -662,8 +658,6 @@ int Vc4CameraData::platformConfigure(const RPi::RPiCameraConfiguration *rpiConfi
>  					<< ret;
>  			return -EINVAL;
>  		}
> -
> -		ispOutputTotal_++;
>  	}
>
>  	/* ISP statistics output format. */
> @@ -676,8 +670,6 @@ int Vc4CameraData::platformConfigure(const RPi::RPiCameraConfiguration *rpiConfi
>  		return ret;
>  	}
>
> -	ispOutputTotal_++;
> -
>  	/*
>  	 * Configure the Unicam embedded data output format only if the sensor
>  	 * supports it.
> @@ -843,12 +835,6 @@ void Vc4CameraData::ispOutputDequeue(FrameBuffer *buffer)
>  		handleStreamBuffer(buffer, stream);
>  	}
>
> -	/*
> -	 * Increment the number of ISP outputs generated.
> -	 * This is needed to track dropped frames.
> -	 */
> -	ispOutputCount_++;
> -
>  	handleState();
>  }
>
> @@ -880,7 +866,6 @@ void Vc4CameraData::prepareIspComplete(const ipa::RPi::BufferIds &buffers,
>  			<< ", timestamp: " << buffer->metadata().timestamp;
>
>  	isp_[Isp::Input].queueBuffer(buffer);
> -	ispOutputCount_ = 0;
>
>  	if (sensorMetadata_ && embeddedId) {
>  		buffer = unicam_[Unicam::Embedded].getBuffers().at(embeddedId & RPi::MaskID).buffer;
> --
> 2.43.0
>


More information about the libcamera-devel mailing list