STRUCT V4L2_VP9_FRAME_SYMBOL_COUNTS(9)
π struct v4l2_vp9_frame_symbol_counts(9) β Kernel API Manual β¨
okay so bestie, welcome to the glow-up of struct v4l2_vp9_frame_symbol_counts β it's giving "pointers to arrays of symbol counts" and honestly? kind of iconic. this is a kernel API manual page, and yes the header literally reads struct v4l2...ymbol_counts(9) because the terminal truncates it (rude) but we move.
π NAME
struct v4l2_vp9_frame_symbol_counts β pointers to arrays of symbol counts. that's it, that's the vibe. π«Ά
β¨ SYNOPSIS
struct v4l2_vp9_frame_symbol_counts {
u32 (*partition)[16][4];
u32 (*skip)[3][2];
u32 (*intra_inter)[4][2];
u32 (*tx32p)[2][4];
u32 (*tx16p)[2][4];
u32 (*tx8p)[2][2];
u32 (*y_mode)[4][10];
u32 (*uv_mode)[10][10];
u32 (*comp)[5][2];
u32 (*comp_ref)[5][2];
u32 (*single_ref)[5][2][2];
u32 (*mv_mode)[7][4];
u32 (*filter)[4][3];
u32 (*mv_joint)[4];
u32 (*sign)[2][2];
u32 (*classes)[2][11];
u32 (*class0)[2][2];
u32 (*bits)[2][10][2];
u32 (*class0_fp)[2][2][4];
u32 (*fp)[2][4];
u32 (*class0_hp)[2][2];
u32 (*hp)[2][2];
u32 (*coeff[4][2][2][6][6])[3];
u32 *eob[4][2][2][6][6][2];
};
look at all those nested brackets β it's lowkey a whole aesthetic. π¦
πΈ Members
partitionβ partition counts. simple. slay.skipβ skip counts. no notes.intra_interβ is inter-block counts. (yes, the manpage says "is". we keep it. periodt.)tx32pβ TX32 counts.tx16pβ TX16 counts.tx8pβ TX8 counts.y_modeβ Y prediction mode counts.uv_modeβ UV prediction mode counts.compβ compound prediction mode counts.comp_refβ compound ref counts.single_refβ single ref counts.mv_modeβ inter mode counts.filterβ interpolation filter counts.mv_jointβ motion vector joint counts.signβ motion vector sign counts.classesβ motion vector class counts.class0β motion vector class0 bit counts.bitsβ motion vector bits counts.class0_fpβ motion vector class0 fractional bit counts.fpβ motion vector fractional bit counts.class0_hpβ motion vector class0 high precision fractional bit counts.hpβ motion vector high precision fractional bit counts.coeffβ coefficient counts.eobβ eob counts. (the original has no period here. i'm not adding one. character-for-character, bestie. π )
twenty-four members and every single one of them counted π
π Description
The fields correspond to what is specified in section 8.3 "Clear counts process" of the spec.
Different pieces of hardware can report the counts in different order, so we cannot rely on simply overlaying a struct on a relevant block of memory. Instead we provide pointers to arrays or array of pointers to arrays in case of coeff, or array of pointers for eob.
β οΈ ok so this is the part where you don't just memcpy a struct over a chunk of memory and hope for the best. hardware is chaotic, the ordering varies, that way lies pain. pointers are the whole point. iykyk π
π§ SEE ALSO
- Kernel file
./include/media/v4l2-vp9.hstructv4l2_vp9_frame_mv_context(9) struct v4l2_vp9_frame_context(9)v4l2_vp9_fw_update_probs(9)v4l2_vp9_reset_frame_ctx(9)v4l2_vp9_adapt_coef_probs(9)v4l2_vp9_adapt_noncoef_probs(9)v4l2_vp9_seg_feat_enabled(9)
anyway that's the page, bestie β go count some symbols responsibly. π
mwah π β this came out of ./include/media, dated October 2026, and the version string still insists on truncating itself to struct v4l2...ymbol_counts(9) in the footer. we love a consistent queen. πβ¨
π¦ 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