Mercurial > libavcodec.hg
diff ac3dec.c @ 10021:f6c433eacc5a libavcodec
Use coupling band sizes instead of coupling band structure when
calculating coupling transform coefficients.
author | jbr |
---|---|
date | Wed, 05 Aug 2009 01:00:41 +0000 |
parents | 0649c00003a1 |
children | e60ed9255bf4 |
line wrap: on
line diff
--- a/ac3dec.c Tue Aug 04 21:55:47 2009 +0000 +++ b/ac3dec.c Wed Aug 05 01:00:41 2009 +0000 @@ -412,14 +412,11 @@ */ static void calc_transform_coeffs_cpl(AC3DecodeContext *s) { - int i, j, ch, bnd, subbnd; + int i, j, ch, bnd; - subbnd = -1; i = s->start_freq[CPL_CH]; for(bnd=0; bnd<s->num_cpl_bands; bnd++) { - do { - subbnd++; - for(j=0; j<12; j++) { + for (j = 0; j < s->cpl_band_sizes[bnd]; j++,i++) { for(ch=1; ch<=s->fbw_channels; ch++) { if(s->channel_in_cpl[ch]) { s->fixed_coeffs[ch][i] = ((int64_t)s->fixed_coeffs[CPL_CH][i] * (int64_t)s->cpl_coords[ch][bnd]) >> 23; @@ -427,9 +424,7 @@ s->fixed_coeffs[ch][i] = -s->fixed_coeffs[ch][i]; } } - i++; - } - } while(s->cpl_band_struct[subbnd]); + } } } @@ -884,7 +879,8 @@ decode_band_structure(gbc, blk, s->eac3, 0, cpl_start_subband, cpl_end_subband, ff_eac3_default_cpl_band_struct, - s->cpl_band_struct, &s->num_cpl_bands, NULL); + s->cpl_band_struct, &s->num_cpl_bands, + s->cpl_band_sizes); } else { /* coupling not in use */ for (ch = 1; ch <= fbw_channels; ch++) {