STRUCT V4L2_AV1_LOOP_RESTORATION(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

okay so this is the manual page for struct v4l2_..._restoration(9) from the Kernel API Manual, and the actual main character is struct v4l2_av1_loop_restoration β€” AV1 Loop Restauration as described in section 6.10.15 "Loop restoration params semantics" of the AV1 specification. yes bestie, β€œRestauration” is right there in the original, we are not fixing the icon πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

here is the exact shape, no edits, no vibes-based rewriting:

       struct v4l2_av1_loop_restoration {
           __u8 flags;
           __u8 lr_unit_shift;
           __u8 lr_uv_shift;
           __u8 reserved;
           enum v4l2_av1_frame_restoration_type
       frame_restoration_type[V4L2_AV1_NUM_PLANES_MAX];
           __u32 loop_restoration_size[V4L2_AV1_MAX_NUM_PLANES];
        };

πŸ’– Members πŸ’–

okay let’s go field by field, bestie β€” every single one is here:

  • flags β€” see V4L2_AV1_LOOP_RESTORATION_FLAG_{}. that’s the flag situation, periodt.
  • lr_unit_shift β€” specifies if the luma restoration size should be halved. half the luma size, got it? 🫢
  • lr_uv_shift β€” specifies if the chroma size should be half the luma size. chroma stays in its lane relative to luma ✨
  • reserved β€” padding field. Should be zeroed by applications. like fr fr, zero it β€” do not leave mystery bytes in there πŸ™ˆ
  • frame_restoration_type β€” specifies the type of restoration used for each plane. See enum v4l2_av1_frame_restoration_type. one type per plane, cute and organized πŸŽ€
  • loop_restoration_size β€” specifies the size of loop restoration units in units of samples in the current plane. samples, current plane, that’s the unit math πŸ’…

🌈 SEE ALSO 🌈

the kernel file is ./include/uapi/linux/v4l2-controls.h, and the whole group chat is:

  • 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_cdef(9)
  • enum v4l2_av1_segment_feature(9)
  • struct v4l2_av1_segmentation(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)

mwah πŸ’‹ footer check, bestie: this page lives under ./include/uapi/linux, it’s dated October 2026, and the footer title is struct v4l2_..._restoration(9) β€” go zero that reserved field and slay the rest of your day 🫢✨

πŸ“¦ where this page comes from