X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Falac%2Falac.c;h=195e66afd0de62ca9a364c345811e790129571aa;hb=982a0c2652606004b80c1a79827683359f5676d3;hp=9d575ae6b2e47ec6ebdb4ad52c64c3e612f4a267;hpb=e1a8dfe69a0419217bcce0354fa920dc34a0569d;p=deb_shairplay.git diff --git a/src/lib/alac/alac.c b/src/lib/alac/alac.c index 9d575ae..195e66a 100644 --- a/src/lib/alac/alac.c +++ b/src/lib/alac/alac.c @@ -111,6 +111,24 @@ static void allocate_buffers(alac_file *alac) alac->uncompressed_bytes_buffer_b = malloc(alac->setinfo_max_samples_per_frame * 4); } +static void deallocate_buffers(alac_file *alac) +{ + free(alac->predicterror_buffer_a); + free(alac->predicterror_buffer_b); + alac->predicterror_buffer_a = NULL; + alac->predicterror_buffer_b = NULL; + + free(alac->outputsamples_buffer_a); + free(alac->outputsamples_buffer_b); + alac->outputsamples_buffer_a = NULL; + alac->outputsamples_buffer_b = NULL; + + free(alac->uncompressed_bytes_buffer_a); + free(alac->uncompressed_bytes_buffer_b); + alac->uncompressed_bytes_buffer_a = NULL; + alac->uncompressed_bytes_buffer_b = NULL; +} + void alac_set_info(alac_file *alac, char *inputbuffer) { char *ptr = inputbuffer; @@ -1170,3 +1188,9 @@ alac_file *create_alac(int samplesize, int numchannels) return newfile; } +void destroy_alac(alac_file *alac) +{ + if (!alac) return; + deallocate_buffers(alac); + free(alac); +}