STRUCT MTK_VCODEC_DEC_PDATA(9)
π struct mtk_vcodec_dec_pdata(9) β Kernel API Manual π
okay bestie, so this whole page lives in the Kernel API Manual, and it's literally about struct mtk_vcodec_dec_pdata β the compatible data for each IC. yes, each one. every IC gets its own lil personality sheet π¦
β¨ NAME β¨
struct mtk_vcodec_dec_pdata β compatible data for each IC π
πΈ SYNOPSIS πΈ
struct mtk_vcodec_dec_pdata {
void (*init_vdec_params)(struct mtk_vcodec_dec_ctx *ctx);
int (*ctrls_setup)(struct mtk_vcodec_dec_ctx *ctx);
void (*worker)(struct work_struct *work);
int (*flush_decoder)(struct mtk_vcodec_dec_ctx *ctx);
struct vdec_fb *(*get_cap_buffer)(struct mtk_vcodec_dec_ctx *ctx);
void (*cap_to_disp)(struct mtk_vcodec_dec_ctx *ctx, int error,
struct media_request *src_buf_req);
const struct vb2_ops *vdec_vb2_ops;
const struct mtk_video_fmt *vdec_formats;
const int *num_formats;
const struct mtk_video_fmt *default_out_fmt;
const struct mtk_video_fmt *default_cap_fmt;
enum mtk_vdec_hw_arch hw_arch;
bool is_subdev_supported;
bool uses_stateless_api;
};
no cap, it's a function-pointer buffet and I am obsessed π
π Members π
init_vdec_paramsβ init vdec params. the little setup moment, the "get ready with me" of decode params β¨ctrls_setupβ init vcodec dec ctrls. all the controls, set up, slay πworkerβ worker to start a decode job. it's giving main character energy, it literally starts the job π₯flush_decoderβ function that flushes the decoder. bye bye buffered stuff π«Άget_cap_bufferβ get capture buffer from capture queue. go get ur buffer bestie πcap_to_dispβ put capture buffer to disp list for lat and core arch. this one's booking the buffer a spot on the disp list specifically for lat and core arch, okay? iykyk πvdec_vb2_opsβ struct vb2_ops. that's it, that's the description, and honestly? iconic for it βvdec_formatsβ supported video decoder formats. the whole menu of formats π¦num_formatsβ count of video decoder formats. the how-many of it all π’default_out_fmtβ default output buffer format. the default one, for output πdefault_cap_fmtβ default capture buffer format. the default one, for capture πhw_archβ hardware arch is used to separatepure_sin_coreandlat_sin_core. the divider between the two, literally the vibe check between them πis_subdev_supportedβ whether support parent-node architecture(subdev). a yes/no on that parent-node (subdev) situation πΈuses_stateless_apiβ whether the decoder uses the stateless API with requests. again: yes or no, stateless API with requests, that's the question π
π SEE ALSO π
- Kernel file
./drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_drv.h struct vdec_pic_info(9),struct mtk_vcodec_dec_request(9),struct mtk_vcodec_dec_ctx(9),struct mtk_vcodec_dec_dev(9)
like, go read those too, they're all in the same friend group fr fr π§
okay that's the whole page, mwah π this came out of ./drivers/media/platform/media... and it's dated October 2026, and the page itself is struct mtk_vcodec_dec_pdata(9) β go forth and configure ur ICs, bestie, u got this π«Άβ¨
π¦ 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