^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) .. SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) .. include:: <isonum.txt>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) Vaio Picturebook Motion Eye Camera Driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) =========================================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) Copyright |copy| 2001-2004 Stelian Pop <stelian@popies.net>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Copyright |copy| 2001-2002 Alcôve <www.alcove.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Copyright |copy| 2000 Andrew Tridgell <tridge@samba.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) Private API
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) -----------
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) The driver supports frame grabbing with the video4linux API,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) so all video4linux tools (like xawtv) should work with this driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) Besides the video4linux interface, the driver has a private interface
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) for accessing the Motion Eye extended parameters (camera sharpness,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) agc, video framerate), the snapshot and the MJPEG capture facilities.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) This interface consists of several ioctls (prototypes and structures
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) can be found in include/linux/meye.h):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) MEYEIOC_G_PARAMS and MEYEIOC_S_PARAMS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) Get and set the extended parameters of the motion eye camera.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) The user should always query the current parameters with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) MEYEIOC_G_PARAMS, change what he likes and then issue the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) MEYEIOC_S_PARAMS call (checking for -EINVAL). The extended
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) parameters are described by the meye_params structure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) MEYEIOC_QBUF_CAPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) Queue a buffer for capture (the buffers must have been
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) obtained with a VIDIOCGMBUF call and mmap'ed by the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) application). The argument to MEYEIOC_QBUF_CAPT is the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) buffer number to queue (or -1 to end capture). The first
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) call to MEYEIOC_QBUF_CAPT starts the streaming capture.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) MEYEIOC_SYNC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) Takes as an argument the buffer number you want to sync.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) This ioctl blocks until the buffer is filled and ready
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) for the application to use. It returns the buffer size.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) MEYEIOC_STILLCAPT and MEYEIOC_STILLJCAPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) Takes a snapshot in an uncompressed or compressed jpeg format.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) This ioctl blocks until the snapshot is done and returns (for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) jpeg snapshot) the size of the image. The image data is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) available from the first mmap'ed buffer.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) Look at the 'motioneye' application code for an actual example.