From 937911d559051522554ac6f0d6d35fc0836d541a Mon Sep 17 00:00:00 2001 From: Tristan Matthews Date: Sat, 31 May 2014 17:07:34 -0400 Subject: [PATCH] faad: drop byte of padding for raw streams Fixes #2575, #11514 --- modules/codec/faad.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/codec/faad.c b/modules/codec/faad.c index bf1b004a75..9aaaed63e9 100644 --- a/modules/codec/faad.c +++ b/modules/codec/faad.c @@ -491,8 +491,19 @@ static block_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block ) p_sys->i_buffer -= frame.bytesconsumed; if( p_sys->i_buffer > 0 ) { - memmove( p_sys->p_buffer, &p_sys->p_buffer[frame.bytesconsumed], - p_sys->i_buffer ); + /* drop byte of raw AAC padding (if present) */ + if ( frame.header_type == RAW && + p_sys->i_buffer == 1 && + p_sys->p_buffer[0] == 0x21 && + p_sys->p_buffer[frame.bytesconsumed] == 0 ) + { + p_sys->i_buffer = 0; + } + else + { + memmove( p_sys->p_buffer, &p_sys->p_buffer[frame.bytesconsumed], + p_sys->i_buffer ); + } } return p_out; -- 2.39.2