STRUCT FIMC_VID_CAP(9)
π struct fimc_vid_cap(9) β camera capture device information π
okay so this is a page from the Kernel API Manual, and today's main character is struct fimc_vid_cap, aka everything your kernel needs to know about a camera capture device. buckle up bestie, we're going in π
β¨ NAME β¨
struct fimc_vid_cap β camera capture device information. that's it, that's the vibe check πΈ
π¦ SYNOPSIS π¦
struct fimc_vid_cap {
struct fimc_ctx *ctx;
struct v4l2_subdev subdev;
struct exynos_video_entity ve;
struct media_pad vd_pad;
struct media_pad sd_pads[FIMC_SD_PADS_NUM];
struct v4l2_mbus_framefmt ci_fmt;
struct v4l2_mbus_framefmt wb_fmt;
struct fimc_source_info source_config;
struct list_head pending_buf_q;
struct list_head active_buf_q;
struct vb2_queue vbq;
int active_buf_cnt;
int buf_index;
unsigned int frame_count;
unsigned int reqbufs_count;
bool streaming;
u32 input;
bool user_subdev_api;
};
like, look at that alignment. not me being obsessed with a struct π
π Members π
ctxβ the hardware context data. literally the brain cell of the operation π§ β¨subdevβ the subdev that exposes the FIMC processing block. it's giving "here's my whole personality" π«Άveβ the exynos video device entity structure. iconic exynos representation, no cap πvd_padβ the fimc video capture node pad. one pad, holding it down πsd_padsβ the fimc video processing block pads. plural, because one pad was not enough for her β¨ci_fmtβ the image format at the FIMC camera input (and the scaler output). two jobs, ate both π₯wb_fmtβ the image format at the FIMC ISP Writeback input. writeback format bestie, that's the whole thing πsource_configβ the external image source related configuration structure. outside sources? she's connected fr fr πΈpending_buf_qβ the pending buffer queue head. lines up the buffers like it's a meet and greet πactive_buf_qβ the queue head of buffers scheduled in hardware. these ones actually made it backstage πvbqβ the capture am video buffer queue. (yes,am. that's what the page says. we don't question the elders π) π¦active_buf_cntβ number of video buffers scheduled in hardware. counting your faves πbuf_indexβ index for managing the output DMA buffers. everyone's got a position in the group photo πΈframe_countβ the frame counter for statistics. she's keeping receipts, highkey πreqbufs_countβ the number of buffers requested inREQBUFSioctl. yes the ioctl, exactly that one βstreamingβ is streaming in progress? simple question, huge consequences πinputβ capture input type,grp_idof the attached subdev. know your source, always πuser_subdev_apiβtrueif subdevs are not configured by the host driver. iykyk π
π§ SEE ALSO π§
- Kernel file
./drivers/media/platform/samsung/exynos4-is/fimc-core.hβ go read the source, bestie, it's all there β¨ struct fimc_dma_offset(9)struct fimc_effect(9)struct fimc_scaler(9)struct fimc_addr(9)struct fimc_vid_buffer(9)struct fimc_frame(9)struct fimc_m2m_device(9)struct fimc_pix_limit(9)struct fimc_variant(9)struct fimc_drvdata(9)struct fimc_dev(9)struct fimc_ctrls(9)struct fimc_ctx(9)fimc_active_queue_add(9)fimc_active_queue_pop(9)fimc_pending_queue_add(9)fimc_pending_queue_pop(9)
π friendly reminder: these are all kernel API pages, so the (9) is load-bearing. don't skip it, don't rename anything, just vibe with the exact names. periodt.
okay that's the whole page, hope you understood it bestie π«Ά this was brought to you by the Kernel API Manual, stitched from ./drivers/media/platform/samsu..., dated October 2026 β go off, king, slay the buffers, and remember to REQBUFS responsibly πβ¨π
π¦ 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