STRUCT V4L2_MBUS_FRAME_DESC_ENTRY(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct v4l2_mbus_frame_desc_entry(9) πŸ’…

okay bestie, welcome to the Kernel API Manual β€” we're looking at the media bus frame description structure today and honestly? it's giving "small struct, big responsibilities" ✨


🌸 NAME 🌸

struct v4l2_mbus_frame_desc_entry β€” the media bus frame description structure πŸ’« that's literally the whole name, she's self-explanatory and she knows it


✨ SYNOPSIS ✨

struct v4l2_mbus_frame_desc_entry {
    enum v4l2_mbus_frame_desc_flags flags;
    u32 stream;
    u32 pixelcode;
    u32 length;
    union {
      struct v4l2_mbus_frame_desc_entry_csi2 csi2;
    } bus;
 };

no cap, that's the whole layout β€” one struct, a bunch of u32s, and a little union tucked inside like a secret πŸŽ€


πŸ¦‹ Members πŸ¦‹

  • flags β€” bitmask flags, as defined by enum v4l2_mbus_frame_desc_flags. think of it as the vibe check bitfield πŸ‘‘
  • stream β€” stream in routing configuration. which stream are we talking about, bestie? this one πŸ’…
  • pixelcode β€” media bus pixel code, valid if flags FRAME_DESC_FL_BLOB is not set. so if BLOB mode is off, this field is the main character 🌈
  • length β€” number of octets per frame, valid if flags V4L2_MBUS_FRAME_DESC_FL_LEN_MAX is set. only counts when LEN_MAX is on, periodt πŸ”₯
  • bus β€” Bus-specific frame descriptor parameters. the "it depends on the bus" section, iykyk 🚌
  • bus.csi2 β€” CSI-2-specific bus configuration. the CSI-2 girlies get their own little corner πŸ’–

🫢 SEE ALSO 🫢

fr fr, this is the long one, so buckle up β€” the kernel file lives at ./include/media/v4l2-subdev.h and it's connected to so many friends:

struct v4l2_decode_vbi_line(9), enum v4l2_subdev_io_pin_bits(9), struct v4l2_subdev_io_pin_config(9), struct v4l2_subdev_core_ops(9), struct v4l2_subdev_tuner_ops(9), struct v4l2_subdev_audio_ops(9), struct v4l2_mbus_frame_desc_entry_csi2(9), enum v4l2_mbus_frame_desc_flags(9), enum v4l2_mbus_frame_desc_type(9), struct v4l2_mbus_frame_desc(9), enum v4l2_subdev_pre_streamon_flags(9), struct v4l2_subdev_video_ops(9), struct v4l2_subdev_vbi_ops(9), struct v4l2_subdev_sensor_ops(9), enum v4l2_subdev_ir_mode(9), struct v4l2_subdev_ir_parameters(9), struct v4l2_subdev_ir_ops(9), struct v4l2_subdev_pad_config(9), struct v4l2_subdev_stream_configs(9), struct v4l2_subdev_krouting(9), struct v4l2_subdev_state(9), struct v4l2_subdev_pad_ops(9), struct v4l2_subdev_ops(9), struct v4l2_subdev_internal_ops(9), struct v4l2_subdev_platform_data(9), struct v4l2_subdev(9), media_entity_to_v4l2_subdev(9), vdev_to_v4l2_subdev(9), struct v4l2_subdev_fh(9), to_v4l2_subdev_fh(9), v4l2_set_subdevdata(9), v4l2_get_subdevdata(9), v4l2_set_subdev_hostdata(9), v4l2_get_subdev_hostdata(9), v4l2_subdev_get_fwnode_pad_1_to_1(9), v4l2_subdev_link_validate_default(9), v4l2_subdev_link_validate(9), v4l2_subdev_has_pad_interdep(9), __v4l2_subdev_state_alloc(9), __v4l2_subdev_state_free(9), v4l2_subdev_init_finalize(9), v4l2_subdev_cleanup(9), v4l2_subdev_state_get_format(9), v4l2_subdev_state_get_crop(9), v4l2_subdev_state_get_compose(9), v4l2_subdev_state_get_interval(9), v4l2_subdev_get_fmt(9), v4l2_subdev_get_frame_interval(9), v4l2_subdev_set_routing(9), for_each_active_route(9), v4l2_subdev_set_routing_with_fmt(9), v4l2_subdev_routing_find_opposite_end(9), v4l2_subdev_state_get_opposite_stream_format(9), v4l2_subdev_state_xlate_streams(9), enum v4l2_subdev_routing_restriction(9), v4l2_subdev_routing_validate(9), v4l2_subdev_enable_streams(9), v4l2_subdev_disable_streams(9), v4l2_subdev_s_stream_helper(9), __v4l2_subdev_get_frame_desc_passthrough(9), v4l2_subdev_get_frame_desc_passthrough(9), v4l2_subdev_lock_state(9), v4l2_subdev_unlock_state(9), v4l2_subdev_lock_states(9), v4l2_subdev_unlock_states(9), v4l2_subdev_get_unlocked_active_state(9), v4l2_subdev_get_locked_active_state(9), v4l2_subdev_lock_and_get_active_state(9), v4l2_subdev_init(9), v4l2_subdev_call(9), v4l2_subdev_call_state_active(9), v4l2_subdev_call_state_try(9), v4l2_subdev_has_op(9), v4l2_subdev_notify_event(9), v4l2_subdev_is_streaming(9) πŸ’€ that's the whole squad, no skips

ngl if you made it through that list you deserve a little treat πŸ“

k bye bestie, this page came straight out of ./include/media, dated October 2026, and it's part of the Kernel API Manual β€” go read some subdev docs and slay πŸ’œπŸ§š

πŸ“¦ where this page comes from