STRUCT V4L2_CTRL_H264_DECODE_PARAMS(9)
π struct v4l2_ctrl_h264_decode_params(9) π
okay so bestie, welcome to the Kernel API Manual β¨ β this page is all about the H264 decoding parameters struct, and honestly it's giving "main character of the stateless decoder world." Let's get into it π¬
πΈ NAME πΈ
struct v4l2_ctrl_h264_decode_params β the H264 decoding parameters, periodt π
β¨ SYNOPSIS β¨
struct v4l2_ctrl_h264_decode_params {
struct v4l2_h264_dpb_entry dpb[V4L2_H264_NUM_DPB_ENTRIES];
__u16 nal_ref_idc;
__u16 frame_num;
__s32 top_field_order_cnt;
__s32 bottom_field_order_cnt;
__u16 idr_pic_id;
__u16 pic_order_cnt_lsb;
__s32 delta_pic_order_cnt_bottom;
__s32 delta_pic_order_cnt0;
__s32 delta_pic_order_cnt1;
__u32 dec_ref_pic_marking_bit_size;
__u32 pic_order_cnt_bit_size;
__u32 slice_group_change_cycle;
__u32 reserved;
__u32 flags;
};
like, there she is π«Ά the whole glow-up in one struct. now let's meet every single member, no skipping, we're doing a full vibe check π
π Members π
dpbβ the decoded picture buffer. literally the memory closet where your reference frames hang out πnal_ref_idcβ a slice header syntax element. yep, that's the whole description, iykyk π§frame_numβ slice header syntax element. iconic, mysterious, does not elaborate β¨top_field_order_cntβ matches theTopFieldOrderCntpicture value. no cap πbottom_field_order_cntβ matches theBottomFieldOrderCntpicture value. also, heads up: which picture field it is gets indicated byv4l2_buffer.fieldπ don't forget that part!!idr_pic_idβ slice header syntax element. again. we love a recurring theme πpic_order_cnt_lsbβ slice header syntax element. bestie it's serving consistency πdelta_pic_order_cnt_bottomβ slice header syntax element. yes queen, another one πdelta_pic_order_cnt0β slice header syntax element. (the zero one, keep them straight!!) πdelta_pic_order_cnt1β slice header syntax element. (and the one one π)dec_ref_pic_marking_bit_sizeβ size in bits of thedec_ref_pic_markingsyntax element. bits!! very specific, very demure πpic_order_cnt_bit_sizeβ size in bits of the pic order count syntax. also in bits, we're counting very precisely here π₯slice_group_change_cycleβ slice header syntax element. yeah. her again πreservedβ padding field. should be zeroed by applications β like, do it. don't leave garbage in there, that's so not the move πflagsβ seeV4L2_H264_DECODE_PARAM_FLAG_{}for the details, that's where the flag lore lives β
π¦ SEE ALSO π¦
so this is the whole group chat of related things β Kernel file ./include/uapi/linux/v4l2-controls.h, plus:
- 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_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_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 π½οΈπ
cute little sign-off: this came out of ./include/uapi/linux, dated October 2026 ποΈβ¨ go forth and decode, you absolute icon ππ¦
π¦ 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