[PATCH v1 3/3] libcamera: pipeline: virtual: Set `FrameError` on error

Barnabás Pőcze pobrn at protonmail.com
Mon Feb 3 12:17:08 CET 2025


2025. február 3., hétfő 12:06 keltezéssel, Kieran Bingham <kieran.bingham at ideasonboard.com> írta:

> Quoting Barnabás Pőcze (2025-02-03 10:43:34)
> > Do not cancel, simply set the buffer's status to `FrameError`
> > to notify the user about the error condition.
> >
> > Signed-off-by: Barnabás Pőcze <pobrn at protonmail.com>
> > ---
> >  src/libcamera/pipeline/virtual/virtual.cpp | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/src/libcamera/pipeline/virtual/virtual.cpp b/src/libcamera/pipeline/virtual/virtual.cpp
> > index 1a75f35aa..cbba08c82 100644
> > --- a/src/libcamera/pipeline/virtual/virtual.cpp
> > +++ b/src/libcamera/pipeline/virtual/virtual.cpp
> > @@ -322,7 +322,7 @@ int PipelineHandlerVirtual::queueRequestDevice([[maybe_unused]] Camera *camera,
> >
> >                                 if (streamConfig.frameGenerator->generateFrame(
> >                                             stream->configuration().size, buffer))
> > -                                       buffer->_d()->cancel();
> > +                                       fmd.status = FrameMetadata::Status::FrameError;
> 
> I think this sounds right. I always worry we don't handle frame buffers
> correctly for errors vs shutdown paths where I think buffers get marked
> as error/cancel to let the application know not to re-submit them.
> 
> I think that API all feels awkward, but I suspect what you're doing here
> is correct as this is just if there is an error to generate the frame.
> 
> Can the generateFrame return errors? What might happen?

I don't think it can, realistically. 


> 
> anyway, it sounds correct already:
> 
> 
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> 
> >
> >                                 completeBuffer(request, buffer);
> >                                 break;
> > --
> > 2.48.1
> >
> >
> 


More information about the libcamera-devel mailing list