1 |
1275 |
phoenix |
Vaio Picturebook Motion Eye Camera Driver Readme
|
2 |
|
|
------------------------------------------------
|
3 |
|
|
Copyright (C) 2001-2003 Stelian Pop
|
4 |
|
|
Copyright (C) 2001-2002 Alcôve
|
5 |
|
|
Copyright (C) 2000 Andrew Tridgell
|
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, either by adding them
|
45 |
|
|
to /etc/modules.conf file, when the driver is compiled as a module, or
|
46 |
|
|
by adding the following to the kernel command line (in your bootloader):
|
47 |
|
|
|
48 |
|
|
meye=gbuffers[,gbufsize[,video_nr]]
|
49 |
|
|
|
50 |
|
|
where:
|
51 |
|
|
|
52 |
|
|
gbuffers: number of capture buffers, default is 2 (32 max)
|
53 |
|
|
|
54 |
|
|
gbufsize: size of each capture buffer, default is 614400
|
55 |
|
|
|
56 |
|
|
video_nr: video device to register (0 = /dev/video0, etc)
|
57 |
|
|
|
58 |
|
|
Module use:
|
59 |
|
|
-----------
|
60 |
|
|
|
61 |
|
|
In order to automatically load the meye module on use, you can put those lines
|
62 |
|
|
in your /etc/modules.conf file:
|
63 |
|
|
|
64 |
|
|
alias char-major-81 videodev
|
65 |
|
|
alias char-major-81-0 meye
|
66 |
|
|
options meye gbuffers=32
|
67 |
|
|
|
68 |
|
|
Usage:
|
69 |
|
|
------
|
70 |
|
|
|
71 |
|
|
xawtv >= 3.49 ()
|
72 |
|
|
for display and uncompressed video capture:
|
73 |
|
|
|
74 |
|
|
xawtv -c /dev/video0 -geometry 640x480
|
75 |
|
|
or
|
76 |
|
|
xawtv -c /dev/video0 -geometry 320x240
|
77 |
|
|
|
78 |
|
|
motioneye ()
|
79 |
|
|
for getting ppm or jpg snapshots, mjpeg video
|
80 |
|
|
|
81 |
|
|
Private API:
|
82 |
|
|
------------
|
83 |
|
|
|
84 |
|
|
The driver supports frame grabbing with the video4linux API, so
|
85 |
|
|
all video4linux tools (like xawtv) 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 |
|
|
- overlay output is not supported (although the camera is capable of).
|
128 |
|
|
(it should not be too hard to to it, provided we found how...)
|
129 |
|
|
|
130 |
|
|
- mjpeg hardware playback doesn't work (depends on overlay...)
|
131 |
|
|
|
132 |
|
|
- rewrite the driver to use some common video4linux API for snapshot
|
133 |
|
|
and mjpeg capture. Unfortunately, video4linux1 does not permit it,
|
134 |
|
|
the BUZ API seems to be targeted to TV cards only. The video4linux 2
|
135 |
|
|
API may be an option, if it goes into the kernel (maybe 2.5
|
136 |
|
|
material ?).
|