USB audio bug in XP?
- From: Mario Schneider <MarioSchneider@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Mon, 17 Jul 2006 08:01:03 -0700
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
.
- Prev by Date: Cannot log in to local mode
- Next by Date: Re: Cannot log in to local mode
- Previous by thread: Cannot log in to local mode
- Next by thread: Allow renaming in NTFS, but not modifying files (NTFS)
- Index(es):
Relevant Pages
|