STRUCT VDEC_VP8_SLICE_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

struct vdec_vp8_slice_info β€” it's giving "decode misc information" ✨ like literally, that's its whole job: holding all the miscellaneous deets the VP8 decoder needs. This is from the Kernel API Manual btw, bestie, so we're in kernel-land now πŸ’…


🌸 SYNOPSIS 🌸

struct vdec_vp8_slice_info {
    u64 vld_wrapper_dma;
    u64 seg_id_buf_dma;
    u64 wrap_y_dma;
    u64 wrap_c_dma;
    u64 cur_y_fb_dma;
    u64 cur_c_fb_dma;
    u64 bs_dma;
    u32 bs_sz;
    u32 resolution_changed;
    u32 frame_header_type;
    u32 crc[8];
    u32 reserved;
 };

Look at her. Six u64 DMAs in a row, then the u32 girlies, then a whole array of CRCs. Main character energy fr fr πŸ‘‘


πŸ’– Members πŸ’–

Okay so every single field, no skipping, we're doing this properly 🫢

  • vld_wrapper_dma β€” the vld wrapper dma address. That's it, that's the field πŸ’«
  • seg_id_buf_dma β€” the seg id dma address. Segments said "here's my id", this is where it lives πŸ“
  • wrap_y_dma β€” wrap y dma address 🌈
  • wrap_c_dma β€” the manual literally says "wrap y dma address" again here 😭 not me side-eyeing the docs β€” ngl it's the Y description copy-pasted onto the C field. I'm reporting it exactly as written because facts are sacred, bestie. So: per the page, wrap y dma address πŸ’€
  • cur_y_fb_dma β€” current plane Y frame buffer dma address 🟑 the Y plane, the luma, the brightness queen
  • cur_c_fb_dma β€” current plane C frame buffer dma address πŸ”΅ chroma's turn to shine
  • bs_dma β€” bitstream dma address πŸ“Ό where the actual encoded bits hang out
  • bs_sz β€” bitstream size πŸ“ how much bitstream we're dealing with
  • resolution_changed β€” resolution change flag ✨ 1 means changed, 0 means not changed. Iconic little boolean, no notes πŸŽ€
  • frame_header_type β€” current frame header type 🏷️ the type of the frame header that's current rn
  • crc β€” used to check whether hardware's status is right πŸ” yes bestie, we're verifying the hardware actually did the thing. It's crc[8], so eight of them β€” she's thorough πŸ’…
  • reserved β€” reserved, currently unused πŸ™ˆ the empty seat at the table, just vibing, waiting for its moment
🫢 Friendly reminder: crc is the vibe check for hardware status, and resolution_changed is strictly 1 or 0 β€” don't be out here inventing other values, okay?

πŸ¦‹ SEE ALSO πŸ¦‹

Go read the Kernel file, it's right here:

./drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_vp8_req_if.c

And the sibling structs, the whole friend group 🧚:

  • struct vdec_vp8_slice_dpb_info(9)
  • struct vdec_vp8_slice_vsi(9)
  • struct vdec_vp8_slice_inst(9)

Alright bestie, that's the page 🌸 it came from the ./drivers/media/platform/media... corner of the kernel tree, dated October 2026, and it's part of the Kernel API Manual 🀍 slay, go forth and decode πŸ’œ

πŸ“¦ where this page comes from