diff --git a/components/raop/raop_sink.c b/components/raop/raop_sink.c index befeeca3..bfe71328 100644 --- a/components/raop/raop_sink.c +++ b/components/raop/raop_sink.c @@ -18,6 +18,10 @@ #include "trace.h" +#ifndef CONFIG_AIRPLAY_NAME +#define CONFIG_AIRPLAY_NAME "disabled" +#endif + static const char * TAG = "platform"; extern char current_namespace[]; diff --git a/components/squeezelite/embedded.h b/components/squeezelite/embedded.h index f96c6c24..21a37d1e 100644 --- a/components/squeezelite/embedded.h +++ b/components/squeezelite/embedded.h @@ -19,10 +19,10 @@ #define PTHREAD_STACK_MIN 256 #endif -#define STREAM_THREAD_STACK_SIZE 8 * 1024 -#define DECODE_THREAD_STACK_SIZE 20 * 1024 -#define OUTPUT_THREAD_STACK_SIZE 8 * 1024 -#define IR_THREAD_STACK_SIZE 8 * 1024 +#define STREAM_THREAD_STACK_SIZE 6 * 1024 +#define DECODE_THREAD_STACK_SIZE 16 * 1024 +#define OUTPUT_THREAD_STACK_SIZE 6 * 1024 +#define IR_THREAD_STACK_SIZE 6 * 1024 //#define BASE_CAP "Model=squeezelite,AccuratePlayPoints=0,HasDigitalOut=1,HasPolarityInversion=1,Firmware=" VERSION diff --git a/components/squeezelite/opus.c b/components/squeezelite/opus.c index 73cd86a0..f20ebe42 100644 --- a/components/squeezelite/opus.c +++ b/components/squeezelite/opus.c @@ -139,7 +139,7 @@ static decode_state opus_decompress(void) { info = OP(u, head, u->of, -1); LOCK_O; - output.next_sample_rate = 48000; + output.next_sample_rate = decode_newstream(48000, output.supported_rates); IF_DSD( output.next_fmt = PCM; ) output.track_start = outputbuf->writep; if (output.fade_mode) _checkfade(true); diff --git a/components/squeezelite/output_i2s.c b/components/squeezelite/output_i2s.c index 00cb6e22..ddf00fe7 100644 --- a/components/squeezelite/output_i2s.c +++ b/components/squeezelite/output_i2s.c @@ -86,7 +86,7 @@ typedef enum { DAC_ON = 0, DAC_OFF, DAC_POWERDOWN, DAC_VOLUME } dac_cmd_e; // must have an integer ratio with FRAME_BLOCK #define DMA_BUF_LEN 512 -#define DMA_BUF_COUNT 16 +#define DMA_BUF_COUNT 12 #define DECLARE_ALL_MIN_MAX \ DECLARE_MIN_MAX(o); \ @@ -307,7 +307,7 @@ void output_init_i2s(log_level level, char *device, unsigned output_buf_size, ch pthread_attr_setstacksize(&attr, PTHREAD_STACK_MIN + OUTPUT_THREAD_STACK_SIZE); pthread_create_name(&thread, &attr, output_thread_i2s, NULL, "output_i2s"); pthread_attr_destroy(&attr); - + // leave stack size to default pthread_create_name(&stats_thread, NULL, output_thread_i2s_stats, NULL, "output_i2s_sts"); } @@ -404,7 +404,7 @@ static void *output_thread_i2s() { // spdif needs 16 bytes per frame : 32 bits/sample, 2 channels, BMC encoded if (spdif && (sbuf = malloc(FRAME_BLOCK * 16)) == NULL) { LOG_ERROR("Cannot allocate SPDIF buffer"); - } + } while (running) { diff --git a/main/cmd_squeezelite.c b/main/cmd_squeezelite.c index c880d347..057739ce 100644 --- a/main/cmd_squeezelite.c +++ b/main/cmd_squeezelite.c @@ -17,7 +17,7 @@ #include "nvs_flash.h" //extern char current_namespace[]; static const char * TAG = "squeezelite_cmd"; -#define SQUEEZELITE_THREAD_STACK_SIZE 8192 +#define SQUEEZELITE_THREAD_STACK_SIZE (6*1024) extern int main(int argc, char **argv); static int launchsqueezelite(int argc, char **argv); pthread_t thread_squeezelite; diff --git a/main/console.c b/main/console.c index 58e55308..503acbde 100644 --- a/main/console.c +++ b/main/console.c @@ -146,7 +146,7 @@ void process_autoexec(){ ESP_LOGD(TAG,"No matching command found for name autoexec. Adding default entries"); uint8_t autoexec_dft=0; char autoexec1_dft[64]; - char autoexec2_dft[]="squeezelite -o \"I2S\" -b 500:2000 -d all=info -M esp32"; + char autoexec2_dft[256]="squeezelite -o \"I2S\" -b 500:2000 -d all=info -M esp32"; snprintf(autoexec1_dft, 64, "join %s %s", CONFIG_WIFI_SSID, CONFIG_WIFI_PASSWORD); store_nvs_value(NVS_TYPE_U8,"autoexec",&autoexec_dft); store_nvs_value(NVS_TYPE_STR,"autoexec1",autoexec1_dft);