blob: cfaba602185041cab74a88929f6382d18787d67a [file] [log] [blame]
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -03001.. 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>
Linus Torvalds1da177e2005-04-16 15:20:36 -070011
12This driver enable the use of video4linux compatible applications with the
malattia@linux.itcbefb762007-04-28 23:36:26 +090013Motion 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).
Linus Torvalds1da177e2005-04-16 15:20:36 -070016
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
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -030023Hardware supported
24------------------
Linus Torvalds1da177e2005-04-16 15:20:36 -070025
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
Matt LaPlantefff92892006-10-03 22:47:42 +020036to the developers under a NDA (which allows the development of a GPL
Linus Torvalds1da177e2005-04-16 15:20:36 -070037driver 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
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -030045Driver options
46--------------
Linus Torvalds1da177e2005-04-16 15:20:36 -070047
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
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -030053.. code-block:: none
54
Linus Torvalds1da177e2005-04-16 15:20:36 -070055 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
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -030061Module use
62----------
Linus Torvalds1da177e2005-04-16 15:20:36 -070063
64In order to automatically load the meye module on use, you can put those lines
Lucas De Marchi970e2482012-03-30 13:37:16 -070065in your /etc/modprobe.d/meye.conf file:
Linus Torvalds1da177e2005-04-16 15:20:36 -070066
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -030067.. code-block:: none
68
Linus Torvalds1da177e2005-04-16 15:20:36 -070069 alias char-major-81 videodev
70 alias char-major-81-0 meye
71 options meye gbuffers=32
72
73Usage:
74------
75
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -030076.. code-block:: none
77
Linus Torvalds1da177e2005-04-16 15:20:36 -070078 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
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -030088Private API
89-----------
Linus Torvalds1da177e2005-04-16 15:20:36 -070090
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -030091The driver supports frame grabbing with the video4linux API,
92so all video4linux tools (like xawtv) should work with this driver.
Linus Torvalds1da177e2005-04-16 15:20:36 -070093
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -030094Besides 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.
Linus Torvalds1da177e2005-04-16 15:20:36 -070097
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -030098This interface consists of several ioctls (prototypes and structures
99can be found in include/linux/meye.h):
Linus Torvalds1da177e2005-04-16 15:20:36 -0700100
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -0300101MEYEIOC_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.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700107
108
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -0300109MEYEIOC_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.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700115
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -0300116MEYEIOC_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.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700120
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -0300121MEYEIOC_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.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700126
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -0300127Look at the 'motioneye' application code for an actual example.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700128
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -0300129Bugs / Todo
130-----------
Linus Torvalds1da177e2005-04-16 15:20:36 -0700131
Mauro Carvalho Chehabc90495f2016-07-17 18:20:51 -0300132- 'motioneye' still uses the meye private v4l1 API extensions.