[PATCH v2] libcamera: Make FrameBuffer status default to FrameSuccess

Jacopo Mondi jacopo.mondi at ideasonboard.com
Mon Sep 9 09:33:07 CEST 2024


Hi

On Mon, Sep 09, 2024 at 05:34:19AM GMT, Harvey Yang wrote:
> From: Han-Lin Chen <hanlinchen at chromium.org>
>
> To solve issues when platforms not following V4L2 spec and frame
> buffers not going through V4L2VideoDevice, setting default values
> to FrameMetadata's member variables.

I still think this patch works around a faulty implementation, however
initializing class members to sane defaults certainly doesn't hurt.

>
> Signed-off-by: Han-Lin Chen <hanlinchen at chromium.org>
> Co-developed-by: Harvey Yang <chenghaoyang at chromium.org>
> ---
>  include/libcamera/framebuffer.h | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/include/libcamera/framebuffer.h b/include/libcamera/framebuffer.h
> index ff839243..8dae747c 100644
> --- a/include/libcamera/framebuffer.h
> +++ b/include/libcamera/framebuffer.h
> @@ -32,9 +32,9 @@ struct FrameMetadata {
>  		unsigned int bytesused;
>  	};
>
> -	Status status;
> -	unsigned int sequence;
> -	uint64_t timestamp;
> +	Status status = FrameSuccess;

I wonder if this shouldn't be the other way around, make it Fail by
default to make sure the component that handles the buffers correctly
set their status.

> +	unsigned int sequence = 0;
> +	uint64_t timestamp = 0;

These ones are indeed sane

>
>  	Span<Plane> planes() { return planes_; }
>  	Span<const Plane> planes() const { return planes_; }
> --
> 2.46.0.469.g59c65b2a67-goog
>


More information about the libcamera-devel mailing list