Since this is my first post, let me start by saying thank you to all the devs and community for a great product.
I am having a weird problem that I need help figuring out. When I stream from LMS to squeezelite the music sometimes stops playing for 20-30 seconds and then resumes playing again.
After a bit of troubleshooting I figured out that this happens because of the buffer underrun condition, but I don't know what is causing it.
On the server side I am running LMS v8.1.1 on virtualized Ubuntu 20.04.2 LTS. On the client side I started with Squeezelite-X on Windows 10, but then switched to plain squeezelite to help with troubleshooting.
squeezelite startup:
squeezelite streaming song that stops playing:
LMS log to follow.
I am having a weird problem that I need help figuring out. When I stream from LMS to squeezelite the music sometimes stops playing for 20-30 seconds and then resumes playing again.
After a bit of troubleshooting I figured out that this happens because of the buffer underrun condition, but I don't know what is causing it.
On the server side I am running LMS v8.1.1 on virtualized Ubuntu 20.04.2 LTS. On the client side I started with Squeezelite-X on Windows 10, but then switched to plain squeezelite to help with troubleshooting.
squeezelite startup:
Code:
D:\squeezelite-x64.exe -n Bob -s lms.network.lan -C 60 -o Topping E30 (2- TOPPING USB DAC) [Windows WASAPI] -m 00:02:c9:aa:bb:cc -M Squeezelite-X -d all=debug -f squeezelite_03.log
[01:07:59.299] stream_init:454 init stream
[01:07:59.299] stream_init:455 streambuf size: 2097152
[01:07:59.299] output_init_pa:573 init output
[01:07:59.299] output_init_pa:593 requested latency: 0
[01:07:59.352] output_init_common:360 outputbuf size: 3528000
[01:07:59.352] output_init_common:384 idle timeout: 60000
[01:07:59.368] output_init_common:432 supported rates: 44100
[01:07:59.368] decode_init:153 init decode
[01:07:59.368] register_dsd:908 using dsd to decode dsf,dff
[01:07:59.368] register_alac:549 using alac to decode alc
[01:07:59.368] pa_monitor:275 start monitor thread
[01:07:59.430] register_faad:663 using faad to decode aac
[01:07:59.430] register_vorbis:385 using vorbis to decode ogg
[01:07:59.430] register_opus:329 using opus to decode ops
[01:07:59.430] register_flac:332 using flac to decode ogf,flc
[01:07:59.430] register_pcm:483 using pcm to decode aif,pcm
[01:07:59.430] register_mad:423 using mad to decode mp3
[01:07:59.430] decode_init:194 include codecs: exclude codecs:
[01:07:59.430] slimproto:898 connecting to 192.168.10.17:3483
[01:07:59.430] slimproto:937 connected
[01:07:59.430] sendHELO:148 mac: 00:02:c9:aa:bb:cc
[01:07:59.430] sendHELO:150 cap: CanHTTPS=1,Model=squeezelite,AccuratePlayPoints=1,HasDigitalOut=1,HasPolarityInversion=1,Balance=1,Firmware=v1.9.9-1386,ModelName=Squeezelite-X,MaxSampleRate=44100,dsf,dff,alc,aac,ogg,ops,ogf,flc,aif,pcm,mp3
[01:07:59.430] process:528 strm
[01:07:59.430] process_strm:280 strm command q
[01:07:59.430] decode_flush:236 decode flush
[01:07:59.430] output_flush:445 flush output buffer
[01:07:59.430] sendSTAT:195 STAT: STMf
[01:07:59.446] process:528 strm
[01:07:59.446] process_strm:280 strm command q
[01:07:59.446] decode_flush:236 decode flush
[01:07:59.446] output_flush:445 flush output buffer
[01:07:59.446] sendSTAT:195 STAT: STMf
[01:07:59.446] process:528 setd
[01:07:59.446] sendSETDName:254 set playername: Bob
[01:07:59.446] process:528 setd
[01:07:59.446] process:528 aude
[01:07:59.446] process_aude:422 enable spdif: 1 dac: 1
[01:07:59.446] process:528 audg
[01:07:59.446] process_audg:440 audg gainL: 0 gainR: 0 adjust: 1
[01:07:59.446] set_volume:111 setting internal gain left: 0 right: 0
[01:08:04.301] process:528 strm
[01:08:04.301] process_strm:280 strm command t
[01:08:04.301] sendSTAT:195 STAT: STMt
[01:08:08.296] process:528 strm
Code:
[01:08:54.963] decode_thread:100 decode complete
[01:08:54.963] sendSTAT:195 STAT: STMd
[01:08:54.963] sendSTAT:195 STAT: STMt
[01:08:54.980] process:528 strm
[01:08:54.980] process_strm:280 strm command s
[01:08:54.980] process_strm:350 strm s autostart: 1 transition period: 10 transition type: 0 codec: m
[01:08:54.980] sendSTAT:195 STAT: STMf
[01:08:54.980] codec_open:264 codec open: 'm'
[01:08:54.980] connect_socket:164 connecting to 192.168.10.17:9000
[01:08:54.991] stream_sock:600 header: GET /stream.mp3?player=00:02:c9:aa:bb:cc HTTP/1.0
[01:08:54.991] sendSTAT:195 STAT: STMc
[01:08:54.991] process_strm:384 set fade mode: 0, channels: 0, invert: 0
[01:08:54.991] process:528 audg
[01:08:54.991] process_audg:440 audg gainL: 65536 gainR: 65536 adjust: 1
[01:08:54.991] set_volume:111 setting internal gain left: 65536 right: 65536
[01:08:55.044] stream_thread:331 headers: len: 491
HTTP/1.1 200 OK
Server: Logitech Media Server (8.1.1 - 1610364019)
Connection: close
Content-Type: audio/mpeg
Set-Cookie: Squeezebox-albumView=; path=/
Set-Cookie: Squeezebox-expandPlayerControl=true; path=/
Set-Cookie: Squeezebox-expanded-MY_MUSIC=1; path=/
Set-Cookie: Squeezebox-expanded-FAVORITES=0; path=/
Set-Cookie: Squeezebox-expanded-PLUGINS=0; path=/
Set-Cookie: Squeezebox-expanded-PLUGIN_MY_APPS_MODULE_NAME=0; path=/
Set-Cookie: Squeezebox-expanded-RADIO=0; path=/
[01:08:55.044] sendRESP:226 RESP
[01:08:55.064] _check_lame_header:163 gapless: skip: 2257 samples: 10164756 delay: 1105 padding: 1691
[01:08:55.064] mad_decode:247 setting track_start
[01:08:55.064] mad_decode:276 gapless: skipping 1152 frames at start
[01:08:55.064] mad_decode:276 gapless: skipping 1105 frames at start
[01:08:55.306] process:528 strm
[01:08:55.306] process_strm:280 strm command t
[01:08:55.306] sendSTAT:195 STAT: STMt
[01:08:56.307] sendSTAT:195 STAT: STMt
[01:08:58.309] sendSTAT:195 STAT: STMt
[01:08:59.307] process:528 strm
[01:08:59.307] process_strm:280 strm command t
[01:08:59.307] sendSTAT:195 STAT: STMt
[01:09:00.308] sendSTAT:195 STAT: STMt
[01:09:02.309] sendSTAT:195 STAT: STMt
[01:09:03.307] process:528 strm
[01:09:03.307] process_strm:280 strm command t
[01:09:03.307] sendSTAT:195 STAT: STMt
[01:09:04.308] sendSTAT:195 STAT: STMt
[01:09:04.386] _output_frames:153 track start sample rate: 44100 replay_gain: 0
[01:09:04.386] pa_callback:525 pad with silence
[01:09:05.308] sendSTAT:195 STAT: STMs
[01:09:06.308] sendSTAT:195 STAT: STMt
[01:09:07.307] process:528 strm
[01:09:07.307] process_strm:280 strm command t
[01:09:07.307] sendSTAT:195 STAT: STMt
[01:09:08.307] sendSTAT:195 STAT: STMt
[01:09:10.308] sendSTAT:195 STAT: STMt
[01:09:11.306] process:528 strm
...
[01:11:47.302] process_strm:280 strm command t
[01:11:47.302] sendSTAT:195 STAT: STMt
[01:11:49.304] sendSTAT:195 STAT: STMt
[01:11:49.304] sendSTAT:195 STAT: STMo <-- buffer underrun
[01:11:49.309] process:528 strm
[01:11:49.309] process_strm:280 strm command p
[01:11:49.309] sendSTAT:195 STAT: STMp
[01:11:49.309] process_strm:316 pause interval: 0
[01:11:49.437] process:528 strm
[01:11:49.437] process_strm:280 strm command t
[01:11:49.437] sendSTAT:195 STAT: STMt
[01:11:49.738] process:528 strm
...
[01:12:20.155] process_strm:280 strm command t
[01:12:20.155] sendSTAT:195 STAT: STMt
[01:12:20.457] process:528 strm
[01:12:20.457] process_strm:280 strm command q
[01:12:20.457] decode_flush:236 decode flush
[01:12:20.457] output_flush:445 flush output buffer
[01:12:20.457] sendSTAT:195 STAT: STMf
[01:12:20.471] process:528 audg
[01:12:20.471] process_audg:440 audg gainL: 65536 gainR: 65536 adjust: 1
[01:12:20.471] set_volume:111 setting internal gain left: 65536 right: 65536
[01:12:20.473] process:528 strm
[01:12:20.473] process_strm:280 strm command s <-- starts playing music again
[01:12:20.473] process_strm:350 strm s autostart: 1 transition period: 10 transition type: 0 codec: m
[01:12:20.473] sendSTAT:195 STAT: STMf
[01:12:20.473] codec_open:264 codec open: 'm'
[01:12:20.473] connect_socket:164 connecting to 192.168.10.17:9000
[01:12:20.484] stream_sock:600 header: GET /stream.mp3?player=00:02:c9:aa:bb:cc HTTP/1.0
[01:12:20.484] sendSTAT:195 STAT: STMc
[01:12:20.484] process_strm:384 set fade mode: 0, channels: 0, invert: 0
[01:12:20.484] process:528 audg
[01:12:20.484] process_audg:440 audg gainL: 65536 gainR: 65536 adjust: 1
[01:12:20.484] set_volume:111 setting internal gain left: 65536 right: 65536
[01:12:20.562] stream_thread:331 headers: len: 491
HTTP/1.1 200 OK
Server: Logitech Media Server (8.1.1 - 1610364019)
Connection: close
Content-Type: audio/mpeg
Set-Cookie: Squeezebox-albumView=; path=/
Set-Cookie: Squeezebox-expandPlayerControl=true; path=/
Set-Cookie: Squeezebox-expanded-MY_MUSIC=1; path=/
Set-Cookie: Squeezebox-expanded-FAVORITES=1; path=/
Set-Cookie: Squeezebox-expanded-PLUGINS=1; path=/
Set-Cookie: Squeezebox-expanded-PLUGIN_MY_APPS_MODULE_NAME=1; path=/
Set-Cookie: Squeezebox-expanded-RADIO=1; path=/
[01:12:20.562] sendRESP:226 RESP
[01:12:20.649] _check_lame_header:163 gapless: skip: 2257 samples: 10164756 delay: 1105 padding: 1691
[01:12:20.649] mad_decode:247 setting track_start
[01:12:20.649] mad_decode:276 gapless: skipping 1152 frames at start
[01:12:20.649] mad_decode:276 gapless: skipping 1105 frames at start
[01:12:20.650] _output_frames:65 start buffer frames: 18479
[01:12:20.650] _output_frames:153 track start sample rate: 44100 replay_gain: 0
[01:12:20.650] pa_callback:525 pad with silence
[01:12:20.650] sendSTAT:195 STAT: STMs
[01:12:20.650] sendSTAT:195 STAT: STMt
[01:12:20.973] stream_thread:404 end of stream (1691381 bytes)
[01:12:20.973] sendDSCO:214 DSCO: 0
[01:12:21.973] sendSTAT:195 STAT: STMt
[01:12:23.303] sendSTAT:195 STAT: STMt
[01:12:23.303] process:528 strm
...
[01:13:16.300] process_strm:280 strm command t
[01:13:16.300] sendSTAT:195 STAT: STMt
[01:13:17.163] mad_decode:207 end of stream
[01:13:17.163] mad_decode:292 gapless: early end - trimming padding from end
[01:13:17.163] decode_thread:100 decode complete
[01:13:17.163] sendSTAT:195 STAT: STMd
[01:13:17.163] sendSTAT:195 STAT: STMt