fix 32 bits sample size L/R swap - release

issue is in esp-idf
This commit is contained in:
Philippe G
2021-09-11 21:40:10 -07:00
parent 511df0b4b8
commit 6f4ed0679e
3 changed files with 5 additions and 8 deletions

View File

@@ -928,7 +928,7 @@ static esp_err_t i2s_param_config(i2s_port_t i2s_num, const i2s_config_t *i2s_co
if (i2s_config->mode & I2S_MODE_TX) { if (i2s_config->mode & I2S_MODE_TX) {
// PATCH // PATCH
I2S[i2s_num]->conf.tx_msb_right = 1; I2S[i2s_num]->conf.tx_msb_right = i2s_config->bits_per_sample == 32 ? 0 : 1;
I2S[i2s_num]->conf.tx_right_first = 0; I2S[i2s_num]->conf.tx_right_first = 0;
I2S[i2s_num]->conf.tx_slave_mod = 0; // Master I2S[i2s_num]->conf.tx_slave_mod = 0; // Master
@@ -941,7 +941,7 @@ static esp_err_t i2s_param_config(i2s_port_t i2s_num, const i2s_config_t *i2s_co
if (i2s_config->mode & I2S_MODE_RX) { if (i2s_config->mode & I2S_MODE_RX) {
// PATCH // PATCH
I2S[i2s_num]->conf.rx_msb_right = 1; I2S[i2s_num]->conf.rx_msb_right = i2s_config->bits_per_sample == 32 ? 0 : 1;
I2S[i2s_num]->conf.rx_right_first = 0; I2S[i2s_num]->conf.rx_right_first = 0;
I2S[i2s_num]->conf.rx_slave_mod = 0; // Master I2S[i2s_num]->conf.rx_slave_mod = 0; // Master
I2S[i2s_num]->fifo_conf.rx_fifo_mod_force_en = 1; I2S[i2s_num]->fifo_conf.rx_fifo_mod_force_en = 1;

View File

@@ -238,10 +238,7 @@ void output_init_i2s(log_level level, char *device, unsigned output_buf_size, ch
set_i2s_pin(spdif_config, &i2s_spdif_pin); set_i2s_pin(spdif_config, &i2s_spdif_pin);
set_i2s_pin(dac_config, &i2s_dac_pin); set_i2s_pin(dac_config, &i2s_dac_pin);
/* BEWARE: i2s. must be patched to set tx_msb_right/rx_msb_right to 1 /* BEWARE: i2s.c must be patched otherwise L/R are swapped in 32 bits mode */
* or SPDIF will not work. These settings are not accessible from
* userland and I don't know why
*/
// common I2S initialization // common I2S initialization
i2s_config.mode = I2S_MODE_MASTER | I2S_MODE_TX; i2s_config.mode = I2S_MODE_MASTER | I2S_MODE_TX;

View File

@@ -107,8 +107,8 @@ PLUGIN_SQUEEZEESP32_ARTWORK_Y
EN Y EN Y
PLUGIN_SQUEEZEESP32_EQUALIZER PLUGIN_SQUEEZEESP32_EQUALIZER
DE Parametrischer Equalizer DE Grafischer Equalizer
EN Parametric equalizer EN Graphic equalizer
PLUGIN_SQUEEZEESP32_EQUALIZER_SAVE PLUGIN_SQUEEZEESP32_EQUALIZER_SAVE
DE Bitte speichern Sie die Equalizer Einstellungen, falls das Gerät diese dauerhaft verwenden soll. Ansonsten werden sie beim nächsten Start zurückgesetzt. DE Bitte speichern Sie die Equalizer Einstellungen, falls das Gerät diese dauerhaft verwenden soll. Ansonsten werden sie beim nächsten Start zurückgesetzt.