STRUCT V4L2_AV1_SEGMENTATION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

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

okay bestie, welcome to the Kernel API Manual ✨ β€” today's main character is struct v4l2_av1_segmentation, and honestly? she's giving "small struct, big responsibility." πŸŽ€


🌸 NAME 🌸

struct v4l2_av1_segmentation β€” the AV1 Segmentation params, exactly as defined in section 6.8.13 "Segmentation params semantics" of the AV1 specification. no cap, that's the whole vibe. πŸ¦‹


✨ SYNOPSIS ✨

struct v4l2_av1_segmentation {
    __u8 flags;
    __u8 last_active_seg_id;
    __u8 feature_enabled[V4L2_AV1_MAX_SEGMENTS];
    __s16 feature_data[V4L2_AV1_MAX_SEGMENTS][V4L2_AV1_SEG_LVL_MAX];
 };

look at her. four members. absolutely ate. πŸ”₯


🫢 Members 🫢

bestie, let's go member by member, because every single one matters:

  • flags β€” this one just points you at V4L2_AV1_SEGMENTATION_FLAG_{}. yes, the curly braces are part of the name. iykyk. πŸ’œ
  • last_active_seg_id β€” she tells you the highest numbered segment id that has some enabled feature πŸ‘‘. why do we care? because when you're decoding the segment id, this is what lets you only decode the choices that correspond to segments that are actually used. no wasted effort, we love an efficient queen. ⭐
  • feature_enabled β€” a bitmask defining which features are enabled in each segment πŸŽ€. build a suitable mask with V4L2_AV1_SEGMENT_FEATURE_ENABLED and you're golden. πŸ’…
  • feature_data β€” the data attached to each feature. ⚠️ important caveat, don't skip this: the data entry is only valid if the feature is enabled. like, do not go reading that entry otherwise, fr fr. πŸ™ˆ

πŸ’– SEE ALSO πŸ’–

the extended friend group 🫢 β€” everybody she hangs out with:

  • the Kernel file ./include/uapi/linux/v4l2-controls.h
  • enum v4l2_mpeg_video_av1_profile(9)
  • enum v4l2_mpeg_video_av1_level(9)
  • enum v4l2_stateless_h264_decode_mode(9)
  • enum v4l2_stateless_h264_start_code(9)
  • struct v4l2_ctrl_h264_sps(9)
  • struct v4l2_ctrl_h264_pps(9)
  • struct v4l2_ctrl_h264_scaling_matrix(9)
  • struct v4l2_ctrl_h264_pred_weights(9)
  • struct v4l2_h264_reference(9)
  • struct v4l2_ctrl_h264_slice_params(9)
  • struct v4l2_h264_dpb_entry(9)
  • struct v4l2_ctrl_h264_decode_params(9)
  • struct v4l2_ctrl_fwht_params(9)
  • struct v4l2_vp8_segment(9)
  • struct v4l2_vp8_loop_filter(9)
  • struct v4l2_vp8_quantization(9)
  • struct v4l2_vp8_entropy(9)
  • struct v4l2_vp8_entropy_coder_state(9)
  • struct v4l2_ctrl_vp8_frame(9)
  • struct v4l2_ctrl_mpeg2_sequence(9)
  • struct v4l2_ctrl_mpeg2_picture(9)
  • struct v4l2_ctrl_mpeg2_quantisation(9)
  • struct v4l2_ctrl_hevc_sps(9)
  • struct v4l2_ctrl_hevc_pps(9)
  • struct v4l2_hevc_dpb_entry(9)
  • struct v4l2_hevc_pred_weight_table(9)
  • struct v4l2_ctrl_hevc_slice_params(9)
  • struct v4l2_ctrl_hevc_decode_params(9)
  • struct v4l2_ctrl_hevc_scaling_matrix(9)
  • struct v4l2_vp9_loop_filter(9)
  • struct v4l2_vp9_quantization(9)
  • struct v4l2_vp9_segmentation(9)
  • struct v4l2_ctrl_vp9_frame(9)
  • struct v4l2_vp9_mv_probs(9)
  • struct v4l2_ctrl_vp9_compressed_hdr(9)
  • struct v4l2_ctrl_av1_sequence(9)
  • struct v4l2_ctrl_av1_tile_group_entry(9)
  • enum v4l2_av1_warp_model(9)
  • enum v4l2_av1_reference_frame(9)
  • struct v4l2_av1_global_motion(9)
  • enum v4l2_av1_frame_restoration_type(9)
  • struct v4l2_av1_loop_restoration(9)
  • struct v4l2_av1_cdef(9)
  • enum v4l2_av1_segment_feature(9)
  • struct v4l2_av1_loop_filter(9)
  • struct v4l2_av1_quantization(9)
  • struct v4l2_av1_tile_info(9)
  • enum v4l2_av1_frame_type(9)
  • enum v4l2_av1_interpolation_filter(9)
  • enum v4l2_av1_tx_mode(9)
  • struct v4l2_ctrl_av1_frame(9)
  • struct v4l2_ctrl_av1_film_grain(9)

that's the whole group chat, all present and accounted for. 🌈


okay that's the page!! source/version tag: ./include/uapi/linux, dated October 2026 β€” go off, you absolute icon πŸ‘‘. mwah, drink some water, and don't forget to check feature_enabled before you touch feature_data. periodt. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from