Closed duevil closed 7 months ago
Please don't report any problems that have already been corrected! I can't reproduce your issue with the latest code from the master branch...
Is there any reason why you convert to 32 bits ?
Please don't report any problems that have already been corrected! I can't reproduce your issue with the latest code from the master branch...
Is there any reason why you convert to 32 bits ?
How was the problem corrected? I am using the newest version of the library and the problem still occurs. It seems to be caused by using a https connection. When changing the url to use a plain http connection I can get the stream to work. Is this intended? In the previous version I also did use https and had no problems.
And no, there is no reason for why I use 32 bits, I simply copied the Pipeline example for testing
As far as I can see the issue is caused by the 32 bit conversion which is not notifying the i2s. It is corrected in the main branch, so please use this!
As far as I can see the issue is caused by the 32 bit conversion which is not notifying the i2s. It is corrected in the main branch, so please use this!
As far as I know I am using the main branch. And the problem persists without using the 23 bit conversion, so that is not the cause. I have testet this with a new project with the same pipeline implemented in my main project. The log shows the problem: When connecting using http, everything is fine, however when trying to connect using https the error occurs. In the test I have called the stream begin inside a Ticker callback which causes the ESP to crash, however when called in the setup the problem remains, though no crash occurs but the stream won't provide any data.
#include <AudioTools.h>
#include <AudioLibs/MemoryManager.h>
#include <AudioCodecs/CodecMP3Helix.h>
#include <Ticker.h>
#define SSID ""
#define PASS ""
constexpr auto PIN_DATA = GPIO_NUM_12;
constexpr auto PIN_BCK = GPIO_NUM_27;
constexpr auto PIN_LRC = GPIO_NUM_33;
MemoryManager mem{};
I2SStream i2s{};
AdapterAudioStreamToAudioOutput i2sOut{i2s};
VolumeOutput volumeOut{};
MultiOutput i2sAndVolumeOut{i2sOut, volumeOut};
FadeStream fadeStream{};
VolumeStream volumeStream{};
EncodedAudioOutput decodedOut{new MP3DecoderHelix()};
Pipeline pipeline{};
StreamCopy copier;
ICYStream icy{};
Ticker ticker;
static void metaData(MetaDataType type, const char *data, int) { log_v("Metadata: [%s] %s", toStr(type), data); }
struct : ModifyingOutput {
Print *out = nullptr;
void setOutput(Print &output) override { out = &output; }
size_t write(const uint8_t *buffer, size_t size) override {
if (out) {
return out->write(buffer, size);
}
return size;
}
void setAudioInfo(AudioInfo newInfo) override {
ModifyingOutput::setAudioInfo(newInfo);
log_i("Audio info: sample rate: %d, bits per sample: %d, channels: %d",
newInfo.sample_rate, newInfo.bits_per_sample, newInfo.channels);
}
} info;
void play(const char *url) {
log_i("Playing URL: %s", url);
icy.begin(url);
copier.begin(pipeline, icy);
copier.setActive(true);
fadeStream.setFadeInActive(true);
}
void setup() {
Serial.begin(SERIAL_BAUD_RATE);
WiFi.begin(SSID, PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(100);
log_d("Connecting to WiFi...");
}
AudioLogger::instance().begin(Serial, AudioLogger::Info);
log_i("Audio setup");
mem.begin((int) ESP.getPsramSize() / 2);
auto cfg = i2s.defaultConfig();
cfg.pin_ws = PIN_LRC;
cfg.pin_bck = PIN_BCK;
cfg.pin_data = PIN_DATA;
cfg.buffer_count = 8;
cfg.buffer_size = 1024;
i2s.begin(cfg);
volumeStream.setVolume(0.66f);
pipeline.add(decodedOut);
pipeline.add(volumeStream);
pipeline.add(fadeStream);
pipeline.add(info);
pipeline.setOutput(i2sAndVolumeOut);
pipeline.begin();
i2sOut.begin();
icy.setMetadataCallback(metaData);
copier.setActive(false);
log_i("Audio setup complete");
AudioLogger::instance().begin(Serial, AudioLogger::Warning);
ticker.attach(10, []() {
static uint8_t state = 0;
switch (state) {
case 0:
play("http://streams.radio21.de/aurich/mp3-128/web");
state = 1;
break;
case 1:
play("https://streams.radio21.de/aurich/mp3-128/web");
state = 0;
break;
}
});
play("http://stream.srg-ssr.ch/m/rsj/mp3_128");
}
void loop() {
static auto last = millis();
auto written = copier.copy();
if (written > 0) {
last = millis();
auto max = (float) pow(2, volumeOut.audioInfo().bits_per_sample - 1) - 1;
auto v = (uint8_t) mapFloat(volumeOut.volume(), 0.0f, max, 0, 255);
// the volume signal would be user here to control a LED or something
(void) v;
} else if (copier.isActive() && millis() - last > 1000) {
log_i("No audio data copied for more than a second, stopping playback");
if (copier.available()) {
fadeStream.setFadeOutActive(true);
copier.copyN(copier.minCopySize());
}
icy.end();
copier.setActive(false);
}
}
[env:adafruit_feather_esp32_v2]
platform = espressif32@6.5.0
board = adafruit_feather_esp32_v2
framework = arduino
upload_speed = 921600
monitor_speed = 115200
monitor_filters = esp32_exception_decoder
build_flags =
-w
-D SERIAL_BAUD_RATE=${env:adafruit_feather_esp32_v2.monitor_speed}
-D CORE_DEBUG_LEVEL=4
board_build.partitions = huge_app.csv
lib_deps =
https://github.com/pschatzmann/arduino-audio-tools#v0.9.8
https://github.com/pschatzmann/arduino-libhelix#v.0.8.3
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 271414342, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:13260
load:0x40080400,len:3028
entry 0x400805e4
[ 31][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz
[ 256][I][esp32-hal-psram.c:96] psramInit(): PSRAM enabled
[ 302][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 0 - WIFI_READY
[ 373][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 2 - STA_START
[ 437][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 4 - STA_CONNECTED
[ 461][D][WiFiGeneric.cpp:1039] _eventCallback(): Arduino Event: 7 - STA_GOT_IP
[ 461][D][WiFiGeneric.cpp:1102] _eventCallback(): STA IP: 192.168.178.32, MASK: 255.255.255.0, GW: 192.168.178.1
[ 486][D][main.cpp:67] setup(): Connecting to WiFi...
[ 486][I][main.cpp:72] setup(): Audio setup
[I] MemoryManager.h : 29 - Activate PSRAM from 1047551 bytes
[I] AudioTypes.h : 127 - out: sample_rate: 44100 / channels: 2 / bits_per_sample: 16
[I] AudioTypes.h : 127 - sample_rate: 44100 / channels: 2 / bits_per_sample: 16
[I] I2SConfigESP32.h : 80 - rx/tx mode: TX_MODE
[I] I2SConfigESP32.h : 81 - port_no: 0
[I] I2SConfigESP32.h : 82 - is_master: Master
[I] I2SConfigESP32.h : 83 - sample rate: 44100
[I] I2SConfigESP32.h : 84 - bits per sample: 16
[I] I2SConfigESP32.h : 85 - number of channels: 2
[I] I2SConfigESP32.h : 86 - signal_type: Digital
[I] I2SConfigESP32.h : 88 - i2s_format: I2S_STD_FORMAT
[I] I2SConfigESP32.h : 90 - auto_clear: true
[I] I2SConfigESP32.h : 92 - use_apll: true
[I] I2SConfigESP32.h : 97 - buffer_count:8
[I] I2SConfigESP32.h : 98 - buffer_size:1024
[I] I2SConfigESP32.h : 103 - pin_bck: 27
[I] I2SConfigESP32.h : 105 - pin_ws: 33
[I] I2SConfigESP32.h : 107 - pin_data: 12
[I] VolumeStream.h : 199 - setVolume: 0.660000 at 0
[I] VolumeStream.h : 199 - setVolume: 0.660000 at 1
[I] AudioEncoded.h : 321 - virtual void audio_tools::EncodedAudioOutput::addNotifyAudioChange(audio_tools::AudioInfoSupport&)
[I] AudioTypes.h : 127 - sample_rate: 44100 / channels: 2 / bits_per_sample: 16
[I] I2SConfigESP32.h : 80 - rx/tx mode: RXTX_MODE
[I] I2SConfigESP32.h : 81 - port_no: 0
[I] I2SConfigESP32.h : 82 - is_master: Master
[I] I2SConfigESP32.h : 83 - sample rate: 44100
[I] I2SConfigESP32.h : 84 - bits per sample: 16
[I] I2SConfigESP32.h : 85 - number of channels: 2
[I] I2SConfigESP32.h : 86 - signal_type: Digital
[I] I2SConfigESP32.h : 88 - i2s_format: I2S_STD_FORMAT
[I] I2SConfigESP32.h : 90 - auto_clear: true
[I] I2SConfigESP32.h : 92 - use_apll: true
[I] I2SConfigESP32.h : 97 - buffer_count:8
[I] I2SConfigESP32.h : 98 - buffer_size:1024
[I] I2SConfigESP32.h : 103 - pin_bck: 27
[I] I2SConfigESP32.h : 105 - pin_ws: 33
[I] I2SConfigESP32.h : 107 - pin_data: 12
[ 654][I][main.cpp:98] setup(): Audio setup complete
[ 657][I][main.cpp:53] play(): Playing URL: http://stream.srg-ssr.ch/m/rsj/mp3_128
[ 1984][I][main.cpp:47] setAudioInfo(): Audio info: sample rate: 48000, bits per sample: 16, channels: 2
[ 10657][I][main.cpp:53] play(): Playing URL: http://streams.radio21.de/aurich/mp3-128/web
[ 10658][I][WiFiClient.cpp:539] connected(): Unexpected: RES: 0, ERR: 0
[W] URLStream.h : 342 - Redirected to: http://radio21.streamabc.net/radio21-aurich-mp3-128-9097805?sABC=6638q50r%230%23por329q72nn690p0p3q71q5pqn9425p2%23jro&aw_0_1st.playerid=web&amsparams=playerid:web;skey:1715000590
[E] MetaDataICY.h : 269 - icy-metaint not defined
[W] ICYStream.h : 73 - url does not provide metadata
[ 11719][I][main.cpp:47] setAudioInfo(): Audio info: sample rate: 44100, bits per sample: 16, channels: 2
[ 20657][I][main.cpp:53] play(): Playing URL: https://streams.radio21.de/aurich/mp3-128/web
[ 20708][D][ssl_client.cpp:176] start_ssl_client(): WARNING: Skipping SSL Verification. INSECURE!
[W] URLStream.h : 342 - Redirected to: https://radio21.streamabc.net/radio21-aurich-mp3-128-9097805?sABC=6638q519%230%23por329q72nn690p0p3q71q5pqn9425p2%23jro&aw_0_1st.playerid=web&amsparams=playerid:web;skey:1715000601
[ 21651][D][ssl_client.cpp:176] start_ssl_client(): WARNING: Skipping SSL Verification. INSECURE!
[ 21674][I][main.cpp:129] loop(): No audio data copied for more than a second, stopping playback
Guru Meditation Error: Core 0 panic'ed (Unhandled debug exception).
Debug exception reason: Stack canary watchpoint triggered (esp_timer)
Core 0 register dump:
PC : 0x40136db4 PS : 0x00060636 A0 : 0x80137c1d A1 : 0x3ffba270
A2 : 0x3ffba360 A3 : 0xe6831272 A4 : 0x00000000 A5 : 0x75f82a8f
A6 : 0x6ba97e63 A7 : 0x01ebda0f A8 : 0xc5e8b4fd A9 : 0x00000040
A10 : 0x00000001 A11 : 0x00000000 A12 : 0xd4000000 A13 : 0x34f4975f
A14 : 0xbe000000 A15 : 0x00000008 SAR : 0x0000001e EXCCAUSE: 0x00000001
EXCVADDR: 0x00000000 LBEG : 0x40136d00 LEND : 0x40136dbc LCOUNT : 0x00000039
Backtrace: 0x40136db1:0x3ffba270 0x40137c1a:0x3ffba5d0 0x40137c8f:0x3ffba5f0 0x40137cc9:0x3ffba610 0x40133e84:0x3ffba630 0x4012e3c2:0x3ffba730 0x4012e4ba:0x3ffba7a0 0x4012e506:0x3ffba850 0x4012e689:0x3ffba8d0 0x4012a029:0x3ffba8f0 0x4012a10a:0x3ffbaaa0 0x4012a1e9:0x3ffbaac0 0x4012a2bd:0x3ffbab30 0x4012798e:0x3ffbab50 0x40128953:0x3ffbab80 0x4012b3f2:0x3ffbabd0 0x4012c12d:0x3ffbac10 0x4012c937:0x3ffbae00 0x4012a82d:0x3ffbaf60 0x4012aa34:0x3ffbaf90 0x40125484:0x3ffbafb0 0x40122eb5:0x3ffbb050 0x40122eef:0x3ffbb070 0x400e65ed:0x3ffbb090 0x400e5607:0x3ffbb320 0x400e56ce:0x3ffbb370 0x400e57aa:0x3ffbb3b0 0x400d50e0:0x3ffbb3d0 0x400db565:0x3ffbb3f0 0x400d43e3:0x3ffbb430 0x400dac4f:0x3ffbb460 0x400dad04:0x3ffbb4a0 0x400dae0b:0x3ffbb4c0 0x400daeba:0x3ffbb500 0x400daf4b:0x3ffbb520 0x401158f7:0x3ffbb540
#0 0x40136db1:0x3ffba270 in mbedtls_sha512_software_process at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/port/sha/parallel_engine/esp_sha512.c:298 (discriminator 2)
#1 0x40137c1a:0x3ffba5d0 in mbedtls_internal_sha512_process at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/port/sha/parallel_engine/esp_sha512.c:252
#2 0x40137c8f:0x3ffba5f0 in mbedtls_sha512_update_ret at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/port/sha/parallel_engine/esp_sha512.c:367
#3 0x40137cc9:0x3ffba610 in mbedtls_sha512_update_ret at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/port/sha/parallel_engine/esp_sha512.c:342
#4 0x40133e84:0x3ffba630 in mbedtls_sha512_ret at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/sha512.c:461
#5 0x4012e3c2:0x3ffba730 in entropy_update at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/entropy.c:186
#6 0x4012e4ba:0x3ffba7a0 in entropy_gather_internal at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/entropy.c:291
#7 0x4012e506:0x3ffba850 in entropy_gather_internal at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/entropy.c:269
(inlined by) mbedtls_entropy_func at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/entropy.c:371
#8 0x4012e689:0x3ffba8d0 in mbedtls_entropy_func at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/entropy.c:340
#9 0x4012a029:0x3ffba8f0 in mbedtls_ctr_drbg_reseed_internal at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ctr_drbg.c:381
#10 0x4012a10a:0x3ffbaaa0 in mbedtls_ctr_drbg_reseed at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ctr_drbg.c:419
#11 0x4012a1e9:0x3ffbaac0 in mbedtls_ctr_drbg_random_with_add at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ctr_drbg.c:537
#12 0x4012a2bd:0x3ffbab30 in mbedtls_ctr_drbg_random at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ctr_drbg.c:604
#13 0x4012798e:0x3ffbab50 in mpi_fill_random_internal at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/bignum.c:2501
#14 0x40128953:0x3ffbab80 in mbedtls_mpi_random at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/bignum.c:2594 (discriminator 2)
#15 0x4012b3f2:0x3ffbabd0 in ecp_randomize_jac at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ecp.c:1721
#16 0x4012c12d:0x3ffbac10 in ecp_mul_comb_core at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ecp.c:2086
(inlined by) ecp_mul_comb_after_precomp at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ecp.c:2198
(inlined by) ecp_mul_comb at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ecp.c:2401
#17 0x4012c937:0x3ffbae00 in mbedtls_ecp_mul_restartable at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ecp.c:2763
(inlined by) mbedtls_ecp_mul_restartable at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ecp.c:2711
#18 0x4012a82d:0x3ffbaf60 in ecdh_gen_public_restartable at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ecdh.c:89
(inlined by) mbedtls_ecdh_gen_public at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ecdh.c:107
#19 0x4012aa34:0x3ffbaf90 in ecdh_make_public_internal at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ecdh.c:558
(inlined by) mbedtls_ecdh_make_public at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ecdh.c:587
#20 0x40125484:0x3ffbafb0 in ssl_write_client_key_exchange at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ssl_cli.c:3725
(inlined by) mbedtls_ssl_handshake_client_step at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ssl_cli.c:4347
#21 0x40122eb5:0x3ffbb050 in mbedtls_ssl_handshake_step at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ssl_tls.c:5770
#22 0x40122eef:0x3ffbb070 in mbedtls_ssl_handshake at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/mbedtls/mbedtls/library/ssl_tls.c:5808
#23 0x400e65ed:0x3ffbb090 in start_ssl_client(sslclient_context*, IPAddress const&, unsigned int, char const*, int, char const*, bool, char const*, char const*, char const*, char const*, bool, char const**) at C:/Users/Malte/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/ssl_client.cpp:271
#24 0x400e5607:0x3ffbb320 in WiFiClientSecure::connect(IPAddress, unsigned short, char const*, char const*, char const*, char const*) at C:/Users/Malte/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:141
#25 0x400e56ce:0x3ffbb370 in WiFiClientSecure::connect(char const*, unsigned short, char const*, char const*, char const*) at C:/Users/Malte/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:136
#26 0x400e57aa:0x3ffbb3b0 in WiFiClientSecure::connect(char const*, unsigned short) at C:/Users/Malte/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:117
(inlined by) WiFiClientSecure::connect(char const*, unsigned short) at C:/Users/Malte/.platformio/packages/framework-arduinoespressif32/libraries/WiFiClientSecure/src/WiFiClientSecure.cpp:113
#27 0x400d50e0:0x3ffbb3d0 in audio_tools::HttpRequest::connect(char const*, unsigned short, int) at .pio/libdeps/adafruit_feather_esp32_v2/audio-tools/src/AudioHttp/HttpRequest.h:336
#28 0x400db565:0x3ffbb3f0 in audio_tools::HttpRequest::processBegin(MethodID, audio_tools::Url&, char const*, int) at .pio/libdeps/adafruit_feather_esp32_v2/audio-tools/src/AudioHttp/HttpRequest.h:223 (discriminator 3)
#29 0x400d43e3:0x3ffbb430 in audio_tools::HttpRequest::process(MethodID, audio_tools::Url&, char const*, char const*, int) at .pio/libdeps/adafruit_feather_esp32_v2/audio-tools/src/AudioHttp/HttpRequest.h:187
#30 0x400dac4f:0x3ffbb460 in int audio_tools::URLStream::process<char const*>(MethodID, audio_tools::Url&, char const*, char const*, int) at .pio/libdeps/adafruit_feather_esp32_v2/audio-tools/src/AudioHttp/URLStream.h:350
#31 0x400dad04:0x3ffbb4a0 in audio_tools::URLStream::begin(char const*, char const*, MethodID, char const*, char const*) at .pio/libdeps/adafruit_feather_esp32_v2/audio-tools/src/AudioHttp/URLStream.h:87
#32 0x400dae0b:0x3ffbb4c0 in audio_tools::ICYStream::begin(char const*, char const*, MethodID, char const*, char const*) at .pio/libdeps/adafruit_feather_esp32_v2/audio-tools/src/AudioHttp/ICYStream.h:61 (discriminator 3)
#33 0x400daeba:0x3ffbb500 in play(char const*) at src/main.cpp:54
#34 0x400daf4b:0x3ffbb520 in setup()::{lambda()#1}::_FUN() at src/main.cpp:110
(inlined by) _FUN at src/main.cpp:114
#35 0x401158f7:0x3ffbb540 in timer_process_alarm at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_timer/src/esp_timer.c:396
(inlined by) timer_task at /Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/esp_timer/src/esp_timer.c:422
To use the main branch you will need to change the https://github.com/pschatzmann/arduino-audio-tools#v0.9.8 https://github.com/pschatzmann/arduino-libhelix#v.0.8.3 to https://github.com/pschatzmann/arduino-audio-tools https://github.com/pschatzmann/arduino-libhelix
What ESP32 core version are you using ? The actual one is 2.0.16
To use the main branch you will need to change the https://github.com/pschatzmann/arduino-audio-tools#v0.9.8 https://github.com/pschatzmann/arduino-libhelix#v.0.8.3 to https://github.com/pschatzmann/arduino-audio-tools https://github.com/pschatzmann/arduino-libhelix
What ESP32 core version are you using ? The actual one is 2.0.16
The problem still persist when omitting the version number.
As for the core version: The latest platfom version is 6.6.0, which supports the core version 2.0.14. As far as I know there is no other way to change the core version but for changing the platform version.
Edit: Forgot to mention; tested using platform version 6.6.0, problem persists.
Did you try to delete the .pio folder to trigger a reload of the libraries ? I am not sure if just updating the link is good enough. Also go back to the initial version of your sketch. I don't want to work on an issue where you constantly change the sketch and potentially introduce other bugs.
With your original sketch compiled in PlatformIO I am getting
rst:0x1 (POWERON_RESET),boot:0x1f (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:1184
load:0x40078000,len:13232
load:0x40080400,len:3028
entry 0x400805e4
[I] URLStream.h : 82 - virtual bool audio_tools::URLStream::begin(const char*, const char*, MethodID, const char*, const char*): https://streams.radio21.de/aurich/mp3-128
[I] Url.h : 58 - Url::parse
[I] Url.h : 96 - url->https://streams.radio21.de/aurich/mp3-128
[I] Url.h : 97 - host->streams.radio21.de
[I] Url.h : 98 - protocol->https
[I] Url.h : 99 - path->/aurich/mp3-128
[I] Url.h : 100 - port->443
[I] URLStream.h : 400 - bool audio_tools::URLStream::login()
.
[I] URLStream.h : 367 - WiFiClientSecure
[I] HttpRequest.h : 222 - process connecting to host streams.radio21.de port 443
[I] HttpRequest.h : 337 - connected 1 timeout 60000
[I] HttpRequest.h : 233 - Free heap: 193264
[I] HttpHeader.h : 276 - HttpHeader::write
[I] HttpHeader.h : 421 - -> GET /aurich/mp3-128 HTTP/1.1
[I] HttpHeader.h : 210 - -> Host: streams.radio21.de
[I] HttpHeader.h : 210 - -> Connection: keep-alive
[I] HttpHeader.h : 210 - -> Accept-Encoding: identity
[I] HttpHeader.h : 210 - -> Accept: audio/mp3
[I] HttpHeader.h : 342 - -> <CR LF>
[I] HttpRequest.h : 288 - Request written ... waiting for reply
[I] HttpHeader.h : 253 - Data available: 479
[W] URLStream.h : 342 - Redirected to: https://radio21.streamabc.net/radio21-aurich-mp3-128-9097805?sABC=6638r467%230%23r5rq9p4r023575s942379o63394qq52o%23&aw_0_1st.playerid=&amsparams=playerid:;skey:1715004519
[I] Url.h : 58 - Url::parse
[I] Url.h : 96 - url->https://radio21.streamabc.net/radio21-aurich-mp3-128-9097805?sABC=6638r467%230%23r5rq9p4r023575s942379o63394qq52o%23&aw_0_1st.playerid=&amsparams=playerid:;skey:1715004519
[I] Url.h : 97 - host->radio21.streamabc.net
[I] Url.h : 98 - protocol->https
[I] Url.h : 99 - path->/radio21-aurich-mp3-128-9097805?sABC=6638r467%230%23r5rq9p4r023575s942379o63394qq52o%23&aw_0_1st.playerid=&amsparams=playerid:;skey:1715004519
[I] Url.h : 100 - port->443
[I] URLStream.h : 367 - WiFiClientSecure
[I] HttpRequest.h : 222 - process connecting to host radio21.streamabc.net port 443
[I] HttpRequest.h : 337 - connected 1 timeout 60000
[I] HttpRequest.h : 233 - Free heap: 192784
[I] HttpHeader.h : 276 - HttpHeader::write
[I] HttpHeader.h : 421 - -> GET /radio21-aurich-mp3-128-9097805?sABC=6638r467%230%23r5rq9p4r023575s942379o63394qq52o%23&aw_0_1st.playerid=&amsparams=playerid:;skey:1715004519 HTTP/1.1
[I] HttpHeader.h : 210 - -> Host: radio21.streamabc.net
[I] HttpHeader.h : 210 - -> Connection: keep-alive
[I] HttpHeader.h : 210 - -> Accept-Encoding: identity
[I] HttpHeader.h : 210 - -> Accept: audio/mp3
[I] HttpHeader.h : 342 - -> <CR LF>
[I] HttpRequest.h : 288 - Request written ... waiting for reply
[I] HttpHeader.h : 244 - Waiting for data...
[I] HttpHeader.h : 253 - Data available: 666
[I] HttpRequest.h : 164 - no CONTENT_LENGTH found in reply
[I] URLStream.h : 90 - size: 0
[I] URLStream.h : 234 - Request written ... waiting for reply
[I] URLStream.h : 97 - ==> http status: 200
[I] VolumeStream.h : 199 - setVolume: 0.500000 at 0
[I] VolumeStream.h : 199 - setVolume: 0.500000 at 1
[I] AudioTypes.h : 127 - out: sample_rate: 44100 / channels: 2 / bits_per_sample: 16
[I] AudioTypes.h : 127 - sample_rate: 44100 / channels: 2 / bits_per_sample: 16
[I] I2SConfigESP32.h : 80 - rx/tx mode: TX_MODE
[I] I2SConfigESP32.h : 81 - port_no: 0
[I] I2SConfigESP32.h : 82 - is_master: Master
[I] I2SConfigESP32.h : 83 - sample rate: 44100
[I] I2SConfigESP32.h : 84 - bits per sample: 16
[I] I2SConfigESP32.h : 85 - number of channels: 2
[I] I2SConfigESP32.h : 86 - signal_type: Digital
[I] I2SConfigESP32.h : 88 - i2s_format: I2S_STD_FORMAT
[I] I2SConfigESP32.h : 90 - auto_clear: true
[I] I2SConfigESP32.h : 92 - use_apll: true
[I] I2SConfigESP32.h : 97 - buffer_count:6
[I] I2SConfigESP32.h : 98 - buffer_size:512
[I] I2SConfigESP32.h : 103 - pin_bck: 27
[I] I2SConfigESP32.h : 105 - pin_ws: 33
[I] I2SConfigESP32.h : 107 - pin_data: 12
[I] AudioEncoded.h : 321 - virtual void audio_tools::EncodedAudioOutput::addNotifyAudioChange(audio_tools::AudioInfoSupport&)
[I] AudioStreamsConverter.h : 490 - begin 16 -> 32 bits
[I] AudioTypes.h : 127 - sample_rate: 44100 / channels: 2 / bits_per_sample: 16
[I] I2SConfigESP32.h : 80 - rx/tx mode: TX_MODE
[I] I2SConfigESP32.h : 81 - port_no: 0
[I] I2SConfigESP32.h : 82 - is_master: Master
[I] I2SConfigESP32.h : 83 - sample rate: 44100
[I] I2SConfigESP32.h : 84 - bits per sample: 16
[I] I2SConfigESP32.h : 85 - number of channels: 2
[I] I2SConfigESP32.h : 86 - signal_type: Digital
[I] I2SConfigESP32.h : 88 - i2s_format: I2S_STD_FORMAT
[I] I2SConfigESP32.h : 90 - auto_clear: true
[I] I2SConfigESP32.h : 92 - use_apll: true
[I] I2SConfigESP32.h : 97 - buffer_count:6
[I] I2SConfigESP32.h : 98 - buffer_size:512
[I] I2SConfigESP32.h : 103 - pin_bck: 27
[I] I2SConfigESP32.h : 105 - pin_ws: 33
[I] I2SConfigESP32.h : 107 - pin_data: 12
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 417 -> 417 -> 417 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] AudioTypes.h : 127 - MP3DecoderHelix sample_rate: 44100 / channels: 2 / bits_per_sample: 16
[I] AudioStreamsConverter.h : 454 - -> NumberFormatConverterStream:
[I] AudioTypes.h : 127 - out: sample_rate: 44100 / channels: 2 / bits_per_sample: 32
[I] I2SStream.h : 83 - virtual void audio_tools::I2SStream::setAudioInfo(audio_tools::AudioInfo)
[I] AudioTypes.h : 127 - in: sample_rate: 44100 / channels: 2 / bits_per_sample: 32
[I] AudioTypes.h : 127 - out: sample_rate: 44100 / channels: 2 / bits_per_sample: 32
[I] I2SStream.h : 92 - restarting i2s
[I] AudioTypes.h : 127 - I2SStream sample_rate: 44100 / channels: 2 / bits_per_sample: 32
[I] AudioTypes.h : 127 - sample_rate: 44100 / channels: 2 / bits_per_sample: 32
[I] I2SConfigESP32.h : 80 - rx/tx mode: TX_MODE
[I] I2SConfigESP32.h : 81 - port_no: 0
[I] I2SConfigESP32.h : 82 - is_master: Master
[I] I2SConfigESP32.h : 83 - sample rate: 44100
[I] I2SConfigESP32.h : 84 - bits per sample: 32
[I] I2SConfigESP32.h : 85 - number of channels: 2
[I] I2SConfigESP32.h : 86 - signal_type: Digital
[I] I2SConfigESP32.h : 88 - i2s_format: I2S_STD_FORMAT
[I] I2SConfigESP32.h : 90 - auto_clear: true
[I] I2SConfigESP32.h : 92 - use_apll: true
[I] I2SConfigESP32.h : 97 - buffer_count:6
[I] I2SConfigESP32.h : 98 - buffer_size:512
[I] I2SConfigESP32.h : 103 - pin_bck: 27
[I] I2SConfigESP32.h : 105 - pin_ws: 33
[I] I2SConfigESP32.h : 107 - pin_data: 12
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
[I] StreamCopy.h : 147 - StreamCopy::copy 418 -> 418 -> 418 bytes - in 1 hops
Problem Description
Since the last update (v0.9.8 or v.0.8.3 for Mp3Helix) I cannot play certain URLs using the URLStream class which did work flawlessly in version 0.9.7. The log shows a successfull connection, however no data is received.
I have this problem when using the new Pipeline example sketch as well as using an older approach.
The log when trying to play the URL that's not working:
Device Description
Adafruit ESP32 Feather V2
Sketch
Other Steps to Reproduce
No response
What is your development environment
PlatformIO
my lib_deps:
I have checked existing issues, discussions and online documentation