[libcamera-devel] [PATCH] pipeline: rpi: Add some useful logging messages

Naushir Patuck naush at raspberrypi.com
Tue Nov 21 09:37:05 CET 2023


Hi all,

Any chance to get another R-B tag on this one so it can be merged?

Thanks,
Naush

On Tue, 24 Oct 2023 at 14:27, Naushir Patuck <naush at raspberrypi.com> wrote:
>
> Add a bunch of logging messages that have come in handy debugging
> various issues with the pipeline handler code.
>
> 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