(import from http://wiki.linux1394.org/video1394, last edited 2007-09-09)
Revision as of 22:17, 7 August 2008
video1394 is mainly a generic isochronous driver for OHCI. It offers higher performance through mmap DMA than raw1394-based capture. It early on proved most useful for Digital Camera applications and hence its name. Later additions made it possible to use it for DV transmission with the help of some user space code. While possible, it is not convenient for DV or other IEC-61883-based capture.
video1394 is not a Video4Linux (V4L) driver. There are no Video4Linux drivers for Digital Camera video or DV on ieee1394. Instead, one must use a user-space program in conjunction with the vloopback Video4Linux driver. Examples of such user-space programs can be found in libdc1394. Coriander can also export to Video4Linux.
The major/minor of the video1394 device file changed with Linux kernel 2.4.19. Prior to kernel 2.4.19, it lived on character major 172, minor 0. However, major 172 really belongs to another project, so it was changed and devfs support added. Historically, the video1394 device file was named /dev/video1394 because most users have a single host adapter (port). However, video1394 supports multiple ports addressed through a sequential minor number. Therefore, devfs needs a way to address each of them:
|/dev/video1394/0||16||the first adapter (port)|
|/dev/video1394/1||17||the second adapter (port)|
|/dev/video1394/2||18||the third adapter (port)|
|/dev/video1394/3||19||the fourth adapter (port)|
Some applications have the device name /dev/video1394 hard-coded, which can be a problem on devfs systems. You will either need to change the program or use devfsd to change the naming.
In the absence of devfs, you can make your own device by, for example,
mknod -m 666 /dev/video1394 c 171 16
libdc1394 uses video1394 to implement its "DMA" capture functionality for efficient and low latency video transfer from IIDC 1394 Digital Camera devices.
Kino uses video1394 for DV export.
Cinelerra uses video1394 as video output driver.
dvconnect is a part of the libdv and dvbackup projects and implements DV receive and transmit using video1394. The advantages of dvconnect are that it operates well in pipes by reading stdin and writing stdout. Also, video1394 requires a lower interrupt rate than raw1394-based capture.