STRUCT VDEC_H264_SLICE_INST(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct vdec_h264_slice_inst β€” the h264 decoder instance, bestie. that's the whole vibe ✨


🌸 SYNOPSIS 🌸

okay so this is the struct, and no i did not skip a single field, we're listing everything:

struct vdec_h264_slice_inst {
    unsigned int slice_dec_num;
    struct mtk_vcodec_dec_ctx *ctx;
    struct mtk_vcodec_mem pred_buf;
    struct mtk_vcodec_mem mv_buf[H264_MAX_MV_NUM];
    struct vdec_vpu_inst vpu;
    union {
      struct {
        struct vdec_h264_slice_vsi *vsi;
        struct vdec_h264_slice_vsi *vsi_core;
        struct vdec_h264_slice_vsi vsi_ctx;
      };
      struct {
        struct vdec_h264_slice_vsi_ext *vsi_ext;
        struct vdec_h264_slice_vsi_ext *vsi_core_ext;
        struct vdec_h264_slice_vsi_ext vsi_ctx_ext;
      };
    };
    struct vdec_h264_slice_lat_dec_param h264_slice_param;
    unsigned int resolution_changed;
    unsigned int realloc_mv_buf;
    unsigned int cap_num_planes;
    struct v4l2_h264_dpb_entry dpb[16];
    bool is_field_bitstream;
    int (*decode)(void *h_vdec, struct mtk_vcodec_mem *bs, struct vdec_fb *unused, bool *res_chg);
};

like… look at it. she's structured. she's iconic. πŸ’…


πŸŽ€ Members πŸŽ€

okay breaking down every single one, no cap:

  • slice_dec_num β€” the number of frames to be decoded. that's it, that's the count 🌈
  • ctx β€” points to mtk_vcodec_dec_ctx. your context bestie 🫢
  • pred_buf β€” the HW working prediction buffer
  • mv_buf β€” the HW working motion vector buffer
  • vpu β€” a VPU instance, slay
  • {unnamed_union} β€” anonymous. she has no name, she simply is πŸ’€
  • {unnamed_struct} β€” anonymous (the first one, the non-ext crowd)
  • vsi β€” the vsi used for lat
  • vsi_core β€” the vsi used for core
  • vsi_ctx β€” the vsi data for this decoding context
  • {unnamed_struct} β€” anonymous (again β€” second one, the extended elect ✨)
  • vsi_ext β€” the extended vsi used for lat
  • vsi_core_ext β€” the extended vsi used for core
  • vsi_ctx_ext β€” the extended vsi data for this decoding context
  • h264_slice_param β€” the parameters that the hardware uses to decode. literally the whole instruction manual for the silicon πŸ”₯
  • resolution_changed β€” resolution changed πŸ‘€
  • realloc_mv_buf β€” reallocate the mv buffer
  • cap_num_planes β€” number of capture queue plane
  • dpb β€” the decoded picture buffer, used to store reference buffer information
  • is_field_bitstream β€” > heads up bestie: field bitstream is not supported, only frame. so if you were thinking about fields… don't πŸ™ˆ
  • decode β€” the lat decoder pointer, for different architectures. one pointer, many architectures, main character energy πŸ‘‘

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_h264_req_multi_if.c
  • enum vdec_h264_core_dec_err_type(9)
  • struct vdec_h264_slice_lat_dec_param(9)
  • struct vdec_h264_slice_info(9)
  • struct vdec_h264_slice_vsi(9)
  • struct vdec_h264_slice_share_info(9)
  • struct vdec_h264_slice_fb(9)
  • struct vdec_h264_slice_info_ext(9)
  • struct vdec_h264_slice_vsi_ext(9)

like, read them. iykyk πŸ“š


and that's the page!! sourced from ./drivers/media/platform/media..., dated October 2026, and yes the footer still says struct vdec_h264_slice_inst(9) because some things are eternal πŸ’œ

okay bye bestie, go decode something gorgeous 🌸🧚⭐

πŸ“¦ where this page comes from