It happens more likely with small buffers and sometimes doesn't happen with larger buffer. However, this behavior is not consistent:
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=2048 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.025 ms long)
^CAborted by signal Interrupt...
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=4096 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.023 ms long)
^CAborted by signal Interrupt...
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=8192 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.023 ms long)
^CAborted by signal Interrupt...
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=16384 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.028 ms long)
^CAborted by signal Interrupt...
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=32768 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.045 ms long)
^CAborted by signal Interrupt...
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=65536 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.039 ms long)
^CAborted by signal Interrupt...
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=131072 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.046 ms long)
^CAborted by signal Interrupt...
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=262144 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
^CAborted by signal Interrupt...
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=262144 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.039 ms long)
^CAborted by signal Interrupt...
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=524288 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
^CAborted by signal Interrupt...
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=524288 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.046 ms long)
^CAborted by signal Interrupt...
%[homecomp]:[/tmp/test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=524288 test.wav
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.044 ms long)
^CAborted by signal Interrupt...
Ok, what about the original issue? I don't quite get what we are doing here. It looks like we're debugging something completely unrelated, for example, I don't use the digital output like iec958 and this game doesn't capture sound so this is probably unrelated, too. I'm fine with improving ALSA but all this looks like other bugs and should probably be filed separately...
It happens more likely with small buffers and sometimes doesn't happen with larger buffer. However, this behavior is not consistent: :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=2048 test.wav :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=4096 test.wav :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=8192 test.wav :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=16384 test.wav :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=32768 test.wav :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer-size=65536 test.wav :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer- size=131072 test.wav :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer- size=262144 test.wav :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer- size=262144 test.wav :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer- size=524288 test.wav :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer- size=524288 test.wav :[/tmp/ test]> arecord -f dat -D hw:CARD=CA0106 -t wav -d 5 --buffer- size=524288 test.wav
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.025 ms long)
^CAborted by signal Interrupt...
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.023 ms long)
^CAborted by signal Interrupt...
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.023 ms long)
^CAborted by signal Interrupt...
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.028 ms long)
^CAborted by signal Interrupt...
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.045 ms long)
^CAborted by signal Interrupt...
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.039 ms long)
^CAborted by signal Interrupt...
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.046 ms long)
^CAborted by signal Interrupt...
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
^CAborted by signal Interrupt...
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.039 ms long)
^CAborted by signal Interrupt...
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
^CAborted by signal Interrupt...
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.046 ms long)
^CAborted by signal Interrupt...
%[homecomp]
Recording WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
overrun!!! (at least 0.044 ms long)
^CAborted by signal Interrupt...
Ok, what about the original issue? I don't quite get what we are doing here. It looks like we're debugging something completely unrelated, for example, I don't use the digital output like iec958 and this game doesn't capture sound so this is probably unrelated, too. I'm fine with improving ALSA but all this looks like other bugs and should probably be filed separately...