STRUCT HANTRO_AV1_DEC_HW_CTX(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct hantro_av1_dec_hw_ctx(9) β€” the Kernel API Manual, bestie edition ✨

okay so picture this: you're deep in the Kernel API Manual and you land on struct hantro_av1_dec_hw_ctx β€” yes that's the full name, yes it's a mouthful, no we're not shortening it, it's iconic. This is the AV1 decoder hardware context struct for the Hantro/Verisilicon fam, and it is packed with little buffers. Let's go 🫢


✨ SYNOPSIS ✨

lowkey the whole vibe is right here, bestie β€” every single field, no cap:

struct hantro_av1_dec_hw_ctx {
    struct hantro_aux_buf db_data_col;
    struct hantro_aux_buf db_ctrl_col;
    struct hantro_aux_buf cdef_col;
    struct hantro_aux_buf sr_col;
    struct hantro_aux_buf lr_col;
    struct hantro_aux_buf global_model;
    struct hantro_aux_buf tile_info;
    struct hantro_aux_buf segment;
    struct hantro_aux_buf film_grain;
    struct hantro_aux_buf prob_tbl;
    struct hantro_aux_buf prob_tbl_out;
    struct hantro_aux_buf tile_buf;
    struct hantro_av1_dec_ctrls ctrls;
    struct hantro_av1_frame_ref frame_refs[AV1_MAX_FRAME_BUF_COUNT];
    u32 ref_frame_sign_bias[V4L2_AV1_TOTAL_REFS_PER_FRAME];
    unsigned int num_tile_cols_allocated;
    struct av1cdfs *cdfs;
    struct mvcdfs  *cdfs_ndvc;
    struct av1cdfs default_cdfs;
    struct mvcdfs  default_cdfs_ndvc;
    struct av1cdfs cdfs_last[NUM_REF_FRAMES];
    struct mvcdfs  cdfs_last_ndvc[NUM_REF_FRAMES];
    int current_frame_index;
 };

πŸŽ€ MEMBERS πŸŽ€

okay bestie, here's the cast of characters, one by one, and every single one of them is serving a purpose πŸ’–

  • db_data_col β€” db tile col data buffer πŸ¦‹
  • db_ctrl_col β€” db tile col ctrl buffer
  • cdef_col β€” cdef tile col buffer
  • sr_col β€” sr tile col buffer
  • lr_col β€” lr tile col buffer
  • global_model β€” the global model buffer, she's got range ✨
  • tile_info β€” tile info buffer
  • segment β€” segmentation info buffer
  • film_grain β€” film grain buffer, aesthetic on purpose πŸŽ€
  • prob_tbl β€” probability table
  • prob_tbl_out β€” probability table output
  • tile_buf β€” tile buffer
  • ctrls β€” V4L2 controls attached to a run πŸ‘‘
  • frame_refs β€” reference frames info slots
  • ref_frame_sign_bias β€” array of sign bias
  • num_tile_cols_allocated β€” number of allocated tiles
  • cdfs β€” current probabilities structure
  • cdfs_ndvc β€” current mv probabilities structure
  • default_cdfs β€” default probabilities structure
  • default_cdfs_ndvc β€” default mv probabilties structure (yes, that's the original spelling, we do NOT correct the source, periodt)
  • cdfs_last β€” stored probabilities structures
  • cdfs_last_ndvc β€” stored mv probabilities structures
  • current_frame_index β€” index of the current in frame_refs array

🌈 SEE ALSO 🌈

this is the friend group, fr fr β€” Kernel file ./drivers/media/platform/verisilicon/hantro_hw.h plus all these icons:

  • struct hantro_aux_buf(9)
  • struct hantro_h264_dec_ctrls(9)
  • struct hantro_h264_dec_reflists(9)
  • struct hantro_h264_dec_hw_ctx(9)
  • struct hantro_hevc_dec_ctrls(9)
  • struct hantro_hevc_dec_hw_ctx(9)
  • struct hantro_mpeg2_dec_hw_ctx(9)
  • struct hantro_vp8_dec_hw_ctx(9)
  • struct hantro_vp9_frame_info(9)
  • struct hantro_vp9_dec_hw_ctx(9)
  • struct hantro_av1_dec_ctrls(9)
  • struct hantro_postproc_ctx(9)
  • struct hantro_postproc_ops(9)
  • struct hantro_codec_ops(9)
  • enum hantro_enc_fmt(9)

ngl bestie, if you got this far you're basically a kernel dev now. go touch some hantro_aux_buf πŸ’€

and that's the tea β˜• β€” this page came from ./drivers/media/platform/veris..., dated October 2026, and it's literally the struct hantr...1_dec_hw_ctx(9) glow-up. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from