To Complete the analysis, I've added a setting to BBC Sounds that an interval can be set between fetching audio chunks from the BBC, effectively applying a throttle to the amount of data that can be made available to the radio.
Here is a log where I have specified at least 2 seconds occurs before the next 6 second chunk of audio is fetched from the BBC (on Audio-on-demand content).
It solves the problem, as the radio has time to decode, rather than filling up the input buffer. No underrun occurs. Effectively, prioritising decoding over input buffering.
Actually, I'm probably happy to release like this, with a default of 1 second interval throttling, you could probably argue that does have benefits server side.Code:Mar 1 11:54:07 squeezeplay: INFO audio.decode - Playback.lua:477 connect 172.16.0.8:9000 GET /stream.mp3?player=00:04:20:2c:fa:10 HTTP/1.0^M Mar 1 11:54:07 squeezeplay: DEBUG audio.decode - Playback.lua:194 source=stream Mar 1 11:54:07 squeezeplay: DEBUG audio.decode - stream_connectL:506 streambuf connect 172.16.0.8:9000 Mar 1 11:54:07 squeezeplay: DEBUG audio.decode - Playback.lua:1262 stopping local pause timer Mar 1 11:54:07 squeezeplay: DEBUG audio.decode - Playback.lua:1192 gainL, gainR: 1098 1098 Mar 1 11:54:08 squeezeplay: DEBUG audio.decode - Playback.lua:397 resume decoder, 63712 bytes buffered, decode threshold 2048 Mar 1 11:54:08 squeezeplay: DEBUG audio.decode - decode_resume_decoder:580 decode_resume_decoder Mar 1 11:54:08 squeezeplay: DEBUG audio.decode - decode_resume_decoder_handler:122 resume_decoder decode state: 1 audio state 0 Mar 1 11:54:08 squeezeplay: DEBUG audio.decode - debug_fullness:112 fullness: 63712 / 0 | 2.03% / 0.00% Mar 1 11:54:08 squeezeplay: DEBUG audio.decode - decode_output_samples:280 first buffer sample_rate=48000 Mar 1 11:54:08 squeezeplay: INFO audio.decode - Playback.lua:448 3.7%/0.5% Mar 1 11:54:08 squeezeplay: DEBUG audio.decode - Playback.lua:424 resume audio bytesReceivedL=190976 outputTime=234 threshold=122880 Mar 1 11:54:08 squeezeplay: DEBUG audio.decode - decode_resume_audio:601 decode_resume_audio start_jiffies=0 Mar 1 11:54:08 squeezeplay: DEBUG audio.decode - decode_resume_audio_handler:133 decode_resume_audio_handler start_jiffies=0 Mar 1 11:54:08 squeezeplay: DEBUG audio.decode - debug_fullness:112 fullness: 145920 / 106496 | 4.64% / 3.02% Mar 1 11:54:08 squeezeplay: DEBUG audio.decode - decode_resume_audio_handler:146 resume_audio decode state: 1 audio state 40 Mar 1 11:54:08 squeezeplay: DEBUG audio.decode - Playback.lua:381 status TRACK STARTED (elapsed: 112) Mar 1 11:54:09 squeezeplay: INFO audio.decode - Playback.lua:448 6.7%/6.4% Mar 1 11:54:10 squeezeplay: INFO audio.decode - Playback.lua:448 11.3%/8.7% Mar 1 11:54:11 squeezeplay: INFO audio.decode - Playback.lua:448 13.7%/10.7% Mar 1 11:54:13 squeezeplay: INFO audio.decode - Playback.lua:448 16.2%/14.5% Mar 1 11:54:14 squeezeplay: INFO audio.decode - Playback.lua:448 18.8%/15.2% Mar 1 11:54:15 squeezeplay: INFO audio.decode - Playback.lua:448 21.2%/18.5% Mar 1 11:54:16 squeezeplay: INFO audio.decode - Playback.lua:448 25.9%/18.9% Mar 1 11:54:17 squeezeplay: INFO audio.decode - Playback.lua:448 26.0%/24.4% Mar 1 11:54:18 squeezeplay: INFO audio.decode - Playback.lua:448 32.8%/24.7% Mar 1 11:54:19 squeezeplay: INFO audio.decode - Playback.lua:448 30.7%/29.3% Mar 1 11:54:20 squeezeplay: INFO audio.decode - Playback.lua:448 37.5%/30.6% Mar 1 11:54:21 squeezeplay: INFO audio.decode - Playback.lua:448 34.9%/40.6% Mar 1 11:54:22 squeezeplay: INFO audio.decode - Playback.lua:448 41.3%/45.3% Mar 1 11:54:23 squeezeplay: INFO audio.decode - Playback.lua:448 39.6%/48.0% Mar 1 11:54:24 squeezeplay: INFO audio.decode - Playback.lua:448 46.4%/48.6% Mar 1 11:54:25 squeezeplay: INFO audio.decode - Playback.lua:448 46.8%/50.8% Mar 1 11:54:29 squeezeplay: INFO audio.decode - Playback.lua:448 42.6%/98.9% Mar 1 11:54:29 squeezeplay: WARN net.thread - NetworkThread.lua:146 network thread timeout for Task(SocketHttp {piCorePlayer_Request}(R)) Mar 1 11:54:30 squeezeplay: INFO audio.decode - Playback.lua:448 51.6%/97.3% Mar 1 11:54:31 squeezeplay: INFO audio.decode - Playback.lua:448 56.4%/98.1% Mar 1 11:54:32 squeezeplay: INFO audio.decode - Playback.lua:448 56.5%/97.8% Mar 1 11:54:33 dropbear[2293]: Child connection from 172.16.0.70:40578 Mar 1 11:54:33 squeezeplay: INFO audio.decode - Playback.lua:448 62.0%/95.2% Mar 1 11:54:34 squeezeplay: INFO audio.decode - Playback.lua:448 63.1%/92.5% Mar 1 11:54:35 squeezeplay: INFO audio.decode - Playback.lua:448 67.7%/93.2% Mar 1 11:54:37 squeezeplay: INFO audio.decode - Playback.lua:448 72.5%/93.3% Mar 1 11:54:37 dropbear[2293]: Password auth succeeded for 'root' from 172.16.0.70:40578
Obviously, this is very BBC Sounds specific. What's your thoughts?
Results 311 to 317 of 317
-
2021-03-01, 05:00 #311
- Join Date
- Aug 2014
- Location
- UK
- Posts
- 351
ExpectingToFly Plugins :
- BBC Sounds : https://github.com/expectingtofly/LMS_BBC_Sounds_Plugin
- BBC Sounds Wiki : https://github.com/expectingtofly/LM...ds_Plugin/wiki
- Virgin Radio (UK) : https://github.com/expectingtofly/LM...n_Radio_Plugin
- Times Radio : https://github.com/expectingtofly/LM...S_RADIO_PLUGIN
-
2021-03-01, 06:35 #312
- Join Date
- Aug 2014
- Location
- UK
- Posts
- 351
Further to the above, I've tested applying the throttling to the r16835 release of the firmware. I can confirm it also eliminates the buffer underrruns for that release.
Last edited by expectingtofly; 2021-03-01 at 06:38.
ExpectingToFly Plugins :
- BBC Sounds : https://github.com/expectingtofly/LMS_BBC_Sounds_Plugin
- BBC Sounds Wiki : https://github.com/expectingtofly/LM...ds_Plugin/wiki
- Virgin Radio (UK) : https://github.com/expectingtofly/LM...n_Radio_Plugin
- Times Radio : https://github.com/expectingtofly/LM...S_RADIO_PLUGIN
-
2021-03-01, 06:55 #313
I think that's a good solution. I was replying to your previous regarding outputThreshold when I spotted these.
Basically, there are 2 threshold values sent from the server in the strm command.
1. $threshold - the KB of input buffer data before autostart or notify.
2. $output_Threshold - amount of output buffer data before playback starts, in tenths of a second.
and the player honours/ignores 1. depending on the auto start flag.
I've been investigating how the aac decoder implemented in the community firmware on the radio responses to the thresholds and under what conditions they are applied, but that's going to take some time.
That's great! Even with the bug in r16835 that reports that the number of decoded samples is only 1/4 of what's actually available, the throttle is enough to let the radio recover.
EDIT: Does the output buffer percentage, the 2nd value, approach 100% at any time using the r16835 released firmware?Last edited by ralphy; 2021-03-01 at 06:57.
Ralphy
1-Touch, 5-Classics, 3-Booms, 2-UE Radio
Squeezebox client builds donations always appreciated.
-
2021-03-01, 08:37 #314
- Join Date
- Aug 2014
- Location
- UK
- Posts
- 351
Alrighty, I'll do a bit of testing and release that then.
Yes it does, it has a similar profile to the patched version :
Code:Mar 1 16:04:25 squeezeplay: INFO audio.decode - Playback.lua:477 connect 172.16.0.8:9000 GET /stream.mp3?player=00:04:20:2a:dd:41 HTTP/1.0^M Mar 1 16:04:25 squeezeplay: DEBUG audio.decode - Playback.lua:194 source=stream Mar 1 16:04:25 squeezeplay: DEBUG audio.decode - stream_connectL:506 streambuf connect 172.16.0.8:9000 Mar 1 16:04:25 squeezeplay: DEBUG audio.decode - Playback.lua:1262 stopping local pause timer Mar 1 16:04:25 squeezeplay: DEBUG audio.decode - Playback.lua:1192 gainL, gainR: 1037 1037 Mar 1 16:04:26 squeezeplay: DEBUG audio.decode - Playback.lua:397 resume decoder, 32768 bytes buffered, decode threshold 2048 Mar 1 16:04:26 squeezeplay: DEBUG audio.decode - decode_resume_decoder:580 decode_resume_decoder Mar 1 16:04:26 squeezeplay: DEBUG audio.decode - decode_resume_decoder_handler:122 resume_decoder decode state: 1 audio state 0 Mar 1 16:04:26 squeezeplay: DEBUG audio.decode - debug_fullness:112 fullness: 32768 / 0 | 1.04% / 0.00% Mar 1 16:04:26 squeezeplay: DEBUG audio.decode - decode_output_samples:279 first buffer sample_rate=48000 Mar 1 16:04:26 squeezeplay: INFO audio.decode - Playback.lua:448 1.9%/1.9% Mar 1 16:04:27 squeezeplay: DEBUG audio.decode - Playback.lua:424 resume audio bytesReceivedL=160192 outputTime=618 threshold=122880 Mar 1 16:04:27 squeezeplay: DEBUG audio.decode - decode_resume_audio:601 decode_resume_audio start_jiffies=0 Mar 1 16:04:27 squeezeplay: DEBUG audio.decode - decode_resume_audio_handler:133 decode_resume_audio_handler start_jiffies=0 Mar 1 16:04:27 squeezeplay: DEBUG audio.decode - debug_fullness:112 fullness: 102848 / 245760 | 3.27% / 6.97% Mar 1 16:04:27 squeezeplay: DEBUG audio.decode - decode_resume_audio_handler:146 resume_audio decode state: 1 audio state 40 Mar 1 16:04:27 squeezeplay: DEBUG audio.decode - Playback.lua:381 status TRACK STARTED (elapsed: 108) Mar 1 16:04:28 squeezeplay: INFO audio.decode - Playback.lua:448 6.6%/9.3% Mar 1 16:04:29 squeezeplay: INFO audio.decode - Playback.lua:448 10.7%/13.9% Mar 1 16:04:30 squeezeplay: INFO audio.decode - Playback.lua:448 15.2%/14.8% Mar 1 16:04:31 squeezeplay: INFO audio.decode - Playback.lua:448 15.2%/20.0% Mar 1 16:04:32 squeezeplay: INFO audio.decode - Playback.lua:448 22.0%/20.4% Mar 1 16:04:33 squeezeplay: INFO audio.decode - Playback.lua:448 20.3%/23.7% Mar 1 16:04:34 squeezeplay: INFO audio.decode - Playback.lua:448 27.0%/25.3% Mar 1 16:04:35 squeezeplay: INFO audio.decode - Playback.lua:448 25.1%/29.3% Mar 1 16:04:37 squeezeplay: INFO audio.decode - Playback.lua:448 32.2%/27.7% Mar 1 16:04:38 squeezeplay: INFO audio.decode - Playback.lua:448 30.2%/31.7% Mar 1 16:04:39 squeezeplay: INFO audio.decode - Playback.lua:448 36.7%/35.1% Mar 1 16:04:39 squeezeplay: WARN net.thread - NetworkThread.lua:146 network thread timeout for Task(SocketHttp {baby.squeezenetwork.com}(R)) Mar 1 16:04:42 squeezeplay: INFO audio.decode - Playback.lua:448 25.9%/91.5% Mar 1 16:04:42 squeezeplay: WARN net.thread - NetworkThread.lua:146 network thread timeout for Task(SocketHttp {piCorePlayer_Request}(R)) Mar 1 16:04:43 squeezeplay: INFO audio.decode - Playback.lua:448 32.8%/91.0% Mar 1 16:04:44 squeezeplay: INFO audio.decode - Playback.lua:448 39.5%/92.4% Mar 1 16:04:45 squeezeplay: INFO audio.decode - Playback.lua:448 37.6%/97.0% Mar 1 16:04:46 squeezeplay: INFO audio.decode - Playback.lua:448 44.3%/97.5% Mar 1 16:04:47 squeezeplay: INFO audio.decode - Playback.lua:448 42.6%/99.8% Mar 1 16:04:48 squeezeplay: INFO audio.decode - Playback.lua:448 49.3%/99.0% Mar 1 16:04:48 dropbear[32476]: Child connection from 172.16.0.70:34290 Mar 1 16:04:50 squeezeplay: INFO audio.decode - Playback.lua:448 50.5%/96.8% Mar 1 16:04:51 squeezeplay: INFO audio.decode - Playback.lua:448 55.5%/94.4% Mar 1 16:04:52 squeezeplay: INFO audio.decode - Playback.lua:448 53.9%/96.9%
Last edited by expectingtofly; 2021-03-01 at 09:05.
ExpectingToFly Plugins :
- BBC Sounds : https://github.com/expectingtofly/LMS_BBC_Sounds_Plugin
- BBC Sounds Wiki : https://github.com/expectingtofly/LM...ds_Plugin/wiki
- Virgin Radio (UK) : https://github.com/expectingtofly/LM...n_Radio_Plugin
- Times Radio : https://github.com/expectingtofly/LM...S_RADIO_PLUGIN
-
Today, 01:29 #315
- Join Date
- Mar 2021
- Posts
- 1
I updated my SB Touch yesterday to firmware 8.
But I have the following problem:
I use the Touch without any other computer or NAS.
The Touch ist only connected to an usb memory stick (256gb), where all my music is saved.
Under Firmware 7.8 (and all before) I was able to start the lms with the usb. This worked very well.
The reason that i wanted to update to firmware 8 is that I also use tidal. It is not longer possible to use the tidal app with the local lms. Since some weeks I had to change to mysqueezebox.com to use tidal.
Bevor that I was able to change between my own music and streaming tidal without no problem with the local lms. The change to mysqueezebox.com for tidal and back to the local lms for my own music is not comfortable.
Under firmware 8 I found no possibility to start lms local on my touch under the usb-section. I saw only the possibility to use the lms on my computer.
But this is no option for me. I need the local lms to hear music without running my computer or any other separatly gear.
Can anybody help me? Thanks (and please excuse my inexperianced english).Last edited by Thomas_S; Today at 01:38.
-
Today, 01:42 #316
- Join Date
- May 2010
- Location
- London, UK
- Posts
- 750
I think the answer may be "No". I see the following entry in the changelog (https://ralph_irving.gitlab.io/lms-c...changelog.html)
Removed Features:
Touch TinySC (SqueezeCenter) server and applet.
I have no experience of using Tidal. But there may be other sufficiently attractive possibilities. A lot of users seem to install LMS on a cheap, small, single board computer, for example a Raspberry Pi Zero. That might be the way to go.
-
Today, 01:42 #317
- Join Date
- Apr 2005
- Location
- UK/London
- Posts
- 3,634
You will have to go back to the official firmware.
One of the changes in the community version is the removal of "TinySC" - the built in server that you were using.
From the changelog
Version 8.0.1 r16817
Removed Features:
Touch TinySC (SqueezeCenter) server and applet.Paul Webster
http://dabdig.blogspot.com
Author of "Now Playing" plugins covering Radio France (FIP etc), KCRW, Supla Finland, ABC Australia, CBC/Radio-Canada and RTE Ireland