USB audio bug in XP?



I connect full speed USB audio device with 24 bit 48kHz audio resolution
after USB highspeed root hub and a USB highspeed hub. After following
sentence
- start playback a music title with Windows media player
- start recording with MS audio recorder
- stop playback
- start playback
- stop recording

I get two different errors (depending on hub)
- audio distortion
- HID devices on this hub does not respont until playback is finished.

I take a trace with the USB analyzer and find following:
(example with audio disstortion)

Regarding to the USB spec, isochronous packets are splitted after 188 Bytes,
e.g.

48kHz 24bit stereo:
Split start packet - Split end packet
188 Bytes - 100 bytes

while starting and stopping playback and recording streams the host
controller (Windows OS)
has to ensure writing and reading of the hub buffers in order.
Our faulty sequence looks as follows (including HID polling)
1. HID only
Split packet
HID in request

2. Start playback
Split start packet - Split end packet - Split packet
188 Bytes - 100 bytes - HID in request

3. Start recording
Split start packet - Split end packet - Split packet - Split start
packet
188 Bytes - 100 bytes - HID in request - Audio In request

4. Stop playback
Split start packet - Split packet
Audio In request - HID in request

5. Start playback again
Split start packet - Split start packet - Split end packet - Split packet
Audio In request - 188 Bytes - 100 bytes - HID in request

6. Stop recording
Split start packet - Split packet - Split end packet
188 Bytes - HID in request - 100 bytes

this sequence violate the USB spec 2.0 Chapter 11.14.2.1 (Page 344) The
result is the audio disstortion
- send an iso out packet first with 186 bytes (loosing 2 Bytes audio data)
- send HID in request to UACB
- send another ISO out packet with 100 bytes from Split End packet

with this missing two bytes you can not recover from loosing audio samples
which results in audio distortions.

With other hubs I see no longer the HID requests on the full speed side of
the hub.
I think there is something wrong in the buffer ordering of the root hub
witch should be handeled by the USB driver of the operating system.
Has anybody any idea or a Microsoft contact to file this bug?

Regards
Mario
.



Relevant Pages

  • Re: USB 2.0 bandwidth bug in XP SP2?
    ... USB, each port has a maximum rate, each device has a maximum ... A hub can certainly handle input and output, ... | customers to just do that: plug the camera and usb audio ... | device capturing audio uses 1% usb bandwidth. ...
    (microsoft.public.windowsxp.hardware)
  • How to separate one audio packet into 2 small packets for transform filter?
    ... There is an audio pin in my driver. ... I use graphedit to test my driver and filter. ... the transform filter need to separate a packet ... For example, if the transform filter receive a packet with 240 bytes, ...
    (microsoft.public.win32.programmer.directx.video)
  • Re: tcpdump broken after rh9 2.4.20-27.9 kernel upgrade
    ... of the machines connected to the "hub". ... "true" hub and is either a switch or is using "switch like" functionality. ... The device reads the packet into a holding buffer. ... then if it only sends it to a port it has received packets ...
    (RedHat)
  • Re: Problem setting up a small network
    ... An ICS supplies DHCP and if it aint a NAT it sure works like one. ... > Along with that if he does have a hub and not a switch then he may have ... > last week and downloaded and ran Ethereal, a free packet sniffer he ... > network hub - but a problem that didn't exist prior to Win XP receiving ...
    (microsoft.public.windowsxp.general)
  • Re: Device with Ethernet - fails on switch, but works on hub
    ... Some operations that the switch will do will be MAC-based. ... The hub just sends all packets to all ports. ... connection on the device. ... It is broadcasting 2 packet. ...
    (microsoft.public.windowsce.embedded)