STRUCT FIMC_VID_CAP(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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 in REQBUFS ioctl. yes the ioctl, exactly that one ⭐
  • streaming β€” is streaming in progress? simple question, huge consequences 😭
  • input β€” capture input type, grp_id of the attached subdev. know your source, always πŸ”
  • user_subdev_api β€” true if 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