diff options
Diffstat (limited to 'apps/codec_thread.c')
| -rw-r--r-- | apps/codec_thread.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/apps/codec_thread.c b/apps/codec_thread.c index 6f15ba1..9b17d7c 100644 --- a/apps/codec_thread.c +++ b/apps/codec_thread.c @@ -193,10 +193,15 @@ void codec_thread_do_callback(void (*fn)(void), unsigned int *id) static void* codec_get_buffer(size_t *size) { - if (codec_size >= CODEC_SIZE) + ssize_t s = CODEC_SIZE - codec_size; + void *buf = &codecbuf[codec_size]; + ALIGN_BUFFER(buf, s, CACHEALIGN_SIZE); + + if (s <= 0) return NULL; - *size = CODEC_SIZE - codec_size; - return &codecbuf[codec_size]; + + *size = s; + return buf; } static void codec_pcmbuf_insert_callback( |