diff --git a/libavcodec/ac3dec.c b/libavcodec/ac3dec.c index 46a7602ec7..7ceda65ae4 100644 --- a/libavcodec/ac3dec.c +++ b/libavcodec/ac3dec.c @@ -947,8 +947,8 @@ static int ac3_parse_audio_block(AC3DecodeContext *ctx, int blk) /* bit allocation information */ if (get_bits1(gb)) { - ctx->bit_alloc_params.sdecay = ff_sdecaytab[get_bits(gb, 2)]; - ctx->bit_alloc_params.fdecay = ff_fdecaytab[get_bits(gb, 2)]; + ctx->bit_alloc_params.sdecay = ff_sdecaytab[get_bits(gb, 2)] >> ctx->bit_alloc_params.halfratecod; + ctx->bit_alloc_params.fdecay = ff_fdecaytab[get_bits(gb, 2)] >> ctx->bit_alloc_params.halfratecod; ctx->bit_alloc_params.sgain = ff_sgaintab[get_bits(gb, 2)]; ctx->bit_alloc_params.dbknee = ff_dbkneetab[get_bits(gb, 2)]; ctx->bit_alloc_params.floor = ff_floortab[get_bits(gb, 3)];