X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fcodec%2Faraw.c;h=e75e2d4dcc84c794738504f1da90c1c61fcc9a78;hb=b5277240aa78e2515cc4f32ca4b582160b2ee8d8;hp=b36c6cc1405fb102c6530b27d27333c82e450448;hpb=13ae40b0efc4f1b1ce205d9a057537047fcab3f4;p=vlc diff --git a/modules/codec/araw.c b/modules/codec/araw.c index b36c6cc140..e75e2d4dcc 100644 --- a/modules/codec/araw.c +++ b/modules/codec/araw.c @@ -28,7 +28,7 @@ # include "config.h" #endif -#include +#include #include #include #include @@ -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 )