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