STRUCT V4L2_VP9_LOOP_FILTER(9)
π struct v4l2_vp9_loop_filter(9) β like, the Kernel API Manual bestie β¨
okay so bestie, gather round, because we're about to get into struct v4l2_vp9_loop_filter and honestly? it's giving "small struct, big responsibilities" π this is the VP9 loop filter parameters situation and you're gonna understand it fr fr.
πΈ NAME πΈ
struct v4l2_vp9_loop_filter β VP9 loop filter parameters π
β¨ SYNOPSIS β¨
like, here's the whole vibe, character for character, no cap:
struct v4l2_vp9_loop_filter {
__s8 ref_deltas[4];
__s8 mode_deltas[2];
__u8 level;
__u8 sharpness;
__u8 flags;
__u8 reserved[7];
};
π¦ Members π¦
ref_deltasβ this one holds the adjustment you need for the filter level, based on whichever reference frame got chosen π and listen: if this syntax element is not present in the bitstream, users should pass its last value. that's the rule, periodt.mode_deltasβ same energy, but for the chosen mode π« it's the adjustment needed for the filter level based on the mode. and yup, if this syntax element isn't present in the bitstream, users should pass its last value too. iykyk.levelβ indicates the loop filter strength π₯sharpnessβ indicates the sharpness level βflagsβ a combination ofV4L2_VP9_LOOP_FILTER_FLAG_{}flags πreservedβ padding field π«Ά and it should be zeroed by applications. not me reminding you twice, but like, zero it. π
π Description π
This structure contains all loop filter related parameters. See sections π
ngl the original just trails off right there with "See sections" and honestly? iconic cliffhanger behaviour π we're keeping it exactly as it is, no invented lore.
π§ SEE ALSO π§
Kernel file ./include/uapi/linux/v4l2-controls.h β and now the whole friend group, in order, because every single one of them is invited to the function π
:
- 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_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_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)
that's the whole page bestie, you ate that π and like, before you go β this little beauty lives in ./include/uapi/linux, dated October 2026, and it's called struct v4l2_vp9_loop_filter(9). mwah, go forth and zero your reserved fields πβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms