diff options
Diffstat (limited to 'Documentation/video4linux/meye.txt')
-rw-r--r-- | Documentation/video4linux/meye.txt | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/Documentation/video4linux/meye.txt b/Documentation/video4linux/meye.txt new file mode 100644 index 000000000000..2137da97552f --- /dev/null +++ b/Documentation/video4linux/meye.txt | |||
@@ -0,0 +1,130 @@ | |||
1 | Vaio Picturebook Motion Eye Camera Driver Readme | ||
2 | ------------------------------------------------ | ||
3 | Copyright (C) 2001-2004 Stelian Pop <stelian@popies.net> | ||
4 | Copyright (C) 2001-2002 Alcôve <www.alcove.com> | ||
5 | Copyright (C) 2000 Andrew Tridgell <tridge@samba.org> | ||
6 | |||
7 | This driver enable the use of video4linux compatible applications with the | ||
8 | Motion Eye camera. This driver requires the "Sony Vaio Programmable I/O | ||
9 | Control Device" driver (which can be found in the "Character drivers" | ||
10 | section of the kernel configuration utility) to be compiled and installed | ||
11 | (using its "camera=1" parameter). | ||
12 | |||
13 | It can do at maximum 30 fps @ 320x240 or 15 fps @ 640x480. | ||
14 | |||
15 | Grabbing is supported in packed YUV colorspace only. | ||
16 | |||
17 | MJPEG hardware grabbing is supported via a private API (see below). | ||
18 | |||
19 | Hardware supported: | ||
20 | ------------------- | ||
21 | |||
22 | This driver supports the 'second' version of the MotionEye camera :) | ||
23 | |||
24 | The first version was connected directly on the video bus of the Neomagic | ||
25 | video card and is unsupported. | ||
26 | |||
27 | The second one, made by Kawasaki Steel is fully supported by this | ||
28 | driver (PCI vendor/device is 0x136b/0xff01) | ||
29 | |||
30 | The third one, present in recent (more or less last year) Picturebooks | ||
31 | (C1M* models), is not supported. The manufacturer has given the specs | ||
32 | to the developers under a NDA (which allows the develoment of a GPL | ||
33 | driver however), but things are not moving very fast (see | ||
34 | http://r-engine.sourceforge.net/) (PCI vendor/device is 0x10cf/0x2011). | ||
35 | |||
36 | There is a forth model connected on the USB bus in TR1* Vaio laptops. | ||
37 | This camera is not supported at all by the current driver, in fact | ||
38 | little information if any is available for this camera | ||
39 | (USB vendor/device is 0x054c/0x0107). | ||
40 | |||
41 | Driver options: | ||
42 | --------------- | ||
43 | |||
44 | Several options can be passed to the meye driver using the standard | ||
45 | module argument syntax (<param>=<value> when passing the option to the | ||
46 | module or meye.<param>=<value> on the kernel boot line when meye is | ||
47 | statically linked into the kernel). Those options are: | ||
48 | |||
49 | forcev4l1: force use of V4L1 API instead of V4L2 | ||
50 | |||
51 | gbuffers: number of capture buffers, default is 2 (32 max) | ||
52 | |||
53 | gbufsize: size of each capture buffer, default is 614400 | ||
54 | |||
55 | video_nr: video device to register (0 = /dev/video0, etc) | ||
56 | |||
57 | Module use: | ||
58 | ----------- | ||
59 | |||
60 | In order to automatically load the meye module on use, you can put those lines | ||
61 | in your /etc/modprobe.conf file: | ||
62 | |||
63 | alias char-major-81 videodev | ||
64 | alias char-major-81-0 meye | ||
65 | options meye gbuffers=32 | ||
66 | |||
67 | Usage: | ||
68 | ------ | ||
69 | |||
70 | xawtv >= 3.49 (<http://bytesex.org/xawtv/>) | ||
71 | for display and uncompressed video capture: | ||
72 | |||
73 | xawtv -c /dev/video0 -geometry 640x480 | ||
74 | or | ||
75 | xawtv -c /dev/video0 -geometry 320x240 | ||
76 | |||
77 | motioneye (<http://popies.net/meye/>) | ||
78 | for getting ppm or jpg snapshots, mjpeg video | ||
79 | |||
80 | Private API: | ||
81 | ------------ | ||
82 | |||
83 | The driver supports frame grabbing with the video4linux API | ||
84 | (either v4l1 or v4l2), so all video4linux tools (like xawtv) | ||
85 | should work with this driver. | ||
86 | |||
87 | Besides the video4linux interface, the driver has a private interface | ||
88 | for accessing the Motion Eye extended parameters (camera sharpness, | ||
89 | agc, video framerate), the shapshot and the MJPEG capture facilities. | ||
90 | |||
91 | This interface consists of several ioctls (prototypes and structures | ||
92 | can be found in include/linux/meye.h): | ||
93 | |||
94 | MEYEIOC_G_PARAMS | ||
95 | MEYEIOC_S_PARAMS | ||
96 | Get and set the extended parameters of the motion eye camera. | ||
97 | The user should always query the current parameters with | ||
98 | MEYEIOC_G_PARAMS, change what he likes and then issue the | ||
99 | MEYEIOC_S_PARAMS call (checking for -EINVAL). The extended | ||
100 | parameters are described by the meye_params structure. | ||
101 | |||
102 | |||
103 | MEYEIOC_QBUF_CAPT | ||
104 | Queue a buffer for capture (the buffers must have been | ||
105 | obtained with a VIDIOCGMBUF call and mmap'ed by the | ||
106 | application). The argument to MEYEIOC_QBUF_CAPT is the | ||
107 | buffer number to queue (or -1 to end capture). The first | ||
108 | call to MEYEIOC_QBUF_CAPT starts the streaming capture. | ||
109 | |||
110 | MEYEIOC_SYNC | ||
111 | Takes as an argument the buffer number you want to sync. | ||
112 | This ioctl blocks until the buffer is filled and ready | ||
113 | for the application to use. It returns the buffer size. | ||
114 | |||
115 | MEYEIOC_STILLCAPT | ||
116 | MEYEIOC_STILLJCAPT | ||
117 | Takes a snapshot in an uncompressed or compressed jpeg format. | ||
118 | This ioctl blocks until the snapshot is done and returns (for | ||
119 | jpeg snapshot) the size of the image. The image data is | ||
120 | available from the first mmap'ed buffer. | ||
121 | |||
122 | Look at the 'motioneye' application code for an actual example. | ||
123 | |||
124 | Bugs / Todo: | ||
125 | ------------ | ||
126 | |||
127 | - the driver could be much cleaned up by removing the v4l1 support. | ||
128 | However, this means all v4l1-only applications will stop working. | ||
129 | |||
130 | - 'motioneye' still uses the meye private v4l1 API extensions. | ||