*********************************************************** * EasyCAP USB 2.0 Video Adapter with Audio, Model DC60 * * and * * EasyCAP002 4-Channel USB 2.0 DVR * *********************************************************** Mike Thomas 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 ------------------------------ 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. Use of the easycap module as a client of the videodev module has received very little testing as of June 2010. KNOWN BUILD PROBLEMS -------------------- (1) Recent gcc versions may generate the message: warning: the frame size of .... bytes is larger than 1024 bytes This warning can be suppressed by specifying in the Makefile: EXTRA_CFLAGS += -Wframe-larger-than=8192 but it would be preferable to remove the cause of the warning. KNOWN RUNTIME ISSUES -------------------- (1) Randomly (maybe 5 to 10% of occasions) the driver fails to produce any output at start-up. Closing mplayer (or whatever the user program is) and restarting it restores normal performance without any other remedial action being necessary. The reason for this is not known. (2) Intentionally, this driver will not stream material which is unambiguously identified by the hardware as copy-protected. The video output will freeze within about a minute when this situation arises. (3) The controls for luminance, contrast, saturation, hue and volume may not always work properly. (4) Reduced-resolution S-Video seems to suffer from moire artefacts. No attempt has yet been made to rememdy this. 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. 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 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, so programs such as camorama are not compatible. There are reports that the driver does work with sufficiently recent (V4L2) versions of zoneminder, but I have not attempted to confirm this myself. 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" 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.