STRUCT HANTRO_HEVC_DEC_HW_CTX(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct hantro_hevc_dec_hw_ctx(9) πŸŽ€

okay so welcome to the Kernel API Manual bestie, this is the page for struct hantro_hevc_dec_hw_ctx and honestly? it's giving "the hardware context that holds ALL the HEVC decoder's little side quests." every field is a buffer, a counter, or a control, and we're gonna go through every single one. no skipping. periodt. πŸ’…


✨ NAME ✨

struct hantro_hevc_dec_hw_ctx β€”

and that's it. that's the whole description. the original literally leaves it blank after the dash 😭 so like, no cap, the struct introduces itself and then says nothing. iconic behaviour honestly, main character energy. we move on. πŸ’€


✨ SYNOPSIS ✨

struct hantro_hevc_dec_hw_ctx {
    struct hantro_aux_buf tile_sizes;
    struct hantro_aux_buf tile_filter;
    struct hantro_aux_buf tile_sao;
    struct hantro_aux_buf tile_bsd;
    struct hantro_aux_buf ref_bufs[NUM_REF_PICTURES];
    struct hantro_aux_buf scaling_lists;
    s32 ref_bufs_poc[NUM_REF_PICTURES];
    u32 ref_bufs_used;
    struct hantro_hevc_dec_ctrls ctrls;
    unsigned int num_tile_cols_allocated;
    bool use_compression;
};

look at her. eleven members. every one of them copy-pasted exactly, don't come for me 🫢


✨ Members ✨

so here's the full roster, one bullet per member, because we do NOT summarise here:

  • tile_sizes β€” the tile sizes buffer. she holds the sizes. of the tiles. that's the whole gig ✨
  • tile_filter β€” the tile vertical filter buffer 🧚
  • tile_sao β€” the tile SAO buffer. SAO staying in her own lane, we love to see it πŸ’œ
  • tile_bsd β€” the tile BSD control buffer πŸŽ€
  • ref_bufs β€” the internal reference buffers. note the [NUM_REF_PICTURES] β€” she's an array, she's got room, she's booked and busy 🌸
  • scaling_lists β€” the scaling lists buffer πŸ“‹
  • ref_bufs_poc β€” the internal reference buffers picture order count. it's a s32 array, also [NUM_REF_PICTURES], also thriving πŸ¦‹
  • ref_bufs_used β€” a u32 bitfield of used reference buffers. one bit per vibe, lowkey πŸ‘‘
  • ctrls β€” the V4L2 controls attached to a run. a struct hantro_hevc_dec_ctrls, living her best life inside another struct πŸŽ€
  • num_tile_cols_allocated β€” the number of allocated tiles. (yes the field says cols, yes the description says tiles, yes we are reporting both exactly as written, don't shoot the messenger πŸ™ˆ)
  • use_compression β€” a bool that says whether to use reference buffer compression. true or false, no in-between, we stan a decisive queen ✨

✨ SEE ALSO ✨

okay so the kernel file this lives in is ./drivers/media/platform/verisilicon/hantro_hw.h and it has SO many friends, look at this friend group, it's giving reunion tour 🌈:

  • 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_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_av1_dec_hw_ctx(9)
  • struct hantro_postproc_ctx(9)
  • struct hantro_postproc_ops(9)
  • struct hantro_codec_ops(9)
  • enum hantro_enc_fmt(9)

every codec showed up. h264, hevc, mpeg2, vp8, vp9, av1, postproc, codec ops, enc fmt β€” the whole group chat is here and they all ate πŸ’…πŸ”₯


ok that's the page!! go read hantro_hw.h if you wanna see her in her natural habitat, iykyk πŸ¦‹

and finally, the cute sign-off you were promised: this came from ./drivers/media/platform/veris... and it's dated October 2026 β€” so like, she's from the future, she's timeless, she's built different β­πŸ’–πŸŒΈ mwah, bye bestie!! 🫢

πŸ“¦ where this page comes from