STRUCT V4L2_ISP_BUFFER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, welcome to the Kernel API Manual page for struct v4l2_isp_buffer(9), aka the V4L2 extensible buffer πŸ’…βœ¨

🌸 NAME 🌸

struct v4l2_isp_buffer β€” V4L2 extensible buffer, periodt πŸ’–

πŸŽ€ SYNOPSIS πŸŽ€

       struct v4l2_isp_buffer {
           __u32 version;
           __u32 data_size;
           __u8 data[];
        };

πŸ’… Members πŸ’…

  • version β€” the extensible buffer version, and it's driver-specific πŸ‘€
  • data_size β€” the data effective size, excluding this header, fr fr
  • data β€” the configuration or statistics data, iconic πŸ’–

✨ Description ✨

This structure contains ISP configuration parameters or ISP hardware statistics serialized into a data buffer. Like, it's giving "one buffer to hold the whole vibe" πŸ¦‹. Each block is represented by a block-specific structure which contains a :c:type: entry for v4l2_isp_block_header as first member.

When used for ISP parameters, userspace populates the data buffer with configuration parameters for the blocks that it intends to configure. As a consequence, the data buffer effective size changes according to the number of ISP blocks that userspace intends to configure. Slay, dynamic sizing πŸ’….

When used to report ISP statistics, the driver populates the data buffer with statistics for each supported measurement block. Main character energy from the driver, honestly πŸ‘‘.

The buffer is versioned by the version field to allow modifying and extending its definition. The writer shall populate the version field to inform the reader about the version it intends to use. The reader will parse and handle the data buffer according to the data layout specific to the indicated version and return an error if the desired version is not supported. No cap: unsupported version = error, bestie 😭.

For each ISP block, a block-specific structure is appended to the data buffer, one after the other without gaps in between. The writer shall populate the data_size field with the effective size, in bytes, of the data buffer. Like, no sneaky gaps, and data_size has to be the real byte count 🌟.

πŸ¦‹ SEE ALSO πŸ¦‹


sending you off from ./include/uapi/linux/media πŸ’– β€” October 2026, struct v4l2_isp_buffer(9) β€” mwah, bye bestie 🫢

πŸ“¦ where this page comes from