STRUCT VDEC_VP9_SLICE_INSTANCE(9)
β¨ NAME β¨
struct vdec_vp9_slice_instance β bestie, this one struct literally represents one vp9 instance π
that's the whole vibe
So like, this is the Kernel API Manual page for it, and we're gonna walk through every single field together, no skipping, no cap π«Ά
πΈ SYNOPSIS πΈ
okay so here's the whole shape of it, exactly as it lives, don't touch anything:
struct vdec_vp9_slice_instance {
struct mtk_vcodec_dec_ctx *ctx;
struct vdec_vpu_inst vpu;
int seq;
enum vdec_vp9_slice_resolution_level level;
unsigned int width;
unsigned int height;
unsigned int frame_type;
unsigned int irq;
unsigned int show_frame;
struct vdec_vp9_slice_ref dpb[VB2_MAX_FRAME];
struct mtk_vcodec_mem mv[2];
struct mtk_vcodec_mem seg[2];
struct mtk_vcodec_mem tile;
struct mtk_vcodec_mem prob;
struct mtk_vcodec_mem counts;
struct vdec_vp9_slice_frame_ctx frame_ctx[4];
struct v4l2_vp9_frame_context frame_ctx_helper;
unsigned char dirty[4];
union {
struct vdec_vp9_slice_init_vsi *init_vsi;
struct vdec_vp9_slice_vsi *vsi;
};
struct vdec_vp9_slice_vsi *core_vsi;
struct vdec_vp9_slice_pfc sc_pfc;
struct vdec_vp9_slice_counts_map counts_map;
struct v4l2_vp9_frame_symbol_counts counts_helper;
};
likeβ¦ look at her. icon behavior honestly π
π Members π
the basics, the main characters
ctxβ pointer to codec's context. your anchor, your home base πvpuβ VPU instance. that's thestruct vdec_vpu_instone, she's doing the actual work πseqβ global picture sequence. anint, keeping count of pictures across everything β¨levelβ level of current resolution, typed asenum vdec_vp9_slice_resolution_levelwidthβ width of last picture, anunsigned intπ¦heightβ height of last picture, alsounsigned intframe_typeβ frame_type of last pictureirqβ irq to Main CPU or MicroP β‘ (yes, that's how the original says it, keeping it exactly)show_frameβ show_frame of last picture
the reference picture situation
dpbβ picture information (width/height) for reference. she's an array:struct vdec_vp9_slice_ref dpb[VB2_MAX_FRAME]π
working buffers, the whole crew
mvβ mv working buffer. array of 2:struct mtk_vcodec_mem mv[2]segβ segmentation working buffer. also[2]:struct mtk_vcodec_mem seg[2]tileβ tile buffer, a singlestruct mtk_vcodec_memprobβ prob table buffer, used to set/update prob table π§countsβ counts table buffer, used to update prob table
frame context era
frame_ctxβ 4 frame context according to VP9 Spec. literallystruct vdec_vp9_slice_frame_ctx frame_ctx[4]π«frame_ctx_helperβ 4 frame context according to newest kernel spec, typedstruct v4l2_vp9_frame_contextdirtyβ state of each frame context,unsigned char dirty[4]β she's tracking vibes per frame ok π₯
the anonymous union moment
{unnamed_union}β anonymous π (keeping that exactly as written, it's giving mysterious)init_vsiβ vsi used for initialized VP9 instancevsiβ vsi used for decoding/flush ... (yes the...is literally in there π)
and the rest of the core cast
core_vsiβ vsi used for Core stage πsc_pfcβ per frame context single core, astruct vdec_vp9_slice_pfccounts_mapβ used map to counts_helper πcounts_helperβ counts table according to newest kernel spec, astruct v4l2_vp9_frame_symbol_counts
π¦ SEE ALSO π¦
Kernel file, bestie, go read the source fr fr:
./drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp9_req_lat_if.c
and these iconic siblings:
struct vdec_vp9_slice_counts_map(9)struct vdec_vp9_slice_vsi(9)struct vdec_vp9_slice_pfc(9)
okay and finally, the cute little sign-off π this page came from ./drivers/media/platform/media..., dated October 2026, and she's all about struct vdec_...ice_instance(9) β that's the whole manual, you ate it, periodt ππ
π¦ 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