| Vaio Picturebook Motion Eye Camera Driver Readme |
| ------------------------------------------------ |
| Copyright (C) 2001-2004 Stelian Pop <stelian@popies.net> |
| Copyright (C) 2001-2002 AlcĂ´ve <www.alcove.com> |
| Copyright (C) 2000 Andrew Tridgell <tridge@samba.org> |
| |
| This driver enable the use of video4linux compatible applications with the |
| Motion Eye camera. This driver requires the "Sony Vaio Programmable I/O |
| Control Device" driver (which can be found in the "Character drivers" |
| section of the kernel configuration utility) to be compiled and installed |
| (using its "camera=1" parameter). |
| |
| It can do at maximum 30 fps @ 320x240 or 15 fps @ 640x480. |
| |
| Grabbing is supported in packed YUV colorspace only. |
| |
| MJPEG hardware grabbing is supported via a private API (see below). |
| |
| Hardware supported: |
| ------------------- |
| |
| This driver supports the 'second' version of the MotionEye camera :) |
| |
| The first version was connected directly on the video bus of the Neomagic |
| video card and is unsupported. |
| |
| The second one, made by Kawasaki Steel is fully supported by this |
| driver (PCI vendor/device is 0x136b/0xff01) |
| |
| The third one, present in recent (more or less last year) Picturebooks |
| (C1M* models), is not supported. The manufacturer has given the specs |
| to the developers under a NDA (which allows the development of a GPL |
| driver however), but things are not moving very fast (see |
| http://r-engine.sourceforge.net/) (PCI vendor/device is 0x10cf/0x2011). |
| |
| There is a forth model connected on the USB bus in TR1* Vaio laptops. |
| This camera is not supported at all by the current driver, in fact |
| little information if any is available for this camera |
| (USB vendor/device is 0x054c/0x0107). |
| |
| Driver options: |
| --------------- |
| |
| Several options can be passed to the meye driver using the standard |
| module argument syntax (<param>=<value> when passing the option to the |
| module or meye.<param>=<value> on the kernel boot line when meye is |
| statically linked into the kernel). Those options are: |
| |
| forcev4l1: force use of V4L1 API instead of V4L2 |
| |
| gbuffers: number of capture buffers, default is 2 (32 max) |
| |
| gbufsize: size of each capture buffer, default is 614400 |
| |
| video_nr: video device to register (0 = /dev/video0, etc) |
| |
| Module use: |
| ----------- |
| |
| In order to automatically load the meye module on use, you can put those lines |
| in your /etc/modprobe.conf file: |
| |
| alias char-major-81 videodev |
| alias char-major-81-0 meye |
| options meye gbuffers=32 |
| |
| Usage: |
| ------ |
| |
| xawtv >= 3.49 (<http://bytesex.org/xawtv/>) |
| for display and uncompressed video capture: |
| |
| xawtv -c /dev/video0 -geometry 640x480 |
| or |
| xawtv -c /dev/video0 -geometry 320x240 |
| |
| motioneye (<http://popies.net/meye/>) |
| for getting ppm or jpg snapshots, mjpeg video |
| |
| Private API: |
| ------------ |
| |
| The driver supports frame grabbing with the video4linux API |
| (either v4l1 or v4l2), so all video4linux tools (like xawtv) |
| should work with this driver. |
| |
| Besides the video4linux interface, the driver has a private interface |
| for accessing the Motion Eye extended parameters (camera sharpness, |
| agc, video framerate), the shapshot and the MJPEG capture facilities. |
| |
| This interface consists of several ioctls (prototypes and structures |
| can be found in include/linux/meye.h): |
| |
| MEYEIOC_G_PARAMS |
| MEYEIOC_S_PARAMS |
| Get and set the extended parameters of the motion eye camera. |
| The user should always query the current parameters with |
| MEYEIOC_G_PARAMS, change what he likes and then issue the |
| MEYEIOC_S_PARAMS call (checking for -EINVAL). The extended |
| parameters are described by the meye_params structure. |
| |
| |
| MEYEIOC_QBUF_CAPT |
| Queue a buffer for capture (the buffers must have been |
| obtained with a VIDIOCGMBUF call and mmap'ed by the |
| application). The argument to MEYEIOC_QBUF_CAPT is the |
| buffer number to queue (or -1 to end capture). The first |
| call to MEYEIOC_QBUF_CAPT starts the streaming capture. |
| |
| MEYEIOC_SYNC |
| Takes as an argument the buffer number you want to sync. |
| This ioctl blocks until the buffer is filled and ready |
| for the application to use. It returns the buffer size. |
| |
| MEYEIOC_STILLCAPT |
| MEYEIOC_STILLJCAPT |
| Takes a snapshot in an uncompressed or compressed jpeg format. |
| This ioctl blocks until the snapshot is done and returns (for |
| jpeg snapshot) the size of the image. The image data is |
| available from the first mmap'ed buffer. |
| |
| Look at the 'motioneye' application code for an actual example. |
| |
| Bugs / Todo: |
| ------------ |
| |
| - the driver could be much cleaned up by removing the v4l1 support. |
| However, this means all v4l1-only applications will stop working. |
| |
| - 'motioneye' still uses the meye private v4l1 API extensions. |