STRUCT V4L2_HEVC_DPB_ENTRY(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct v4l2_hevc_dpb_entry β€” HEVC decoded picture buffer entry ✨

okay so this is a page from the Kernel API Manual, bestie, and it's literally all about one lil struct. struct v4l2_hevc_dpb_entry is the HEVC decoded picture buffer entry β€” the little record that tells the kernel "hey, this frame right here? yeah, we're keeping it around as a reference." πŸŽ€


🌸 SYNOPSIS 🌸

struct v4l2_hevc_dpb_entry {
    __u64 timestamp;
    __u8 flags;
    __u8 field_pic;
    __u16 reserved;
    __s32 pic_order_cnt_val;
 };

that's the whole vibe. five fields, zero nonsense. let's go through them one by one because every single one matters πŸ’–


πŸ¦‹ Members πŸ¦‹

  • timestamp β€” the timestamp of the V4L2 capture buffer you're gonna use as a reference. like, which buffer, bestie? this one. 🫢
  • flags β€” the long term flag for the reference frame. it's a flag. it flags. iconic behavior honestly.
  • field_pic β€” tells you whether the reference is a field picture or a frame. two options, one byte, no cap.
  • reserved β€” padding field. ⚠️ this one should be zeroed by applications β€” do not be quirky with it, do not get creative, just zero it. fr fr.
  • pic_order_cnt_val β€” the picture order count of the current picture. yes it's a mouthful, yes it's important. 😭

🌈 SEE ALSO 🌈

so there's a Kernel file you should peek at: ./include/uapi/linux/v4l2-controls.h β€” that's where the enum lives, and honestly the rabbit hole goes deep from there. buckle up, here's the whole friend group πŸ‘‘

  • 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_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)

like… that's a lot of codecs in the group chat. h264, vp8, vp9, mpeg2, av1, hevc β€” the whole squad ate and left no crumbs πŸ”₯


okay that's the page!! mwah πŸ’‹ this one lives in ./include/uapi/linux, it's dated October 2026, and it's filed under struct v4l2_hevc_dpb_entry(9) β€” slay, go forth and zero your reserved field πŸ’œβœ¨

πŸ“¦ where this page comes from