arv <arvindhandroidin <at> gmail.com> writes:

> 
> Hi All,
> 
> I am trying to playback audio from Android phone using USB AOAv2. (PCM
> audio, 16bit, 44.1 KHz, stereo) on a Wandboard Quad (i.MX6) board running
> Ubuntu 14.04.
> 
> The detection of phone is fine and playback via alsa commands/gstreamer is
> successful.
> But during playback, there are distortions in the sound. 
> 
> dmesg prints as follows,
> retire_capture_urb: x callbacks suppressed ----->[x is around 41 to 300]
> retire_capture_urb: x callbacks suppressed
> retire_capture_urb: x callbacks suppressed
> retire_capture_urb: x callbacks suppressed
> 
> arecord command prints underrun occurred.
> 
> So each time, retire_capture_urb is printed, there is a distortion.
> 
> I tried the same program on different machines.
> Following are the results,
> On Wandboard, the distortions happen each 40 seconds or so.
> On a Linux server PC running Ubuntu 14.04 the audio breaks are more frequent.
> On a Linux PC running Ubuntu 12.02 the audio breaks are less frequent.
> 
> Could anyone guide me on how retire_capture_urb be prevented or how can a
> smooth playback be achieved ? 
> 
> Should there be any special configurations done at USB driver ?
> 
> lsusb -v print is as follows, The synch type for the endpoint appears to be
> enumerated as Synchronous. Could the synch type be modified using libusb, is
> this the cause of underrun?
> 
> Bus 001 Device 004: ID 18d1:2d02 Google Inc.
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.00
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   idVendor           0x18d1 Google Inc.
>   idProduct          0x2d02
>   bcdDevice           ff.ff
>   iManufacturer           1 motorola
>   iProduct                2 MotoG3-TE
>   iSerial                 3 ZY222WB7TT
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength          110
>     bNumInterfaces          2
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0x80
>       (Bus Powered)
>     MaxPower              500mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass         1 Audio
>       bInterfaceSubClass      1 Control Device
>       bInterfaceProtocol      0
>       iInterface              0
>       AudioControl Interface Descriptor:
>         bLength                10
>         bDescriptorType        36
>         bDescriptorSubtype      1 (HEADER)
>         bcdADC               1.00
>         wTotalLength           40
>         bInCollection           2
>         baInterfaceNr( 0)       0
>         baInterfaceNr( 1)       1
>       AudioControl Interface Descriptor:
>         bLength                12
>         bDescriptorType        36
>         bDescriptorSubtype      2 (INPUT_TERMINAL)
>         bTerminalID             1
>         wTerminalType      0x0201 Microphone
>         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             3
>         wTerminalType      0x0101 USB Streaming
>         bAssocTerminal          2
>         bSourceID               2
>         iTerminal               0
>       AudioControl Interface Descriptor:
>         bLength                 9
>         bDescriptorType        36
>         bDescriptorSubtype      6 (FEATURE_UNIT)
>         bUnitID                 2
>         bSourceID               1
>         bControlSize            2
>         bmaControls( 0)      0x00
>         bmaControls( 0)      0x00
>         iFeature                0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       0
>       bNumEndpoints           0
>       bInterfaceClass         1 Audio
>       bInterfaceSubClass      2 Streaming
>       bInterfaceProtocol      0
>       iInterface              0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        1
>       bAlternateSetting       1
>       bNumEndpoints           1
>       bInterfaceClass         1 Audio
>       bInterfaceSubClass      2 Streaming
>       bInterfaceProtocol      0
>       iInterface              0
>       AudioStreaming Interface Descriptor:
>         bLength                 7
>         bDescriptorType        36
>         bDescriptorSubtype      1 (AS_GENERAL)
>         bTerminalLink           1
>         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]        44100
>       Endpoint Descriptor:
>         bLength                 9
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes           13
>           Transfer Type            Isochronous
>           Synch Type               Synchronous
>           Usage Type               Data
>         wMaxPacketSize     0x0100  1x 256 bytes
>         bInterval               4
>         bRefresh                0
>         bSynchAddress           0
>         AudioControl Endpoint Descriptor:
>           bLength                 7
>           bDescriptorType        37
>           bDescriptorSubtype      1 (EP_GENERAL)
>           bmAttributes         0x01
>             Sampling Frequency
>           bLockDelayUnits         1 Milliseconds
>           wLockDelay              1 Milliseconds
> Device Qualifier (for other device speed):
>   bLength                10
>   bDescriptorType         6
>   bcdUSB               2.00
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   bNumConfigurations      1
> Device Status:     0x0000
>   (Bus Powered)
> 
> Thanks for the help..
> 
> 

Hi All,

 Adding to the previous message, 

I execute the following commands 
arecord -f cd -v -D plug:hw:3 | aplay -f cd -v -D plug:hw:0
and the prints are as follows, 

Recording WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo:hw:0
Plug PCM: Hardware PCM card 3 'MotoG3-TE' device 0 subdevice 0
Its setup is:
  stream       : CAPTURE
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 44100
  exact rate   : 44100 (44100/1)
  msbits       : 16
  buffer_size  : 22050
  period_size  : 5513
  period_time  : 125011
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 5513
  period_event : 0
  start_threshold  : 1
  stop_threshold   : 22050
  silence_threshold: 0
  silence_size : 0
  boundary     : 1445068800
  appl_ptr     : 0
  hw_ptr       : 0
Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Plug PCM: Hardware PCM card 0 'imx6-wandboard-sgtl5000' device 0 subdevice 0
Its setup is:
  stream       : PLAYBACK
  access       : RW_INTERLEAVED
  format       : S16_LE
  subformat    : STD
  channels     : 2
  rate         : 44100
  exact rate   : 44100 (44100/1)
  msbits       : 16
  buffer_size  : 16384
  period_size  : 4096
  period_time  : 92879
  tstamp_mode  : NONE
  period_step  : 1
  avail_min    : 4096
  period_event : 0
  start_threshold  : 16384
  stop_threshold   : 16384
  silence_threshold: 0
  silence_size : 0
  boundary     : 1073741824
  appl_ptr     : 0
  hw_ptr       : 0


underrun!!! (at least 0.967 ms long)
Status:
  state       : XRUN
  trigger_time: 3093.357585367
  tstamp      : 3093.367235700
  delay       : 0
  avail       : 16384
  avail_max   : 16384
underrun!!! (at least 0.863 ms long)
Status:
  state       : XRUN
  trigger_time: 3189.419589045
  tstamp      : 3189.428212045
  delay       : 0
  avail       : 16384
  avail_max   : 16384

hw:0 buffer is less than hw:3 buffer. is it why underrun happens? I couldn't
increase it beyond 16384...

Thanks for the help.






------------------------------------------------------------------------------
> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
> patterns at an interface-level. Reveals which users, apps, and protocols are 
> consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
> J-Flow, sFlow and other flows. Make informed decisions using capacity planning
> reports.http://sdm.link/zohodev2dev
> 





------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports.http://sdm.link/zohodev2dev
_______________________________________________
Alsa-user mailing list
Alsa-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-user

Reply via email to