[PATCH v1 1/6] libcamera: framebuffer: Add FrameMetadata::Status::FrameStartup

Naushir Patuck naush at raspberrypi.com
Wed May 21 12:36:30 CEST 2025


Hi Jacopo,

On Wed, 21 May 2025 at 11:35, Jacopo Mondi <jacopo.mondi at ideasonboard.com>
wrote:

> Hi Naush
>   one more question on this patch
>
> On Mon, May 19, 2025 at 10:20:49AM +0100, Naushir Patuck wrote:
> > Add a new status enum, FrameStartup, used to denote that even though
> > the frame has been successfully captured, the IQ parameters set by the
> > IPA will cause the frame to be unusable and applications are advised to
> > not consume this frame. An example of this would be on a cold-start of
> > the 3A algorithms, and there will be large oscillations to converge to
> > a stable state quickly.
> >
> > Additional, update the definition of the FrameError state to include its
> > usage when the sensor is known to produce a number of invalid/error
> > frames after stream-on.
> >
> > Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> > ---
> >  include/libcamera/framebuffer.h |  1 +
> >  src/libcamera/framebuffer.cpp   | 11 +++++++++--
> >  2 files changed, 10 insertions(+), 2 deletions(-)
> >
> > diff --git a/include/libcamera/framebuffer.h
> b/include/libcamera/framebuffer.h
> > index ff83924300ac..e83825b466aa 100644
> > --- a/include/libcamera/framebuffer.h
> > +++ b/include/libcamera/framebuffer.h
> > @@ -26,6 +26,7 @@ struct FrameMetadata {
> >               FrameSuccess,
> >               FrameError,
> >               FrameCancelled,
> > +             FrameStartup,
> >       };
> >
> >       struct Plane {
> > diff --git a/src/libcamera/framebuffer.cpp
> b/src/libcamera/framebuffer.cpp
> > index 826848f75a56..36e56d593bc3 100644
> > --- a/src/libcamera/framebuffer.cpp
> > +++ b/src/libcamera/framebuffer.cpp
> > @@ -44,11 +44,18 @@ LOG_DEFINE_CATEGORY(Buffer)
> >   * of the FrameMetadata structure are valid.
> >   * \var FrameMetadata::FrameError
> >   * An error occurred during capture of the frame. The frame data may be
> partly
> > - * or fully invalid. The sequence and timestamp fields of the
> FrameMetadata
> > - * structure is valid, the other fields may be invalid.
> > + * or fully invalid. This status may also indicate an invalid frame
> produced by
> > + * the sensor during its startup or restart phase. The sequence and
> timestamp
> > + * fields of the FrameMetadata structure is valid, the other fields may
> be
> > + * invalid.
> >   * \var FrameMetadata::FrameCancelled
> >   * Capture stopped before the frame completed. The frame data is not
> valid. All
> >   * fields of the FrameMetadata structure but the status field are
> invalid.
> > + * \var FrameMetadata::FrameStartup The frame has been successfully
> captured.
> > + * However, the IPA is in a cold-start or reset phase and will result
> in image
> > + * quality parameters producing unusable images. Applications are
> recommended to
> > + * not consume these frames. All fields of the FrameMetadata structure
> are
> > + * valid.
>
> Will the metadata associated with a FrameStartup frame be considered
> valid ?
>

Yes, all metadata associated with  FrameStartup ought to be accurate/valid.

Regards,
Naush


> >   */
> >
> >  /**
> > --
> > 2.43.0
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.libcamera.org/pipermail/libcamera-devel/attachments/20250521/a14f86bf/attachment.htm>


More information about the libcamera-devel mailing list