mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-28 20:02:17 +00:00
![Mike Thomas](/assets/img/avatar_default.png)
The changes here represent an intermediate step towards bringing the driver within the V4L2 framework. Signed-off-by: Mike Thomas <rmthomas@sciolus.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
165 lines
5.7 KiB
Text
165 lines
5.7 KiB
Text
|
|
***********************************************************
|
|
* EasyCAP USB 2.0 Video Adapter with Audio, Model DC60 *
|
|
* and *
|
|
* EasyCAP002 4-Channel USB 2.0 DVR *
|
|
***********************************************************
|
|
Mike Thomas <rmthomas@sciolus.org>
|
|
|
|
|
|
|
|
SUPPORTED HARDWARE
|
|
------------------
|
|
|
|
This driver is intended for use with hardware having USB ID 05e1:0408.
|
|
Two kinds of EasyCAP have this USB ID, namely:
|
|
|
|
* EasyCAP USB 2.0 Video Adapter with Audio, Model DC60,
|
|
having input cables labelled CVBS, S-VIDEO, AUDIO(L), AUDIO(R)
|
|
|
|
* EasyCAP002 4-Channel USB 2.0 DVR, having input cables labelled
|
|
1, 2, 3, 4 and an unlabelled input cable for a microphone.
|
|
|
|
|
|
BUILD OPTIONS AND DEPENDENCIES
|
|
------------------------------
|
|
|
|
Unless EASYCAP_DEBUG is defined during compilation it will not be possible
|
|
to select a debug level at the time of module installation.
|
|
|
|
If the parameter EASYCAP_IS_VIDEODEV_CLIENT is undefined during compilation
|
|
the built module is entirely independent of the videodev module, and when
|
|
the EasyCAP is physically plugged into a USB port the special files
|
|
/dev/easycap0 and /dev/easysnd1 are created as video and sound sources
|
|
respectively.
|
|
|
|
If the parameter EASYCAP_IS_VIDEODEV_CLIENT is defined during compilation
|
|
the built easycap module is configured to register with the videodev module,
|
|
in which case the special files created when the EasyCAP is plugged in are
|
|
/dev/video0 and /dev/easysnd0.
|
|
|
|
During in-tree builds the following should should be defined whenever the
|
|
parameter EASYCAP_IS_VIDEODEV_CLIENT is defined:
|
|
|
|
EASYCAP_NEEDS_V4L2_DEVICE_H
|
|
EASYCAP_NEEDS_V4L2_FOPS
|
|
EASYCAP_NEEDS_UNLOCKED_IOCTL
|
|
|
|
If the build is performed out-of-tree against older kernels the parameters
|
|
to be defined depend on the kernel version in a way which will not be
|
|
discussed here.
|
|
|
|
|
|
KNOWN RUNTIME ISSUES
|
|
--------------------
|
|
|
|
(1) Intentionally, this driver will not stream material which is unambiguously
|
|
identified by the hardware as copy-protected. Normal video output will be
|
|
present for about a minute but will then freeze when this situation arises.
|
|
|
|
(2) The controls for luminance, contrast, saturation, hue and volume may not
|
|
always work properly.
|
|
|
|
(3) Reduced-resolution S-Video seems to suffer from moire artefacts.
|
|
|
|
|
|
INPUT NUMBERING
|
|
---------------
|
|
|
|
For the EasyCAP with S-VIDEO input cable the driver regards a request for
|
|
inputs numbered 0 or 1 as referring to CVBS and a request for input
|
|
numbered 5 as referring to S-VIDEO.
|
|
|
|
For the EasyCAP with four CVBS inputs the driver expects to be asked for
|
|
any one of inputs numbered 1,2,3,4. If input 0 is asked for, it is
|
|
interpreted as input 1.
|
|
|
|
|
|
MODULE PARAMETERS
|
|
-----------------
|
|
|
|
Three module parameters are defined:
|
|
|
|
debug the easycap module is configured at diagnostic level n (0 to 9)
|
|
gain audio gain level n (0 to 31, default is 16)
|
|
bars 0 => testcard bars when incoming video signal is lost
|
|
1 => testcard bars when incoming video signal is lost (default)
|
|
|
|
|
|
SUPPORTED TV STANDARDS AND RESOLUTIONS
|
|
--------------------------------------
|
|
|
|
The following TV standards are natively supported by the hardware and are
|
|
usable as (for example) the "norm=" parameter in the mplayer command:
|
|
|
|
PAL_BGHIN, NTSC_N_443,
|
|
PAL_Nc, NTSC_N,
|
|
SECAM, NTSC_M, NTSC_M_JP,
|
|
PAL_60, NTSC_443,
|
|
PAL_M.
|
|
|
|
In addition, the driver offers "custom" pseudo-standards with a framerate
|
|
which is 20% of the usual framerate. These pseudo-standards are named:
|
|
|
|
PAL_BGHIN_SLOW, NTSC_N_443_SLOW,
|
|
PAL_Nc_SLOW, NTSC_N_SLOW,
|
|
SECAM_SLOW, NTSC_M_SLOW, NTSC_M_JP_SLOW,
|
|
PAL_60_SLOW, NTSC_443_SLOW,
|
|
PAL_M_SLOW.
|
|
|
|
|
|
The available picture sizes are:
|
|
|
|
at 25 frames per second: 720x576, 704x576, 640x480, 360x288, 320x240;
|
|
at 30 frames per second: 720x480, 640x480, 360x240, 320x240.
|
|
|
|
|
|
WHAT'S TESTED AND WHAT'S NOT
|
|
----------------------------
|
|
|
|
This driver is known to work with mplayer, mencoder, tvtime, zoneminder,
|
|
xawtv, gstreamer and sufficiently recent versions of vlc. An interface
|
|
to ffmpeg is implemented, but serious audio-video synchronization problems
|
|
remain.
|
|
|
|
The driver is designed to support all the TV standards accepted by the
|
|
hardware, but as yet it has actually been tested on only a few of these.
|
|
|
|
I have been unable to test and calibrate the S-video input myself because I
|
|
do not possess any equipment with S-video output.
|
|
|
|
This driver does not understand the V4L1 IOCTL commands.
|
|
|
|
|
|
UDEV RULES
|
|
----------
|
|
|
|
In order that the special files /dev/easycap0 and /dev/easysnd1 are created
|
|
with conveniently relaxed permissions when the EasyCAP is plugged in, a file
|
|
is preferably to be provided in directory /etc/udev/rules.d with content:
|
|
|
|
ACTION!="add|change", GOTO="easycap_rules_end"
|
|
ATTRS{idVendor}=="05e1", ATTRS{idProduct}=="0408", \
|
|
MODE="0666", OWNER="root", GROUP="root"
|
|
LABEL="easycap_rules_end"
|
|
|
|
|
|
MODPROBE CONFIGURATION
|
|
----------------------
|
|
|
|
The easycap module is in competition with the module snd-usb-audio for the
|
|
EasyCAP's audio channel, and its installation can be aided by providing a
|
|
file in directory /etc/modprobe.d with content:
|
|
|
|
options easycap gain=16 bars=1
|
|
install easycap /sbin/rmmod snd-usb-audio; /sbin/modprobe --ignore-install easycap
|
|
|
|
|
|
ACKNOWLEGEMENTS AND REFERENCES
|
|
------------------------------
|
|
This driver makes use of information contained in the Syntek Semicon DC-1125
|
|
Driver, presently maintained at http://sourceforge.net/projects/syntekdriver/
|
|
by Nicolas Vivien. Particularly useful has been a patch to the latter driver
|
|
provided by Ivor Hewitt in January 2009. The NTSC implementation is taken
|
|
from the work of Ben Trask.
|
|
|