I2S: web radio - fix not happening reconnect (#23916)
This commit is contained in:
parent
8d9b885270
commit
514c444cce
@ -43,9 +43,14 @@ bool I2SWebradio(const char *url, uint32_t decoder_type) {
|
|||||||
wr_tasksize = 26000;
|
wr_tasksize = 26000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t finalBufferSize = preallocateBufferSize;
|
||||||
|
if(CanUsePSRAM()){
|
||||||
|
size_t targetsize = (ESP_getMaxAllocPsram()/4) * 3; // use up to 3/4 of available PSRAM
|
||||||
|
finalBufferSize = targetsize;
|
||||||
|
}
|
||||||
// allocate buffers if not already done
|
// allocate buffers if not already done
|
||||||
if (audio_i2s_mp3.preallocateBuffer == NULL) {
|
if (audio_i2s_mp3.preallocateBuffer == NULL) {
|
||||||
audio_i2s_mp3.preallocateBuffer = special_malloc(preallocateBufferSize);
|
audio_i2s_mp3.preallocateBuffer = special_malloc(finalBufferSize);
|
||||||
}
|
}
|
||||||
if (audio_i2s_mp3.preallocateCodec == NULL) {
|
if (audio_i2s_mp3.preallocateCodec == NULL) {
|
||||||
audio_i2s_mp3.preallocateCodec = special_malloc(preallocateCodecSize);
|
audio_i2s_mp3.preallocateCodec = special_malloc(preallocateCodecSize);
|
||||||
@ -65,6 +70,7 @@ bool I2SWebradio(const char *url, uint32_t decoder_type) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Audio_webradio.ifile = new AudioFileSourceICYStream();
|
Audio_webradio.ifile = new AudioFileSourceICYStream();
|
||||||
|
Audio_webradio.ifile->SetReconnect(5, 5);
|
||||||
Audio_webradio.ifile->RegisterMetadataCB(I2sMDCallback, NULL);
|
Audio_webradio.ifile->RegisterMetadataCB(I2sMDCallback, NULL);
|
||||||
Audio_webradio.ifile->RegisterStatusCB(I2SWrStatusCB, NULL);
|
Audio_webradio.ifile->RegisterStatusCB(I2SWrStatusCB, NULL);
|
||||||
if(!Audio_webradio.ifile->open(url)){
|
if(!Audio_webradio.ifile->open(url)){
|
||||||
@ -73,7 +79,7 @@ bool I2SWebradio(const char *url, uint32_t decoder_type) {
|
|||||||
AddLog(LOG_LEVEL_INFO, "I2S: did connect to %s",url);
|
AddLog(LOG_LEVEL_INFO, "I2S: did connect to %s",url);
|
||||||
|
|
||||||
I2SAudioPower(true);
|
I2SAudioPower(true);
|
||||||
audio_i2s_mp3.buff = new AudioFileSourceBuffer(Audio_webradio.ifile, audio_i2s_mp3.preallocateBuffer, preallocateBufferSize);
|
audio_i2s_mp3.buff = new AudioFileSourceBuffer(Audio_webradio.ifile, audio_i2s_mp3.preallocateBuffer, finalBufferSize);
|
||||||
if(audio_i2s_mp3.buff == nullptr){
|
if(audio_i2s_mp3.buff == nullptr){
|
||||||
goto i2swr_fail;
|
goto i2swr_fail;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user