[libcamera-devel] [PATCH 3/9] libcamera: pipeline: raspberrypi: Add some debug logging
Naushir Patuck
naush at raspberrypi.com
Mon Jul 13 15:05:08 CEST 2020
Hi Niklas,
On Mon, 13 Jul 2020 at 12:39, Niklas Söderlund
<niklas.soderlund at ragnatech.se> wrote:
>
> Hi Naushir,
>
> Thanks for your work.
>
> On 2020-07-13 09:47:22 +0100, Naushir Patuck wrote:
> > No functional changes, only added some more trace points.
> >
> > Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> > ---
> > src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 9 ++++++++-
> > 1 file changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> > index 8b6f578f..65c8557d 100644
> > --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> > +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> > @@ -1175,6 +1175,11 @@ void RPiCameraData::ispInputDequeue(FrameBuffer *buffer)
> > if (state_ == State::Stopped)
> > return;
> >
> > + LOG(RPI, Debug) << "Stream ISP Input buffer complete"
> > + << ", buffer id " << buffer->cookie()
>
> This worries me a bit. For buffers coming from the application the
> cookie is controlled by the application. This means that pipeline
> handlers can't set the cookie for any buffer it receives in a Request.
> Maybe we need to create something in libcamera core to allow
> pipelines/IPA to have an internal cookie value for buffers?
>
Actually I did not realise that the application was meant to use the
cookie. I thought it was a pipeline handler thing to identify
buffers.
> Or maybe I'm misunderstanding the code and cookies are only used for
> buffers that are not seen by the applications at all (such as ISP
> statistics and parameters)?
This is correct, it was only used for internal buffers, but I relied
on it for this change as well. This is not a problem, I use it
currently to identify buffers passed to/from the IPA, and I can use a
simple linear index to do the same.
>
> > + << ", timestamp: " << buffer->metadata().timestamp;
> > +
> > + /* The ISP input buffer gets re-queued into Unicam. */
> > handleStreamBuffer(buffer, &unicam_[Unicam::Image]);
> > handleState();
> > }
> > @@ -1339,6 +1344,8 @@ void RPiCameraData::checkRequestCompleted()
> > pipe_->completeRequest(camera_, request);
> > requestQueue_.pop_front();
> > requestCompleted = true;
> > +
> > + LOG(RPI, Debug) << "Request is complete";
> > }
> >
> > /*
> > @@ -1477,7 +1484,7 @@ FrameBuffer *RPiCameraData::updateQueue(std::queue<FrameBuffer *> &q, uint64_t t
> > if (b->metadata().timestamp < timestamp) {
> > q.pop();
> > dev->queueBuffer(b);
> > - LOG(RPI, Error) << "Dropping input frame!";
> > + LOG(RPI, Warning) << "Dropping input frame!";
> > } else if (b->metadata().timestamp == timestamp) {
> > /* The calling function will pop the item from the queue. */
> > return b;
> > --
> > 2.25.1
> >
> > _______________________________________________
> > libcamera-devel mailing list
> > libcamera-devel at lists.libcamera.org
> > https://lists.libcamera.org/listinfo/libcamera-devel
>
> --
> Regards,
> Niklas Söderlund
Regards,
Naush
More information about the libcamera-devel
mailing list