[libcamera-devel] [PATCH] pipeline: rpi: Add some useful logging messages
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Nov 6 12:47:28 CET 2023
Quoting Naushir Patuck via libcamera-devel (2023-10-24 14:27:46)
> Add a bunch of logging messages that have come in handy debugging
> various issues with the pipeline handler code.
>
No specific objection to these, but some of them sound more like
'tracepoints'. Maybe it's worth looking at that more in the future ...
but for now I'd say:
Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> ---
> src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 11 ++++++++++-
> src/libcamera/pipeline/rpi/vc4/vc4.cpp | 3 +++
> 2 files changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> index 9f788c9d1bc2..8e1cbbe67a52 100644
> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp
> @@ -731,7 +731,8 @@ int PipelineHandlerBase::queueRequestDevice(Camera *camera, Request *request)
> if (!data->isRunning())
> return -EINVAL;
>
> - LOG(RPI, Debug) << "queueRequestDevice: New request.";
> + LOG(RPI, Debug) << "queueRequestDevice: New request sequence: "
> + << request->sequence();
>
> /* Push all buffers supplied in the Request to the respective streams. */
> for (auto stream : data->streams_) {
> @@ -1436,6 +1437,8 @@ void CameraData::handleStreamBuffer(FrameBuffer *buffer, RPi::Stream *stream)
> * Tag the buffer as completed, returning it to the
> * application.
> */
> + LOG(RPI, Debug) << "Completing request buffer for stream "
> + << stream->name();
> pipe()->completeBuffer(request, buffer);
> } else {
> /*
> @@ -1444,6 +1447,8 @@ void CameraData::handleStreamBuffer(FrameBuffer *buffer, RPi::Stream *stream)
> * unconditionally for internal streams), or there is no pending
> * request, so we can recycle it.
> */
> + LOG(RPI, Debug) << "Returning buffer to stream "
> + << stream->name();
> stream->returnBuffer(buffer);
> }
> }
> @@ -1487,6 +1492,9 @@ void CameraData::checkRequestCompleted()
> if (state_ != State::IpaComplete)
> return;
>
> + LOG(RPI, Debug) << "Completing request sequence: "
> + << request->sequence();
> +
> pipe()->completeRequest(request);
> requestQueue_.pop();
> requestCompleted = true;
> @@ -1499,6 +1507,7 @@ void CameraData::checkRequestCompleted()
> if (state_ == State::IpaComplete &&
> ((ispOutputCount_ == ispOutputTotal_ && dropFrameCount_) ||
> requestCompleted)) {
> + LOG(RPI, Debug) << "Going into Idle state";
> state_ = State::Idle;
> if (dropFrameCount_) {
> dropFrameCount_--;
> diff --git a/src/libcamera/pipeline/rpi/vc4/vc4.cpp b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> index 616e0bc95021..816de14e5b22 100644
> --- a/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> +++ b/src/libcamera/pipeline/rpi/vc4/vc4.cpp
> @@ -283,6 +283,9 @@ int PipelineHandlerVc4::prepareBuffers(Camera *camera)
> numBuffers = 1;
> }
>
> + LOG(RPI, Debug) << "Preparing " << numBuffers
> + << " buffers for stream " << stream->name();
> +
> ret = stream->prepareBuffers(numBuffers);
> if (ret < 0)
> return ret;
> --
> 2.34.1
>
More information about the libcamera-devel
mailing list