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