Mercurial > libavcodec.hg
diff ac3dec.c @ 7019:81d5c68233e5 libavcodec
move mix level tables from parser to decoder. have parser read bitstream value instead of using an index to a table in the decoder.
| author | jbr |
|---|---|
| date | Sat, 07 Jun 2008 22:30:09 +0000 |
| parents | 885cad616170 |
| children | 40a2db8dbaa2 |
line wrap: on
line diff
--- a/ac3dec.c Sat Jun 07 22:30:03 2008 +0000 +++ b/ac3dec.c Sat Jun 07 22:30:09 2008 +0000 @@ -95,6 +95,18 @@ }; /** + * Table for center mix levels + * reference: Section 5.4.2.4 cmixlev + */ +static const uint8_t center_levels[4] = { 4, 5, 6, 5 }; + +/** + * Table for surround mix levels + * reference: Section 5.4.2.5 surmixlev + */ +static const uint8_t surround_levels[4] = { 4, 6, 7, 6 }; + +/** * Table for default stereo downmixing coefficients * reference: Section 7.8.2 Downmixing Into Two Channels */ @@ -383,8 +395,8 @@ static void set_downmix_coeffs(AC3DecodeContext *s) { int i; - float cmix = gain_levels[s->center_mix_level]; - float smix = gain_levels[s->surround_mix_level]; + float cmix = gain_levels[center_levels[s->center_mix_level]]; + float smix = gain_levels[surround_levels[s->surround_mix_level]]; for(i=0; i<s->fbw_channels; i++) { s->downmix_coeffs[i][0] = gain_levels[ac3_default_coeffs[s->channel_mode][i][0]];
