On Wed, Oct 13, 2010 at 09:47:13AM +0200, Felix Homann wrote:
Am 12.10.2010 12:26, schrieb Daniel Mack:
If that doesn't work, try debugging the value returned by urb.c:snd_usb_audio_next_packet_size(). For your device, you should end up in the "subs->stream->implicit_feedback" branch.
I've tested your patch. Unfortunately I don't get any sound. snd_usb_audio_next_packet_size() returns from the "subs->stream->implicit_feedback" branch. But the return value is always 0. ('frames' is returned, not the 0 from the if (WARN_ONCE...) statement).
Hmm, ok. That means that the capture stream doesn't see any data.
Any ideas how to proceed?
Sure :) Can you check whether the capture URBs are started when the playback stream is kicked off? It should be, and the 'retire' callbacks should increase the substream's frame counter. Due to the special case I added, the frames should now always be parsed for this very purpose, even if the record stream is not in use. You should trace why this doesn't happen. And once the capture stream sees data, snd_usb_audio_next_packet_size() will return more reasonable values, and the playback should also start.
Let me know what you find :)
Daniel