Message ID | 20250522075244.1198110-2-naush@raspberrypi.com |
---|---|
State | New |
Headers | show |
Series |
|
Related | show |
Hi Naush On Thu, May 22, 2025 at 08:48:17AM +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 cover the > usage when the sensor is known to produce a number of invalid/error > frames after stream-on. > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com> > Reviewed-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Thansk j > --- > include/libcamera/framebuffer.h | 1 + > src/libcamera/framebuffer.cpp | 13 ++++++++++--- > 2 files changed, 11 insertions(+), 3 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..93be497be052 100644 > --- a/src/libcamera/framebuffer.cpp > +++ b/src/libcamera/framebuffer.cpp > @@ -43,12 +43,19 @@ LOG_DEFINE_CATEGORY(Buffer) > * The frame has been captured with success and contains valid data. All fields > * 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. > + * The frame data is partly or fully corrupted, missing or otherwise invalid. > + * This can for instance indicate a hardware transmission error, or invalid data > + * produced by the sensor during its startup phase. The sequence and timestamp > + * fields of the FrameMetadata structure is valid, all 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 other fields of the FrameMetadata structure are > + * valid. > */ > > /** > -- > 2.43.0 >
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..93be497be052 100644 --- a/src/libcamera/framebuffer.cpp +++ b/src/libcamera/framebuffer.cpp @@ -43,12 +43,19 @@ LOG_DEFINE_CATEGORY(Buffer) * The frame has been captured with success and contains valid data. All fields * 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. + * The frame data is partly or fully corrupted, missing or otherwise invalid. + * This can for instance indicate a hardware transmission error, or invalid data + * produced by the sensor during its startup phase. The sequence and timestamp + * fields of the FrameMetadata structure is valid, all 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 other fields of the FrameMetadata structure are + * valid. */ /**