I have a driver that supports simultaneous playback and capture, but only if the same size and sample rate are the same.
I use these commands to play and capture audio:
aplay -D hw:0,0 -t raw -f S24_BE -r 48000 -c 2 test2.raw arecord -D hw:0,0 -t raw -f S24_BE -r 48000 -c 2 test.raw
If I start capture first and playback second, then everything works. If I start playback first and capture second, I get this:
underrun!!! (at least 1786051083.587 ms long) underrun!!! (at least 1786051083.586 ms long) underrun!!! (at least 1786051083.585 ms long) underrun!!! (at least 1786051083.585 ms long) ...
This repeats indefinitely.
Can someone explain how this is even possible? 1786051083.585ms is longer than 20 days! How could ALSA be so wrong about the extend of the underrun?