USBVC(4D) Devices USBVC(4D)
NAME
usbvc - USB video class driver
SYNOPSIS
#include <sys/usb/clients/video/usbvc/usbvc.h>
#include <sys/videodev2.h>
usbvc@unit-address
DESCRIPTION
The
usbvc driver is a USBA (Solaris USB Architecture)-compliant client
driver that supports the
USB Device Class Definition for Video Devices specification, Versions 1.0 and 1.1. The
usbvc driver supports a subset
of the video controls and formats described in the USB specification.
The
usbvc driver also implements the Video4Linux2 API (
V4L2), Version
0.20 for applications. For more information on the
V4L2 API, visit
http://www.thedirks.org/v4l2.
Note that the
usbvc driver supports the video capture function only and
that video output is not supported.
READING DATA
The
usbvc driver reads video data from the isochronous endpoint of the
device. Bulk data endpoints are not supported.
MJPEG and UNCOMPRESSED video formats are supported. Isochronous data are
read from the isochronous input device frame-by-frame and are maintained
in a buffer array within the driver. Video frames are read from the
driver using the
read(2) or
mmap(2) I/O method. For
read(2), each read
returns a buffer of a video frame. For
mmap(2), each
VIDIOC_DQBUF ioctl
returns the buffer structure v4l2_buffer. (A video frame buffer pointer
is included in the structure). See the
V4L2 API for buffer structure and
other related data structure information.
IOCTLS
A brief overview of supported ioctl requests appears below. For more
detailed information, refer to the
V4L2 API document. Note: ioctl
information presented in the
V4L2 API document may differ slightly from
the content of this manpage. In such cases, you should rely on the
information in this manpage.
VIDIOC_QUERYCAP Query the device capabilities. Besides device capabilities, the
usbvc driver returns structure v4l2_capability which includes information
on the driver, data bus and OS kernel. Please note that the "Version"
structure member has no meaning in Solaris and is always set to 1.
VIDIOC_ENUM_FMT Enumerate the video formats supported by the device.
VIDIOC_S_FMT Set a video format.
VIDIOC_G_FMT Get a video format.
VIDIOC_REQBUFS Request the
usbvc driver to allocate video data buffers. If a buffer
is set to zero, the driver stops reading video data from the device
and releases all allocated buffers. (For
mmap(2) only).
VIDIOC_QUERYBUF Query a given buffer's status. (For
mmap(2) only).
VIDIOC_QBUF Enqueue an empty buffer to the video data buffer array. (For
mmap(2) only).
VIDIOC_DQBUF Dequeue a done buffer from the video data buffer array. (For
mmap(2) only).
VIDIOC_STREAMON Start reading video data.
VIDIOC_STREAMOFF Stop reading video data.
VIDIOC_ENUMINPUT Enumerate all device inputs. Currently, the
usbvc driver supports one
input only.
VIDIOC_G_INPUT Get the device's current input. At this time, the
usbvc driver
supports one input only.
VIDIOC_S_INPUT Set the device's current input. At this time, the
usbvc driver
supports one input only.
VIDIOC_QUERYCTRL Query the device and driver for supported video controls. Currently,
the
usbvc driver supports the brightness, contrast, saturation, hue,
and gamma video controls.
VIDIOC_G_CTRL Get the device's current video control.
VIDIOC_S_CTRL Set the device's current video control.
VIDIOC_G_PARM Get streaming parameters, the number of frames per second and number
of buffers used internally by driver in read/write mode.
VIDIOC_S_PARM Set streaming parameters, the number of frames per second and number
of buffers used internally by driver in read/write mode.
ERRORS
EBUSY An open was attempted after the device has already been opened.
EINVAL An unsupported ioctl is received or an ioctl is attempted with
an out-of-range value.
EIO The driver received an unrecoverable device error or the device
did not respond or the device stalled when attempting an
access. A
read(2) or
ioctl(2) did not complete due to a
peripheral access.
ENXIO The driver received an
open(2) request for a device for which
the attach failed.
ENODEV The driver received an
open(2) request for a disconnected
device.
FILES
/kernel/drv/usbvc 32-bit ELF kernel module. (x86)
/kernel/drv/amd64/usbvc 64-bit ELF kernel module. (x86)
/kernel/drv/sparcv9/usbvc 64-bit ELF kernel module. (SPARC)
/dev/usb/*/*/* ugen(4D) nodes.
/dev/videoN Device node for isochronous input from USB video device and device
control.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+---------------+--------------------------------+
|ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+---------------+--------------------------------+
|Architecture | SPARC, x86, PCI-based systems |
+---------------+--------------------------------+
SEE ALSO
ioctl(2),
mmap(2),
open(2),
read(2),
ugen(4D),
usba(4D),
attributes(7),
cfgadm_usb(8),
attach(9E) Writing Device Drivers System Administration Guide: Basic Administration Universal Serial Bus Specification 1.0, 1.1 and 2.0-- 1996, 1998, 2000
USB Device Class Definition for Video Devices 1.0 and 1.1-- 2003, 2005
Video4Linux2 API (V4L2), Version 0.20 http://www.usb.org http://www.thedirks.org/v4l2DIAGNOSTICS
In addition to being logged, the following messages may appear on the
system console. All messages are formatted in the following manner:
Warning: <device path> (usbvc<instance num>):Error Message...
Device was disconnected while open. Data may have been lost. The device has been hot-removed or powered off while it was open and
a possible data transfer was in progress. The job may be aborted.
Cannot access <device>. Please reconnect. This device has been disconnected because a device other than the
original one has been inserted. The driver informs you of this fact
by displaying the name of the original device.
Device is not identical to the previous one on this port. Please disconnect and reconnect. The device was hot-removed while open. A new device was hot-inserted
which is not identical to the original device. Please disconnect the
device and reconnect the original device to the same port.
NOTES
The USB video device will be power-managed when the device is idle.
If a USB video device is hot-removed while active, a console warning is
displayed requesting you to put the device back in the same port and
telling you of potential data loss. Hot-removal of an active video device
is strongly discouraged.
Always close all applications before hot-removing or hot-inserting a
device. If an application is open when a device is hot-removed,
inserting the device in a different port will create new
/dev/videoN links. Moving an active device to another port is not recommended.
May 13, 2017
USBVC(4D)