NAME
fwcam – IIDC FireWire digital camera driver
SYNOPSIS
device firewire device video device fwcam
DESCRIPTION
The fwcam driver provides support for IIDC (Instrumentation and Industrial Digital Camera) v1.04/v1.20/v1.30 cameras attached via IEEE 1394 (FireWire).
The driver attaches to unit directories in the device CSR configuration ROM with unit_spec_id 0x00a02d (1394 Trade Association) and unit_sw_version matching IIDC v1.04, v1.20, or v1.30. The IIDC command base address is located within the unit directory or a nested logical unit directory.
Camera hardware probing is deferred until the device is first opened. This avoids bus resets on controllers where early register access destabilizes the link.
Video frames are received over an isochronous DMA channel and delivered through the video(4) framework. Applications access the camera via /dev/videoN using the V4L2 interface.
The driver supports Format_0 (VGA non-compressed) video with the following modes:
- Mode 0
-
160x120 YUV444 (57,600 bytes per frame)
- Mode 1
-
320x240 YUV422 (153,600 bytes per frame)
- Mode 2
-
640x480 YUV411 (460,800 bytes per frame)
- Mode 3
-
640x480 YUV422 (614,400 bytes per frame)
- Mode 4
-
640x480 RGB8 (921,600 bytes per frame)
- Mode 5
-
640x480 Mono8 (307,200 bytes per frame)
Camera features (brightness, gain, shutter, focus, etc.) are queried and set via FWCAM_GFEAT and FWCAM_SFEAT ioctls.
HARDWARE
The fwcam driver supports any camera compliant with the IIDC 1394-based Digital Camera Specification v1.30. Tested hardware:
-
Apple iSight (FireWire cylinder), EUI-64 000a270004135e5d, Format_0 modes 1–3
IOCTLS
- FWCAM_GMODE (struct fwcam_mode)
-
Get the current video format, mode, and frame rate. The frame_size field is filled with the computed frame size in bytes.
- FWCAM_SMODE (struct fwcam_mode)
-
Set the video format, mode, and frame rate. Streaming is restarted if active.
- FWCAM_GFEAT (struct fwcam_feature)
-
Get feature capabilities and current value. The caller sets id to one of the FWCAM_FEAT_* constants; the driver fills flags, min, max, and value.
- FWCAM_SFEAT (struct fwcam_feature)
-
Set a feature value.
- FWCAM_GINFO (struct fwcam_info)
-
Return camera capabilities, current settings, and stream statistics including dropped frame count and active ISO channel.
SYSCTLS
- hw.firewire.fwcam.iso_channel
-
Isochronous receive channel (default 0). Can be set as a tunable in loader.conf(5).
FILES
- /dev/videoN
-
Video capture device provided by the video(4) framework.
SEE ALSO
firewire(4), fwohci(4), video(4)
IIDC 1394-based Digital Camera Specification v1.30, 1394 Trade Association Document 1999023.
HISTORY
The fwcam driver first appeared in FreeBSD 16.0.
AUTHORS
Abdelkader Boudih ⟨[email protected]⟩