|
|
@@ -76,18 +76,6 @@ static const float gain_levels[9] = { |
|
|
|
LEVEL_MINUS_9DB |
|
|
|
}; |
|
|
|
|
|
|
|
/** |
|
|
|
* 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 |
|
|
@@ -320,8 +308,8 @@ static int parse_frame_header(AC3DecodeContext *s) |
|
|
|
static void set_downmix_coeffs(AC3DecodeContext *s) |
|
|
|
{ |
|
|
|
int i; |
|
|
|
float cmix = gain_levels[center_levels[s->center_mix_level]]; |
|
|
|
float smix = gain_levels[surround_levels[s->surround_mix_level]]; |
|
|
|
float cmix = gain_levels[s-> center_mix_level]; |
|
|
|
float smix = gain_levels[s->surround_mix_level]; |
|
|
|
float norm0, norm1; |
|
|
|
|
|
|
|
for (i = 0; i < s->fbw_channels; i++) { |
|
|
@@ -1400,8 +1388,8 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data, |
|
|
|
avctx->channels = s->out_channels; |
|
|
|
avctx->channel_layout = s->channel_layout; |
|
|
|
|
|
|
|
s->loro_center_mix_level = gain_levels[ center_levels[s-> center_mix_level]]; |
|
|
|
s->loro_surround_mix_level = gain_levels[surround_levels[s->surround_mix_level]]; |
|
|
|
s->loro_center_mix_level = gain_levels[s-> center_mix_level]; |
|
|
|
s->loro_surround_mix_level = gain_levels[s->surround_mix_level]; |
|
|
|
s->ltrt_center_mix_level = LEVEL_MINUS_3DB; |
|
|
|
s->ltrt_surround_mix_level = LEVEL_MINUS_3DB; |
|
|
|
/* set downmixing coefficients if needed */ |
|
|
|