STRUCT HANTRO_VP9_DEC_HW_CTX(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ‘‘ NAME πŸ‘‘

struct hantro_vp9_dec_hw_ctx β€” bestie, literally the whole hardware decoding context for Hantro's VP9 decoder ✨ (the original page gives no description line, so yeah, that's it, that's the whole vibe πŸŽ€)

Also hi, welcome to the Kernel API Manual β€” that's the manual we're in, consider it the group chat's name πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

struct hantro_vp9_dec_hw_ctx {
    struct hantro_aux_buf tile_edge;
    struct hantro_aux_buf segment_map;
    struct hantro_aux_buf misc;
    struct v4l2_vp9_frame_symbol_counts cnts;
    struct v4l2_vp9_frame_context probability_tables;
    struct v4l2_vp9_frame_context frame_context[4];
    struct hantro_vp9_frame_info cur;
    struct hantro_vp9_frame_info last;
    unsigned int bsd_ctrl_offset;
    unsigned int segment_map_size;
    unsigned int ctx_counters_offset;
    unsigned int tile_info_offset;
    unsigned short tile_r_info[MAX_SB_ROWS];
    unsigned short tile_c_info[MAX_SB_COLS];
    unsigned int last_tile_r;
    unsigned int last_tile_c;
    unsigned int last_sbs_r;
    unsigned int last_sbs_c;
    unsigned int active_segment;
    u8 feature_enabled[8];
    s16 feature_data[8][4];
 };

Look at her. Structured. Organized. Main character energy fr fr 🌈


πŸ’– Members πŸ’–

Okay so every single field, one by one, no skips, no cap 🫢

  • tile_edge β€” auxiliary DMA buffer for tile edge processing 🧚
  • segment_map β€” auxiliary DMA buffer for segment map πŸ—ΊοΈ
  • misc β€” auxiliary DMA buffer for tile info, probabilities and hw counters ✨
  • cnts β€” vp9 library struct for abstracting hw counters access πŸ’«
  • probability_tables β€” VP9 probability tables implied by the spec πŸ“Š
  • frame_context β€” VP9 frame contexts (there's [4] of them, she's popular πŸ’…)
  • cur β€” current frame information πŸŽ€
  • last β€” last frame information πŸ•°οΈ
  • bsd_ctrl_offset β€” bsd offset into tile_edge πŸ“
  • segment_map_size β€” size of segment map πŸ“
  • ctx_counters_offset β€” hw counters offset into misc πŸ”’
  • tile_info_offset β€” tile info offset into misc 🎯
  • tile_r_info β€” per-tile information array 🧩
  • tile_c_info β€” per-tile information array 🧩
  • last_tile_r β€” last number of tile rows ➑️
  • last_tile_c β€” last number of tile cols ⬇️
  • last_sbs_r β€” last number of superblock rows πŸ”₯
  • last_sbs_c β€” last number of superblock cols πŸ”₯
  • active_segment β€” number of active segment (alternating between 0 and 1) πŸ”
  • feature_enabled β€” segmentation feature enabled flags 🚩
  • feature_data β€” segmentation feature data πŸ“
Not me listing all twenty-one of them with full commitment 😭 but like, she deserves it. Iconic struct. Periodt.

🌸 SEE ALSO 🌸

Go check these out, they're all in the same friend group iykyk πŸ‘‘

Kernel file ./drivers/media/platform/verisilicon/hantro_hw.h β€” plus these absolute legends:

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

Okay bestie that's the whole page, you're officially smarter than 90% of the timeline πŸ’€βœ¨

Cute lil sign-off: this beauty lives in the source file ./drivers/media/platform/verisilicon/hantro_hw.h (the footer shortens it to ./drivers/media/platform/veris...), and she's dated October 2026, from the Kernel API Manual. Go read the source, it's giving homework but like, the fun kind πŸŽ€πŸ’œπŸ¦‹

πŸ“¦ where this page comes from