From 64a31ec90363f92c9500bf8fc5882aad85183b22 Mon Sep 17 00:00:00 2001 From: Laurent Aimar Date: Sat, 28 Jun 2008 22:03:31 +0000 Subject: [PATCH] Fixed buffer size computation with non zero bits per sample mod 8. --- modules/codec/araw.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/codec/araw.c b/modules/codec/araw.c index 43de4ddff5..e75e2d4dcc 100644 --- a/modules/codec/araw.c +++ b/modules/codec/araw.c @@ -72,6 +72,7 @@ static block_t *EncoderEncode( encoder_t *, aout_buffer_t * ); struct decoder_sys_t { const int16_t *p_logtos16; /* used with m/alaw to int16_t */ + int i_bytespersample; audio_date_t end_date; }; @@ -404,6 +405,7 @@ static int DecoderOpen( vlc_object_t *p_this ) aout_DateInit( &p_sys->end_date, p_dec->fmt_out.audio.i_rate ); aout_DateSet( &p_sys->end_date, 0 ); + p_sys->i_bytespersample = ( p_dec->fmt_in.audio.i_bitspersample + 7 ) / 8; p_dec->pf_decode_audio = DecodeBlock; @@ -441,7 +443,7 @@ static aout_buffer_t *DecodeBlock( decoder_t *p_dec, block_t **pp_block ) /* Don't re-use the same pts twice */ p_block->i_pts = 0; - i_samples = p_block->i_buffer * 8 / p_dec->fmt_in.audio.i_bitspersample / + i_samples = p_block->i_buffer / p_sys->i_bytespersample / p_dec->fmt_in.audio.i_channels; if( i_samples <= 0 ) -- 2.39.2