Difference between revisions of "Stk1160 based USB 2.0 video and audio capture devices"

From LinuxTVWiki
Jump to: navigation, search
(mplayer example)
(17 intermediate revisions by one user not shown)
Line 1: Line 1:
This article covers all the devices which are based on the STK1160 chip  
+
This article covers all the tunerless USB 2.0 video and audio capture devices which are based on the STK1160 chip from [http://www.stk.com.tw/product-01.asp?Product_Type=32 Syntec Semiconductor.co.ltd.]. This device is convenient for capturing from cameras, VHS-tapes, receivers ... and even for small surveillance installation (4 inputs model).
  
Many but not all of these devices are branded as [[Easycap]].
+
Many but not all of these devices are branded as [[Easycap]]. Althought this device is sold with different names and labels, in many forums and blogs this device is called "EasyCAP DC60".
  
Althought this device is sold with different names and labels, in many forums and blogs this device is called "EasyCAP DC60".
+
==Overview/Features==
 +
* USB ID 05e1:0408
 +
* USB 2.0 interface (USB 1.1 will not work, it's too slow).
 +
* Video capturing up to 720x576px @ 25fps (PAL) and 720x480px @ 30fps (NTSC)
 +
* Inputs: (Model 001) CVBS, S-VIDEO, AUDIO(L), AUDIO(R)
 +
* Inputs: (Model 002) 4 yellow input cables (CVBS) labelled 1, 2, 3, 4 and one white unlabelled audio cable
 +
* Audioquality: Model 001 has AC'97 audio (48000 Hz samplerate), model 002 (and some models 001 where the AC'97 chip is missing) has mono microphone audio (8000 Hz samplerate).
  
== How to identify your device ==
+
===Components Used===
 +
* Syntek STK1160 (USB video bridge)
 +
* [http://www.silan.com.cn/english/product/ProductItemDetail.aspx?id=18&pid=20090706092630633824691909652010&c=%E8%A7%86%E9%A2%91%E7%94%B5%E8%B7%AF Silan SC8113] (Philips SAA7113 compatible video decoder)
 +
* AC'97 audio processor (from different manufacturers. In models where this chip is missing audio capturing is done by the STK1160 chips built-in ADC for mono microphone audio recording.)
  
When '''lsusb''' reports the following output you have an STK1160 based video capture card:
+
===Other Images===
 +
<gallery>
 +
Image:Easycap.png|STK1160 based capture devices: Model 001 (left) Model 002 (right)
 +
Image:dc60-front.jpg|Front side of board
 +
Image:dc60-back.jpg|Back side of board
 +
</gallery>
  
  Bus 001 Device 002: ID 05e1:0408 Syntek Semiconductor Co., Ltd STK1160 Video Capture Device
+
===Identification===
 +
# lsusb
 +
Bus 001 Device 003: ID 05e1:0408 Syntek Semiconductor Co., Ltd STK1160 Video Capture Device
  
== Hardware ==
+
[[Stk1160#Full_lsusb_-v_output|lsusb -v see below]]
On the board of this USB 2.0 video capture device there is on the front side a green LED, the STK1160 USB Bridge and a SAA7113 compatible video processing chip (silan sc8113) and on the back side a AC97 audio chip (this chip is missing on the 8000 Hz audio models of this device).
+
[[File:dc60-front.jpg|350px]]
+
[[File:dc60-back.jpg|350px]]
+
  
== Drivers ==
+
==== Identify the audiotype of your device ====
  
=== eaysycap driver ===
+
The following shell command reports the audiorate (sampling frequency) of your STK1160 based device:
The easycap driver is part of the current kernel (since 2.6.38) and supports all the features of the STK1160 based devices but has some limitations (framedropping, stability, sound issues).
+
 
=== stk1160 driver ===
+
lsusb -v -d 05e1:0408 | grep tSamFreq | sed -e "s,^.* ,,"
The stk1160 driver is the successor of the easycap driver. It supports video capturing and audio capturing via ALSA. This driver doesn't suffer from the limitations of the easycap driver but is still under development. It is intended that the stk1160 module will replace the easycap module in one of the next kernel releases.
+
 
 +
* 48000 = Model with AC'97 chip
 +
* 8000 = Model without AC'97 chip
 +
 
 +
If you encounter audio problems while capturing you need to specify the correct audiorate of your model in the capturing program.
 +
 
 +
==Making it Work==
 +
STK1160 based devices ar supported under Linux since kernel 2.6.38
 +
 
 +
===Drivers===
 +
==== eaysycap driver (outdated) ====
 +
The easycap driver is part of the kernel from  2.6.38 up to 3.6.x and supports all the features of the STK1160 based devices but has some limitations (framedropping, stability, sound issues).
 +
 
 +
===== easycap audio support =====
 +
 
 +
The easycap module creates an additional ALSA soundcard '''EasyALSA0'''.
 +
 
 +
Often when the STK1160 device is plugged in the '''snd_usb_audio''' module conflicts with the easycap module and the EasyALSA0 soundcard is not created. As a workaround you need to unplug the device, unload the module (rmmod snd_usb_audio) and then plug in the device again.
 +
 
 +
==== stk1160 driver ====
 +
The stk1160 driver is the successor of the easycap driver. It supports video capturing and audio capturing via ALSA. This driver doesn't suffer from the limitations of the easycap driver. The stk1160 module replaces the easycap module in the 3.7 kernel release.
 +
 
 +
If you want to use the stk1160 driver in the 3.2, 3.4 or 3.6 kernel, you can get the sourcecode frome here:
  
 
[https://github.com/ezequielgarcia/stk1160-standalone stk1160 github repository]
 
[https://github.com/ezequielgarcia/stk1160-standalone stk1160 github repository]
Line 29: Line 64:
 
[http://easycap.blogspot.co.at/2012/07/new-driver-for-easycap-dc60-stk1160.html Additional installation instructions]
 
[http://easycap.blogspot.co.at/2012/07/new-driver-for-easycap-dc60-stk1160.html Additional installation instructions]
  
== Models ==
+
===== stk1160 audio support =====
[[File:easycap.png]]
+
+
These known STK1160 based models of the video capture device are supported by the above drivers. All models do have the same device USB ID 05e1:0408.
+
  
* Model 001 with input cables labelled CVBS, S-VIDEO, AUDIO(L), AUDIO(R) and  48000 Hz audio (AC'97 audio)
+
The stk1160 module registers a control-only alsa soundcard. This sound card is called '''stk1160-mixer'''.
 +
The real sound capture is done through the '''Controlle''' soundcard which is created after plugging in the STK1160 device by the snd_usb_audio module.
  
* Model 002 with 4 yellow input cables labelled 1, 2, 3, 4 and an white unlabelled microphone audio (8000 Hz)
+
To enable sound capture you have to select in alsamixer the 'Line' item on the capture menu for stk1160-mixer when the STK1160 device is plugged in:
 +
You can do this in the terminal as well with this command:
  
* Model 001m with input cables labelled CVBS, S-VIDEO, AUDIO(L), AUDIO(R) and 8000 Hz audio (microphone audio)
+
# amixer -c stk1160mixer sset Line unmute cap
(Obviously this device has the board of Model 002 but the cables of Model 001)
+
  
=== Identify the audiotype of your device ===
+
Note! In the viewing- or capturing program you must then select the 'Controlle' soundcard or its number to hear sound!
The following shell command reports the audio frequency of your STK1160 based device (48000 = Model 001; 8000 = Model 001m or Model 002).
+
  
  lsusb -v -d 05e1:0408 | grep tSamFreq | sed -e "s,^.* ,,"
+
===Sample Kernel Output===
  
=== Video channels ===
+
==== easycap module ====
 +
# dmesg
 +
[  250.728092] usb 1-2: new high speed USB device number 4 using ehci_hcd
 +
[  254.681355] easycap::0adjust_standard: selected standard: PAL_BGHIN
 +
[  254.992254] easycap::0adjust_format: sought:    640x480,UYVY(0x59565955),1=field,0x00=std mask
 +
[  254.992263] easycap::0adjust_format: sought:    V4L2_FIELD_NONE
 +
[  254.992273] easycap::0adjust_format: actioning: 640x480 PAL_BGHIN_AT_640x480_FMT_UYVY-n
 +
[  255.016137] easycap::0adjust_brightness: adjusting brightness to  0x7F
 +
[  255.040149] easycap::0adjust_contrast: adjusting contrast to  0x3F
 +
[  255.064162] easycap::0adjust_saturation: adjusting saturation to  0x2F
 +
[  255.088173] easycap::0adjust_hue: adjusting hue to  0x00
 +
[  255.089557] easycap::0easycap_usb_probe: registered with videodev: 0=minor
 +
[  255.089565] easycap::0easycap_usb_probe: ends successfully for interface 0
 +
[  255.089713] easycap::0easycap_usb_probe: ends successfully for interface 1
 +
[  255.090017] easycap::0easycap_usb_probe: audio hardware is AC'97
 +
[  255.090485] easycap::0easycap_alsa_probe: registered EasyALSA0
 +
[  255.090492] easycap::0easycap_usb_probe: ends successfully for interface 2
 +
[  255.091910] easycap:: easycap_open: ==========OPEN=========
 +
[  255.161078] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
 +
[  255.181331] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
 +
[  255.263624] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
 +
[  255.345927] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
 +
[  255.432975] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
 +
[  255.525395] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
 +
[  255.631195] snd_pcm_update_hw_ptr0: 24 callbacks suppressed
 +
[  256.341308] easycap::0adjust_standard: selected standard: PAL_BGHIN
 +
[  256.652338] easycap::0adjust_format: sought:    640x480,UYVY(0x59565955),1=field,0x00=std mask
 +
[  256.652346] easycap::0adjust_format: sought:    V4L2_FIELD_NONE
 +
[  256.652355] easycap::0adjust_format: actioning: 640x480 PAL_BGHIN_AT_640x480_FMT_UYVY-n
 +
[  256.676218] easycap::0adjust_brightness: adjusting brightness to  0x7F
 +
[  256.700233] easycap::0adjust_contrast: adjusting contrast to  0x3F
 +
[  256.724242] easycap::0adjust_saturation: adjusting saturation to  0x2F
 +
[  256.748129] easycap::0adjust_hue: adjusting hue to  0x00
  
From the two or four video cables on the device only one (!) can be used at the same time.  
+
==== stk1160 module  ====
If you have more than one camera, it is possible to switch in the capturing program from one channel to the other.
+
 +
# dmesg
 +
[16873.944081] usb 1-2: new high-speed USB device number 2 using ehci_hcd
 +
[16874.892446] Linux video capture interface: v2.00
 +
[16875.012940] usb 1-2: New device Syntek Semiconductor USB 2.0 Video Capture Controller @ 480 Mbps (05e1:0408, interface 0, class 0)
 +
[16875.012949] usb 1-2: video interface 0 found
 +
[16875.836259] saa7115 14-0025: saa7113 found (1f7113d0e100000) @ 0x4a (stk1160)
 +
[16877.372155] stk1160: driver ver 0.9.3 successfully loaded
 +
[16877.469999] stk1160: registers to NTSC like standard
 +
[16877.792436] stk1160 1-2:1.0: V4L2 device registered as video0
 +
[16877.793733] usbcore: registered new interface driver snd-usb-audio
 +
[16877.795409] usbcore: registered new interface driver stk1160
  
=== Usage ===
 
  
The driver for the STK1160 device creates a /dev/video'''N''' node and a ALSA soundcard, The different video-inputs of the device can be accessed by their inputnumber.
+
== Usage ==
  
In the viewing/ capturing program (e.g. mplayer) the videodevice, the input number of the cable where the source is plugged in, the TV norm of the videosource and the ALSA sounddevice must be specified.  
+
The STK1160 device needs a USB 2.0 capable USB port. USB 1.1 will not work (it's too slow).
==== Example for mplayer ====
+
 
 +
The driver for the STK1160 device creates a /dev/video'''N''' node and an ALSA soundcard, The different video-inputs of the device can be accessed by their inputnumber (starting at 0). <br/>
 +
''From the two or four video cables on the device only one (!) can be used at the same time. If you want to switch through the different inputs of your card you need to start the capturing program again with the next input number.''
 +
 
 +
In the viewing/ capturing program (e.g. mplayer) you must specify
 +
* the videodevicenode of the STK1160 card (/dev/video'''N'''),  
 +
* the input number of the cable where the source is plugged in,  
 +
* the TV norm of the videosource and (e.g. PAL, NTSC)
 +
* the ALSA sounddevice if you want to capture audio. Get a list of ALSA soundcards with this command:
 +
# cat /proc/asound/cards
 +
 
 +
''If you encounter audio problems while capturing you need to specify the [[Stk1160#Identify_the_audiotype_of_your_device|correct audiorate]] of your model in the capturing program.''
 +
 
 +
=== Example for mplayer ===
 
Assumed that your STK1160 device is the second videodevice (the first is your webcam) and the second soundcard on your system, and that on the first CVBS input a PAL camera is plugged in and sound also comes from the STK1160 device, the mplayer command for viewing would look like this:
 
Assumed that your STK1160 device is the second videodevice (the first is your webcam) and the second soundcard on your system, and that on the first CVBS input a PAL camera is plugged in and sound also comes from the STK1160 device, the mplayer command for viewing would look like this:
  
  mplayer tv:// -tv driver=v4l2:norm=PAL:width=720:height=576:outfmt=uyvy:device=/dev/video1:input=0:alsa:amode=1:forcechan=2:audiorate=48000:adevice=plughw.1,0:forceaudio:immediatemode=0 -ao sdl
+
mplayer tv:// -tv driver=v4l2:norm=PAL:width=720:height=576:outfmt=uyvy:device=/dev/video1:input=0:\
 +
alsa:adevice=hw.1:audiorate=48000:forceaudio:immediatemode=0 -ao sdl
 +
 
 +
=== More programs ===
 +
These programs are known to be useful for analogue audio- and videocapturing with STK1160 based (and similar) devices.
 +
 
 +
* qv4l2 - useful for testing
 +
* mplayer and mencoder
 +
* [http://code.google.com/p/mtvcgui/ mtvcgui] - Python GUI for mplayer and mencoder
 +
* VLC
 +
* TVtime
 +
* avconv (libav; formerly ffmpeg)
 +
* Zoneminder - Linux surveillance suite
 +
* Any other program which is capable of analogue video- and audiocapturing will probably work with STK1160 devices.
  
  
 
== Short linux driver history ==
 
== Short linux driver history ==
In early 2010 [http://sourceforge.net/projects/easycapdc60/ Mike Thomas] started to develop a driver for the stk1160 based video capture device which is sold as EasyCAP DC60. Since the driver (version 0.9) has been added to the staging directory of the Linux kernel in November 2011 Mike Thomas stopped his development and support for the easycapdriver.
+
In early 2010 [http://sourceforge.net/projects/easycapdc60/ Mike Thomas] started developing a driver for the STK1160 based video capture device which is sold as EasyCAP DC60. He used the [http://sourceforge.net/projects/syntekdriver/ stk11xx] driver and some existing [http://ubuntuforums.org/showthread.php?t=924504&page=3 patches] for the "05e1:0408" Syntek device as a basis for his project. Since the easycapdriver (version 0.9) has been added to the staging directory of the Linux kernel in November 2011 Mike Thomas stopped his development and support.
  
 
Some people added changes in order to clean up the sourcecode. These changes didn't hardly affect the limitations (framedropping, stability) of the driver.
 
Some people added changes in order to clean up the sourcecode. These changes didn't hardly affect the limitations (framedropping, stability) of the driver.
Line 69: Line 169:
 
At the middle of 2012 [https://github.com/ezequielgarcia/stk1160-standalone Ezequiel Garcia] decided to rework the easycapdriver. He changed the drivers name to "stk1160".  
 
At the middle of 2012 [https://github.com/ezequielgarcia/stk1160-standalone Ezequiel Garcia] decided to rework the easycapdriver. He changed the drivers name to "stk1160".  
  
In one of the next kernel releases (3.6/7) the stk1160 driver will come into mainlaine and then replace the old easycapdriver.
+
In the 3.7 kernel release the old easycapdriver has been replaced by the stk1160 driver.
 +
 
 +
 
 +
==External Links==
 +
 
 +
* [http://easycap.blogspot.co.at easycap.blogspot.co.at]  Blog supporting STK1160 based EasyCAP devices
 +
 
 +
 
 +
== Full lsusb -v output ==
 +
 
 +
The following lsusb -v output is from the STK1160 based model 001 with builtin AC'97 audio processor:
 +
# lsusb -v
 +
Bus 001 Device 002: ID 05e1:0408 Syntek Semiconductor Co., Ltd STK1160 Video Capture Device
 +
Couldn't open device, some information will be missing
 +
Device Descriptor:
 +
  bLength                18
 +
  bDescriptorType        1
 +
  bcdUSB              2.00
 +
  bDeviceClass            0 (Defined at Interface level)
 +
  bDeviceSubClass        0
 +
  bDeviceProtocol        0
 +
  bMaxPacketSize0        64
 +
  idVendor          0x05e1 Syntek Semiconductor Co., Ltd
 +
  idProduct          0x0408 STK1160 Video Capture Device
 +
  bcdDevice            0.05
 +
  iManufacturer          1
 +
  iProduct                2
 +
  iSerial                0
 +
  bNumConfigurations      1
 +
  Configuration Descriptor:
 +
    bLength                9
 +
    bDescriptorType        2
 +
    wTotalLength          251
 +
    bNumInterfaces          3
 +
    bConfigurationValue    1
 +
    iConfiguration          0
 +
    bmAttributes        0x80
 +
      (Bus Powered)
 +
    MaxPower              500mA
 +
    Interface Descriptor:
 +
      bLength                9
 +
      bDescriptorType        4
 +
      bInterfaceNumber        0
 +
      bAlternateSetting      0
 +
      bNumEndpoints          2
 +
      bInterfaceClass      255 Vendor Specific Class
 +
      bInterfaceSubClass    255 Vendor Specific Subclass
 +
      bInterfaceProtocol    255 Vendor Specific Protocol
 +
      iInterface              0
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x81  EP 1 IN
 +
        bmAttributes            3
 +
          Transfer Type            Interrupt
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0000  1x 0 bytes
 +
        bInterval              5
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x82  EP 2 IN
 +
        bmAttributes            1
 +
          Transfer Type            Isochronous
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0000  1x 0 bytes
 +
        bInterval              1
 +
    Interface Descriptor:
 +
      bLength                9
 +
      bDescriptorType        4
 +
      bInterfaceNumber        0
 +
      bAlternateSetting      1
 +
      bNumEndpoints          2
 +
      bInterfaceClass      255 Vendor Specific Class
 +
      bInterfaceSubClass    255 Vendor Specific Subclass
 +
      bInterfaceProtocol    255 Vendor Specific Protocol
 +
      iInterface              0
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x81  EP 1 IN
 +
        bmAttributes            3
 +
          Transfer Type            Interrupt
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0002  1x 2 bytes
 +
        bInterval              5
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x82  EP 2 IN
 +
        bmAttributes            1
 +
          Transfer Type            Isochronous
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0300  1x 768 bytes
 +
        bInterval              1
 +
    Interface Descriptor:
 +
      bLength                9
 +
      bDescriptorType        4
 +
      bInterfaceNumber        0
 +
      bAlternateSetting      2
 +
      bNumEndpoints          2
 +
      bInterfaceClass      255 Vendor Specific Class
 +
      bInterfaceSubClass    255 Vendor Specific Subclass
 +
      bInterfaceProtocol    255 Vendor Specific Protocol
 +
      iInterface              0
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x81  EP 1 IN
 +
        bmAttributes            3
 +
          Transfer Type            Interrupt
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0002  1x 2 bytes
 +
        bInterval              5
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x82  EP 2 IN
 +
        bmAttributes            1
 +
          Transfer Type            Isochronous
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x03fc  1x 1020 bytes
 +
        bInterval              1
 +
    Interface Descriptor:
 +
      bLength                9
 +
      bDescriptorType        4
 +
      bInterfaceNumber        0
 +
      bAlternateSetting      3
 +
      bNumEndpoints          2
 +
      bInterfaceClass      255 Vendor Specific Class
 +
      bInterfaceSubClass    255 Vendor Specific Subclass
 +
      bInterfaceProtocol    255 Vendor Specific Protocol
 +
      iInterface              0
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x81  EP 1 IN
 +
        bmAttributes            3
 +
          Transfer Type            Interrupt
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0002  1x 2 bytes
 +
        bInterval              5
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x82  EP 2 IN
 +
        bmAttributes            1
 +
          Transfer Type            Isochronous
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0400  1x 1024 bytes
 +
        bInterval              1
 +
    Interface Descriptor:
 +
      bLength                9
 +
      bDescriptorType        4
 +
      bInterfaceNumber        0
 +
      bAlternateSetting      4
 +
      bNumEndpoints          2
 +
      bInterfaceClass      255 Vendor Specific Class
 +
      bInterfaceSubClass    255 Vendor Specific Subclass
 +
      bInterfaceProtocol    255 Vendor Specific Protocol
 +
      iInterface              0
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x81  EP 1 IN
 +
        bmAttributes            3
 +
          Transfer Type            Interrupt
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0002  1x 2 bytes
 +
        bInterval              5
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x82  EP 2 IN
 +
        bmAttributes            1
 +
          Transfer Type            Isochronous
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0c00  2x 1024 bytes
 +
        bInterval              1
 +
    Interface Descriptor:
 +
      bLength                9
 +
      bDescriptorType        4
 +
      bInterfaceNumber        0
 +
      bAlternateSetting      5
 +
      bNumEndpoints          2
 +
      bInterfaceClass      255 Vendor Specific Class
 +
      bInterfaceSubClass    255 Vendor Specific Subclass
 +
      bInterfaceProtocol    255 Vendor Specific Protocol
 +
      iInterface              0
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x81  EP 1 IN
 +
        bmAttributes            3
 +
          Transfer Type            Interrupt
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0002  1x 2 bytes
 +
        bInterval              5
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x82  EP 2 IN
 +
        bmAttributes            1
 +
          Transfer Type            Isochronous
 +
          Synch Type              None
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x1400  3x 1024 bytes
 +
        bInterval              1
 +
    Interface Descriptor:
 +
      bLength                9
 +
      bDescriptorType        4
 +
      bInterfaceNumber        1
 +
      bAlternateSetting      0
 +
      bNumEndpoints          0
 +
      bInterfaceClass        1 Audio
 +
      bInterfaceSubClass      1 Control Device
 +
      bInterfaceProtocol      0
 +
      iInterface            11
 +
      AudioControl Interface Descriptor:
 +
        bLength                9
 +
        bDescriptorType        36
 +
        bDescriptorSubtype      1 (HEADER)
 +
        bcdADC              1.00
 +
        wTotalLength          38
 +
        bInCollection          1
 +
        baInterfaceNr( 0)      2
 +
      AudioControl Interface Descriptor:
 +
        bLength                12
 +
        bDescriptorType        36
 +
        bDescriptorSubtype      2 (INPUT_TERMINAL)
 +
        bTerminalID            1
 +
        wTerminalType      0x0602 Digital Audio Interface
 +
        bAssocTerminal          0
 +
        bNrChannels            2
 +
        wChannelConfig    0x0003
 +
          Left Front (L)
 +
          Right Front (R)
 +
        iChannelNames          0
 +
        iTerminal              0
 +
      AudioControl Interface Descriptor:
 +
        bLength                9
 +
        bDescriptorType        36
 +
        bDescriptorSubtype      3 (OUTPUT_TERMINAL)
 +
        bTerminalID            2
 +
        wTerminalType      0x0101 USB Streaming
 +
        bAssocTerminal          0
 +
        bSourceID              3
 +
        iTerminal              0
 +
      AudioControl Interface Descriptor:
 +
        bLength                8
 +
        bDescriptorType        36
 +
        bDescriptorSubtype      6 (FEATURE_UNIT)
 +
        bUnitID                3
 +
        bSourceID              1
 +
        bControlSize            1
 +
        bmaControls( 0)      0x01
 +
          Mute Control
 +
        iFeature                0
 +
    Interface Descriptor:
 +
      bLength                9
 +
      bDescriptorType        4
 +
      bInterfaceNumber        2
 +
      bAlternateSetting      0
 +
      bNumEndpoints          1
 +
      bInterfaceClass        1 Audio
 +
      bInterfaceSubClass      2 Streaming
 +
      bInterfaceProtocol      0
 +
      iInterface            11
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x84  EP 4 IN
 +
        bmAttributes            5
 +
          Transfer Type            Isochronous
 +
          Synch Type              Asynchronous
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0000  1x 0 bytes
 +
        bInterval              1
 +
    Interface Descriptor:
 +
      bLength                9
 +
      bDescriptorType        4
 +
      bInterfaceNumber        2
 +
      bAlternateSetting      1
 +
      bNumEndpoints          1
 +
      bInterfaceClass        1 Audio
 +
      bInterfaceSubClass      2 Streaming
 +
      bInterfaceProtocol      0
 +
      iInterface            11
 +
      AudioStreaming Interface Descriptor:
 +
        bLength                7
 +
        bDescriptorType        36
 +
        bDescriptorSubtype      1 (AS_GENERAL)
 +
        bTerminalLink          2
 +
        bDelay                  1 frames
 +
        wFormatTag              1 PCM
 +
      AudioStreaming Interface Descriptor:
 +
        bLength                11
 +
        bDescriptorType        36
 +
        bDescriptorSubtype      2 (FORMAT_TYPE)
 +
        bFormatType            1 (FORMAT_TYPE_I)
 +
        bNrChannels            2
 +
        bSubframeSize          2
 +
        bBitResolution        16
 +
        bSamFreqType            1 Discrete
 +
        tSamFreq[ 0]        48000
 +
      Endpoint Descriptor:
 +
        bLength                7
 +
        bDescriptorType        5
 +
        bEndpointAddress    0x84  EP 4 IN
 +
        bmAttributes            5
 +
          Transfer Type            Isochronous
 +
          Synch Type              Asynchronous
 +
          Usage Type              Data
 +
        wMaxPacketSize    0x0100  1x 256 bytes
 +
        bInterval              4
 +
        AudioControl Endpoint Descriptor:
 +
          bLength                7
 +
          bDescriptorType        37
 +
          bDescriptorSubtype      1 (EP_GENERAL)
 +
          bmAttributes        0x00
 +
          bLockDelayUnits        0 Undefined
 +
          wLockDelay              0 Undefined
 +
 
 +
 
 +
 
 +
 
 +
 
 +
[[Category:Analog USB Devices]] [[Category:Capture Devices]] [[Category:Hardware]] [[Category:Drivers]]

Revision as of 16:57, 7 February 2013

This article covers all the tunerless USB 2.0 video and audio capture devices which are based on the STK1160 chip from Syntec Semiconductor.co.ltd.. This device is convenient for capturing from cameras, VHS-tapes, receivers ... and even for small surveillance installation (4 inputs model).

Many but not all of these devices are branded as Easycap. Althought this device is sold with different names and labels, in many forums and blogs this device is called "EasyCAP DC60".

Overview/Features

  • USB ID 05e1:0408
  • USB 2.0 interface (USB 1.1 will not work, it's too slow).
  • Video capturing up to 720x576px @ 25fps (PAL) and 720x480px @ 30fps (NTSC)
  • Inputs: (Model 001) CVBS, S-VIDEO, AUDIO(L), AUDIO(R)
  • Inputs: (Model 002) 4 yellow input cables (CVBS) labelled 1, 2, 3, 4 and one white unlabelled audio cable
  • Audioquality: Model 001 has AC'97 audio (48000 Hz samplerate), model 002 (and some models 001 where the AC'97 chip is missing) has mono microphone audio (8000 Hz samplerate).

Components Used

  • Syntek STK1160 (USB video bridge)
  • Silan SC8113 (Philips SAA7113 compatible video decoder)
  • AC'97 audio processor (from different manufacturers. In models where this chip is missing audio capturing is done by the STK1160 chips built-in ADC for mono microphone audio recording.)

Other Images

Identification

# lsusb
Bus 001 Device 003: ID 05e1:0408 Syntek Semiconductor Co., Ltd STK1160 Video Capture Device

lsusb -v see below

Identify the audiotype of your device

The following shell command reports the audiorate (sampling frequency) of your STK1160 based device:

lsusb -v -d 05e1:0408 | grep tSamFreq | sed -e "s,^.* ,,"
  • 48000 = Model with AC'97 chip
  • 8000 = Model without AC'97 chip

If you encounter audio problems while capturing you need to specify the correct audiorate of your model in the capturing program.

Making it Work

STK1160 based devices ar supported under Linux since kernel 2.6.38

Drivers

eaysycap driver (outdated)

The easycap driver is part of the kernel from 2.6.38 up to 3.6.x and supports all the features of the STK1160 based devices but has some limitations (framedropping, stability, sound issues).

easycap audio support

The easycap module creates an additional ALSA soundcard EasyALSA0.

Often when the STK1160 device is plugged in the snd_usb_audio module conflicts with the easycap module and the EasyALSA0 soundcard is not created. As a workaround you need to unplug the device, unload the module (rmmod snd_usb_audio) and then plug in the device again.

stk1160 driver

The stk1160 driver is the successor of the easycap driver. It supports video capturing and audio capturing via ALSA. This driver doesn't suffer from the limitations of the easycap driver. The stk1160 module replaces the easycap module in the 3.7 kernel release.

If you want to use the stk1160 driver in the 3.2, 3.4 or 3.6 kernel, you can get the sourcecode frome here:

stk1160 github repository

stk1160 sourcecode-zipball for kernel 3.2

Additional installation instructions

stk1160 audio support

The stk1160 module registers a control-only alsa soundcard. This sound card is called stk1160-mixer. The real sound capture is done through the Controlle soundcard which is created after plugging in the STK1160 device by the snd_usb_audio module.

To enable sound capture you have to select in alsamixer the 'Line' item on the capture menu for stk1160-mixer when the STK1160 device is plugged in: You can do this in the terminal as well with this command:

# amixer -c stk1160mixer sset Line unmute cap 

Note! In the viewing- or capturing program you must then select the 'Controlle' soundcard or its number to hear sound!

Sample Kernel Output

easycap module

# dmesg 
[  250.728092] usb 1-2: new high speed USB device number 4 using ehci_hcd
[  254.681355] easycap::0adjust_standard: selected standard: PAL_BGHIN
[  254.992254] easycap::0adjust_format: sought:    640x480,UYVY(0x59565955),1=field,0x00=std mask
[  254.992263] easycap::0adjust_format: sought:    V4L2_FIELD_NONE
[  254.992273] easycap::0adjust_format: actioning: 640x480 PAL_BGHIN_AT_640x480_FMT_UYVY-n
[  255.016137] easycap::0adjust_brightness: adjusting brightness to  0x7F
[  255.040149] easycap::0adjust_contrast: adjusting contrast to  0x3F
[  255.064162] easycap::0adjust_saturation: adjusting saturation to  0x2F
[  255.088173] easycap::0adjust_hue: adjusting hue to  0x00
[  255.089557] easycap::0easycap_usb_probe: registered with videodev: 0=minor
[  255.089565] easycap::0easycap_usb_probe: ends successfully for interface 0
[  255.089713] easycap::0easycap_usb_probe: ends successfully for interface 1
[  255.090017] easycap::0easycap_usb_probe: audio hardware is AC'97
[  255.090485] easycap::0easycap_alsa_probe: registered EasyALSA0
[  255.090492] easycap::0easycap_usb_probe: ends successfully for interface 2
[  255.091910] easycap:: easycap_open: ==========OPEN=========
[  255.161078] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
[  255.181331] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
[  255.263624] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
[  255.345927] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
[  255.432975] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
[  255.525395] easycap::0audio_setup: 0x414C:0x4760 is audio vendor id
[  255.631195] snd_pcm_update_hw_ptr0: 24 callbacks suppressed
[  256.341308] easycap::0adjust_standard: selected standard: PAL_BGHIN
[  256.652338] easycap::0adjust_format: sought:    640x480,UYVY(0x59565955),1=field,0x00=std mask
[  256.652346] easycap::0adjust_format: sought:    V4L2_FIELD_NONE
[  256.652355] easycap::0adjust_format: actioning: 640x480 PAL_BGHIN_AT_640x480_FMT_UYVY-n
[  256.676218] easycap::0adjust_brightness: adjusting brightness to  0x7F
[  256.700233] easycap::0adjust_contrast: adjusting contrast to  0x3F
[  256.724242] easycap::0adjust_saturation: adjusting saturation to  0x2F
[  256.748129] easycap::0adjust_hue: adjusting hue to  0x00 

stk1160 module

# dmesg
[16873.944081] usb 1-2: new high-speed USB device number 2 using ehci_hcd
[16874.892446] Linux video capture interface: v2.00
[16875.012940] usb 1-2: New device Syntek Semiconductor USB 2.0 Video Capture Controller @ 480 Mbps (05e1:0408, interface 0, class 0)
[16875.012949] usb 1-2: video interface 0 found
[16875.836259] saa7115 14-0025: saa7113 found (1f7113d0e100000) @ 0x4a (stk1160)
[16877.372155] stk1160: driver ver 0.9.3 successfully loaded
[16877.469999] stk1160: registers to NTSC like standard
[16877.792436] stk1160 1-2:1.0: V4L2 device registered as video0
[16877.793733] usbcore: registered new interface driver snd-usb-audio
[16877.795409] usbcore: registered new interface driver stk1160


Usage

The STK1160 device needs a USB 2.0 capable USB port. USB 1.1 will not work (it's too slow).

The driver for the STK1160 device creates a /dev/videoN node and an ALSA soundcard, The different video-inputs of the device can be accessed by their inputnumber (starting at 0).
From the two or four video cables on the device only one (!) can be used at the same time. If you want to switch through the different inputs of your card you need to start the capturing program again with the next input number.

In the viewing/ capturing program (e.g. mplayer) you must specify

  • the videodevicenode of the STK1160 card (/dev/videoN),
  • the input number of the cable where the source is plugged in,
  • the TV norm of the videosource and (e.g. PAL, NTSC)
  • the ALSA sounddevice if you want to capture audio. Get a list of ALSA soundcards with this command:
# cat /proc/asound/cards

If you encounter audio problems while capturing you need to specify the correct audiorate of your model in the capturing program.

Example for mplayer

Assumed that your STK1160 device is the second videodevice (the first is your webcam) and the second soundcard on your system, and that on the first CVBS input a PAL camera is plugged in and sound also comes from the STK1160 device, the mplayer command for viewing would look like this:

mplayer tv:// -tv driver=v4l2:norm=PAL:width=720:height=576:outfmt=uyvy:device=/dev/video1:input=0:\
alsa:adevice=hw.1:audiorate=48000:forceaudio:immediatemode=0 -ao sdl

More programs

These programs are known to be useful for analogue audio- and videocapturing with STK1160 based (and similar) devices.

  • qv4l2 - useful for testing
  • mplayer and mencoder
  • mtvcgui - Python GUI for mplayer and mencoder
  • VLC
  • TVtime
  • avconv (libav; formerly ffmpeg)
  • Zoneminder - Linux surveillance suite
  • Any other program which is capable of analogue video- and audiocapturing will probably work with STK1160 devices.


Short linux driver history

In early 2010 Mike Thomas started developing a driver for the STK1160 based video capture device which is sold as EasyCAP DC60. He used the stk11xx driver and some existing patches for the "05e1:0408" Syntek device as a basis for his project. Since the easycapdriver (version 0.9) has been added to the staging directory of the Linux kernel in November 2011 Mike Thomas stopped his development and support.

Some people added changes in order to clean up the sourcecode. These changes didn't hardly affect the limitations (framedropping, stability) of the driver.

At the middle of 2012 Ezequiel Garcia decided to rework the easycapdriver. He changed the drivers name to "stk1160".

In the 3.7 kernel release the old easycapdriver has been replaced by the stk1160 driver.


External Links


Full lsusb -v output

The following lsusb -v output is from the STK1160 based model 001 with builtin AC'97 audio processor:

# lsusb -v
Bus 001 Device 002: ID 05e1:0408 Syntek Semiconductor Co., Ltd STK1160 Video Capture Device
Couldn't open device, some information will be missing
Device Descriptor:
 bLength                18
 bDescriptorType         1
 bcdUSB               2.00
 bDeviceClass            0 (Defined at Interface level)
 bDeviceSubClass         0 
 bDeviceProtocol         0 
 bMaxPacketSize0        64
 idVendor           0x05e1 Syntek Semiconductor Co., Ltd
 idProduct          0x0408 STK1160 Video Capture Device
 bcdDevice            0.05
 iManufacturer           1 
 iProduct                2 
 iSerial                 0 
 bNumConfigurations      1
 Configuration Descriptor:
   bLength                 9
   bDescriptorType         2
   wTotalLength          251
   bNumInterfaces          3
   bConfigurationValue     1
   iConfiguration          0 
   bmAttributes         0x80
     (Bus Powered)
   MaxPower              500mA
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       0
     bNumEndpoints           2
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass    255 Vendor Specific Subclass
     bInterfaceProtocol    255 Vendor Specific Protocol
     iInterface              0 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0000  1x 0 bytes
       bInterval               5
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x82  EP 2 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0000  1x 0 bytes
       bInterval               1
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       1
     bNumEndpoints           2
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass    255 Vendor Specific Subclass
     bInterfaceProtocol    255 Vendor Specific Protocol
     iInterface              0 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0002  1x 2 bytes
       bInterval               5
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x82  EP 2 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0300  1x 768 bytes
       bInterval               1
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       2
     bNumEndpoints           2
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass    255 Vendor Specific Subclass
     bInterfaceProtocol    255 Vendor Specific Protocol
     iInterface              0 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0002  1x 2 bytes
       bInterval               5
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x82  EP 2 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x03fc  1x 1020 bytes
       bInterval               1
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       3
     bNumEndpoints           2
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass    255 Vendor Specific Subclass
     bInterfaceProtocol    255 Vendor Specific Protocol
     iInterface              0 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0002  1x 2 bytes
       bInterval               5
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x82  EP 2 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0400  1x 1024 bytes
       bInterval               1
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       4
     bNumEndpoints           2
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass    255 Vendor Specific Subclass
     bInterfaceProtocol    255 Vendor Specific Protocol
     iInterface              0 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0002  1x 2 bytes
       bInterval               5
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x82  EP 2 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0c00  2x 1024 bytes
       bInterval               1
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        0
     bAlternateSetting       5
     bNumEndpoints           2
     bInterfaceClass       255 Vendor Specific Class
     bInterfaceSubClass    255 Vendor Specific Subclass
     bInterfaceProtocol    255 Vendor Specific Protocol
     iInterface              0 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x81  EP 1 IN
       bmAttributes            3
         Transfer Type            Interrupt
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x0002  1x 2 bytes
       bInterval               5
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x82  EP 2 IN
       bmAttributes            1
         Transfer Type            Isochronous
         Synch Type               None
         Usage Type               Data
       wMaxPacketSize     0x1400  3x 1024 bytes
       bInterval               1
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        1
     bAlternateSetting       0
     bNumEndpoints           0
     bInterfaceClass         1 Audio
     bInterfaceSubClass      1 Control Device
     bInterfaceProtocol      0 
     iInterface             11 
     AudioControl Interface Descriptor:
       bLength                 9
       bDescriptorType        36
       bDescriptorSubtype      1 (HEADER)
       bcdADC               1.00
       wTotalLength           38
       bInCollection           1
       baInterfaceNr( 0)       2
     AudioControl Interface Descriptor:
       bLength                12
       bDescriptorType        36
       bDescriptorSubtype      2 (INPUT_TERMINAL)
       bTerminalID             1
       wTerminalType      0x0602 Digital Audio Interface
       bAssocTerminal          0
       bNrChannels             2
       wChannelConfig     0x0003
         Left Front (L)
         Right Front (R)
       iChannelNames           0 
       iTerminal               0 
     AudioControl Interface Descriptor:
       bLength                 9
       bDescriptorType        36
       bDescriptorSubtype      3 (OUTPUT_TERMINAL)
       bTerminalID             2
       wTerminalType      0x0101 USB Streaming
       bAssocTerminal          0
       bSourceID               3
       iTerminal               0 
     AudioControl Interface Descriptor:
       bLength                 8
       bDescriptorType        36
       bDescriptorSubtype      6 (FEATURE_UNIT)
       bUnitID                 3
       bSourceID               1
       bControlSize            1
       bmaControls( 0)      0x01
         Mute Control
       iFeature                0 
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        2
     bAlternateSetting       0
     bNumEndpoints           1
     bInterfaceClass         1 Audio
     bInterfaceSubClass      2 Streaming
     bInterfaceProtocol      0 
     iInterface             11 
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x84  EP 4 IN
       bmAttributes            5
         Transfer Type            Isochronous
         Synch Type               Asynchronous
         Usage Type               Data
       wMaxPacketSize     0x0000  1x 0 bytes
       bInterval               1
   Interface Descriptor:
     bLength                 9
     bDescriptorType         4
     bInterfaceNumber        2
     bAlternateSetting       1
     bNumEndpoints           1
     bInterfaceClass         1 Audio
     bInterfaceSubClass      2 Streaming
     bInterfaceProtocol      0 
     iInterface             11 
     AudioStreaming Interface Descriptor:
       bLength                 7
       bDescriptorType        36
       bDescriptorSubtype      1 (AS_GENERAL)
       bTerminalLink           2
       bDelay                  1 frames
       wFormatTag              1 PCM
     AudioStreaming Interface Descriptor:
       bLength                11
       bDescriptorType        36
       bDescriptorSubtype      2 (FORMAT_TYPE)
       bFormatType             1 (FORMAT_TYPE_I)
       bNrChannels             2
       bSubframeSize           2
       bBitResolution         16
       bSamFreqType            1 Discrete
       tSamFreq[ 0]        48000
     Endpoint Descriptor:
       bLength                 7
       bDescriptorType         5
       bEndpointAddress     0x84  EP 4 IN
       bmAttributes            5
         Transfer Type            Isochronous
         Synch Type               Asynchronous
         Usage Type               Data
       wMaxPacketSize     0x0100  1x 256 bytes
       bInterval               4
       AudioControl Endpoint Descriptor:
         bLength                 7
         bDescriptorType        37
         bDescriptorSubtype      1 (EP_GENERAL)
         bmAttributes         0x00
         bLockDelayUnits         0 Undefined
         wLockDelay              0 Undefined