I'm new to the ESP32 world, and I'm currently discovering on linux the multi-room example which can be found here : https://github.com/espressif/esp-adf/tr ... multi-room.
Building and flashing on 2 ESP32 LyraT boards worked fine. The latency displayed on the terminal of the master board seemed correct to me being given it was between +/- 1ms and +/- 17ms. Furthermore, it was perfectly working according to the readme.
However, when I used a 3rd ESP32 LyraT board as a 2nd slave, the latency shown was around +/-200ms.
I don't think it is a connexion issue from the wifi source, it'd had been to easy, so I dove into the different pipelines used to convey the data.
Here are the two which seemed particularly important to me, especially the raw stream one :
https://docs.espressif.com/projects/esp ... ream_cfg_t
https://docs.espressif.com/projects/esp ... ream_cfg_t
The main file of the multi-room example is located here : https://github.com/espressif/esp-adf/bl ... lti_room.c. In this example, the two pipelines above are intialized in the setup_player function (line 155).
As we can see in this function, there are many output ringbuffers named out_rb_size. The values 100 * 1024 and 50 * 1024 seemed to be the default ones as shown below.
From the line 181 :
Code: Select all
http_stream_cfg_t http_cfg = HTTP_STREAM_CFG_DEFAULT();
http_cfg.task_stack = 0;
http_cfg.out_rb_size = 100 * 1024;
http_stream_reader = http_stream_init(&http_cfg);
raw_stream_cfg_t raw_reader = RAW_STREAM_CFG_DEFAULT();
raw_reader.type = AUDIO_STREAM_READER;
raw_reader.out_rb_size = 100 * 1024;
player_raw_in_h = raw_stream_init(&raw_reader);
esp_audio_input_stream_add(player, player_raw_in_h);
audio_decoder_t auto_decode[] = { /* some stuff */ };
esp_decoder_cfg_t auto_dec_cfg = DEFAULT_ESP_DECODER_CONFIG();
auto_dec_cfg.out_rb_size = 50 * 1024;
esp_audio_codec_lib_add(player, AUDIO_CODEC_TYPE_DECODER, esp_decoder_init(&auto_dec_cfg, auto_decode, 10));
Obviously, if I'm searching in the total wrong direction, please enlighten me how to do it well with some links (if you're tired of writing all the details :p ).
Thanks everyone