On 2012-11-25 14:19:33 -0500, Justin Ruggles wrote:
> From: Michael Niedermayer <michae...@gmx.at>
> 
> When the extra rear channel is present but unused, the
> s->channel_order_tab[] value for that channel is -1. The QMF can be
> skipped for the extra channel, and doing so avoids an out-of-array read
> on s->sample_chanptr[].
> 
> Signed-off-by: Michael Niedermayer <michae...@gmx.at>
> Signed-off-by: Justin Ruggles <justin.rugg...@gmail.com>
> ---
>  libavcodec/dcadec.c |    7 ++++---
>  1 files changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c
> index 712a72a..325f3fe 100644
> --- a/libavcodec/dcadec.c
> +++ b/libavcodec/dcadec.c
> @@ -1279,9 +1279,10 @@ static int dca_filter_channels(DCAContext *s, int 
> block_index)
>      for (k = 0; k < s->prim_channels; k++) {
>  /*        static float pcm_to_double[8] = { 32768.0, 32768.0, 524288.0, 
> 524288.0,
>                                              0, 8388608.0, 8388608.0 };*/
> -        qmf_32_subbands(s, k, subband_samples[k],
> -                        s->samples_chanptr[s->channel_order_tab[k]],
> -                        M_SQRT1_2 / 32768.0 /* 
> pcm_to_double[s->source_pcm_res] */);
> +        if (s->channel_order_tab[k] >= 0)
> +            qmf_32_subbands(s, k, subband_samples[k],
> +                            s->samples_chanptr[s->channel_order_tab[k]],
> +                            M_SQRT1_2 / 32768.0 /* 
> pcm_to_double[s->source_pcm_res] */);
>      }

ok

Janne
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to