From 174942f509d7010497a322a3b49287c402aff288 Mon Sep 17 00:00:00 2001 From: Philippe G Date: Sun, 10 Jan 2021 02:13:46 -0800 Subject: [PATCH] better alac management --- components/codecs/inc/alac/alac_wrapper.h | 2 +- components/codecs/lib/libalac.a | Bin 168488 -> 168924 bytes components/raop/rtp.c | 4 ++-- components/squeezelite/alac.c | 23 ++++++++++++++-------- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/components/codecs/inc/alac/alac_wrapper.h b/components/codecs/inc/alac/alac_wrapper.h index 59cf4722..e9e753d5 100644 --- a/components/codecs/inc/alac/alac_wrapper.h +++ b/components/codecs/inc/alac/alac_wrapper.h @@ -19,7 +19,7 @@ extern "C" { struct alac_codec_s *alac_create_decoder(int magic_cookie_size, unsigned char *magic_cookie, unsigned char *sample_size, unsigned *sample_rate, - unsigned char *channels); + unsigned char *channels, unsigned int *block_size); void alac_delete_decoder(struct alac_codec_s *codec); bool alac_to_pcm(struct alac_codec_s *codec, unsigned char* input, unsigned char *output, char channels, unsigned *out_frames); diff --git a/components/codecs/lib/libalac.a b/components/codecs/lib/libalac.a index 18d936a06c303580b1064b6641e0217d50dc4f32..803eec5e226e7cb5301790d9d72a7ddd5751e3b7 100644 GIT binary patch delta 25691 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 diff --git a/components/raop/rtp.c b/components/raop/rtp.c index 599fb224..e12cf95f 100644 --- a/components/raop/rtp.c +++ b/components/raop/rtp.c @@ -168,7 +168,7 @@ static void rtp_thread_func(void *arg); /*---------------------------------------------------------------------------*/ static struct alac_codec_s* alac_init(int fmtp[32]) { struct alac_codec_s *alac; - unsigned sample_rate; + unsigned sample_rate, block_size; unsigned char sample_size, channels; struct { uint32_t frameLength; @@ -196,7 +196,7 @@ static struct alac_codec_s* alac_init(int fmtp[32]) { config.avgBitRate = htonl(fmtp[10]); config.sampleRate = htonl(fmtp[11]); - alac = alac_create_decoder(sizeof(config), (unsigned char*) &config, &sample_size, &sample_rate, &channels); + alac = alac_create_decoder(sizeof(config), (unsigned char*) &config, &sample_size, &sample_rate, &channels, &block_size); if (!alac) { LOG_ERROR("cannot create alac codec", NULL); return NULL; diff --git a/components/squeezelite/alac.c b/components/squeezelite/alac.c index 0fc0f8b1..71bab64f 100644 --- a/components/squeezelite/alac.c +++ b/components/squeezelite/alac.c @@ -119,8 +119,16 @@ static int read_mp4_header(void) { // extract audio config from within alac if (!strcmp(type, "alac") && bytes > len) { u8_t *ptr = streambuf->readp + 36; - l->decoder = alac_create_decoder(len - 36, ptr, &l->sample_size, &l->sample_rate, &l->channels); - l->play = l->trak; + unsigned int block_size; + l->decoder = alac_create_decoder(len - 36, ptr, &l->sample_size, &l->sample_rate, &l->channels, &block_size); + l->play = l->trak; + l->writebuf = malloc(block_size + 256); + if (!l->writebuf) { + LOG_ERROR("cannot allocate write buffer for %u bytes", block_size); + return -1; + } else { + LOG_INFO("write buffer of %u bytes", block_size); + } } // extract the total number of samples from stts @@ -510,12 +518,11 @@ static decode_state alac_decode(void) { static void alac_open(u8_t size, u8_t rate, u8_t chan, u8_t endianness) { if (l->decoder) alac_delete_decoder(l->decoder); - else l->writebuf = malloc(BLOCK_SIZE * 2); - + if (l->writebuf) free(l->writebuf); if (l->chunkinfo) free(l->chunkinfo); if (l->block_size) free(l->block_size); if (l->stsc) free(l->stsc); - l->decoder = l->chunkinfo = l->stsc = l->block_size = NULL; + l->writebuf = l->decoder = l->chunkinfo = l->stsc = l->block_size = NULL; l->skip = 0; l->samples = l->sttssamples = 0; l->empty = false; @@ -524,11 +531,11 @@ static void alac_open(u8_t size, u8_t rate, u8_t chan, u8_t endianness) { static void alac_close(void) { if (l->decoder) alac_delete_decoder(l->decoder); + if (l->writebuf) free(l->writebuf); if (l->chunkinfo) free(l->chunkinfo); if (l->block_size) free(l->block_size); if (l->stsc) free(l->stsc); - l->decoder = l->chunkinfo = l->stsc = l->block_size = NULL; - free(l->writebuf); + l->writebuf = l->decoder = l->chunkinfo = l->stsc = l->block_size = NULL; } struct codec *register_alac(void) { @@ -547,7 +554,7 @@ struct codec *register_alac(void) { return NULL; } - l->decoder = l->chunkinfo = l->stsc = l->block_size = NULL; + l->writebuf = l->decoder = l->chunkinfo = l->stsc = l->block_size = NULL; LOG_INFO("using alac to decode alc"); return &ret;