Dear Daniel (M) and Clemens,
I'd like to conclude this thread if I could. It seems clear that configuring our USB audio card's descriptor with a bInterval value of 1 (a packet every microframe) was too aggressive, and was part of what caused the packet stuttering issue. (Right?)
We almost certainly should increase bInterval; I'll try 2, and if that seems stable will probably go to 3 (4 microframes) for some margin. However, I'm still concerned that the symptoms don't sound like a simple starvation issue, where I'd expect to have a missing frame every once in a while. Instead, we were seeing reliable operation interspersed with periods where lots of packets were being consistently omitted. To me, this suggests that there's some other issue going on, either in the USB stack or in the USB hardware itself.
Given that, I'm worried that increasing bInterval will just move the symptoms around, making it harder to duplicate but not truly becoming robust.
Any thoughts on this? Should I try chasing the issue into the Linux USB development mailing list, or will they just say "set bInterval to a larger value!"?
Thanks, Dan