From 091591b52e5535065eef141339c3d69406185136 Mon Sep 17 00:00:00 2001 From: Naushir Patuck Date: Tue, 24 Oct 2023 14:27:46 +0100 Subject: pipeline: rpi: Add some useful logging messages Add a bunch of logging messages that have come in handy debugging various issues with the pipeline handler code. Signed-off-by: Naushir Patuck Reviewed-by: Kieran Bingham Reviewed-by: Jacopo Mondi Signed-off-by: Laurent Pinchart --- src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 11 ++++++++++- src/libcamera/pipeline/rpi/vc4/vc4.cpp | 3 +++ 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'src/libcamera/pipeline') diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp index 9f788c9d..8e1cbbe6 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 a5cc4fc1..26102ea7 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; -- cgit v1.2.1