From: Tim Walker Date: Fri, 22 Nov 2013 19:19:55 +0000 (+0100) Subject: dca: convert dca_default_coeffs to float. X-Git-Tag: v10_alpha1~161 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b6d5e6aa10a2f09351f287e876f7ed4504e1f75d;p=platform%2Fupstream%2Flibav.git dca: convert dca_default_coeffs to float. Easier to read, modify, and avoids relying on an outdated table. Signed-off-by: Anton Khirnov --- diff --git a/libavcodec/dcadata.h b/libavcodec/dcadata.h index 324e40f..e8f07e8 100644 --- a/libavcodec/dcadata.h +++ b/libavcodec/dcadata.h @@ -7522,17 +7522,17 @@ static const float dca_downmix_coeffs[65] = { 0.001412537544623, 0.001000000000000, 0.000501187233627, 0.000251188643151, 0.000000000000000, }; -static const uint8_t dca_default_coeffs[10][5][2] = { - { { 13, 13 }, }, - { { 0, 64 }, { 64, 0 }, }, - { { 0, 64 }, { 64, 0 }, }, - { { 0, 64 }, { 64, 0 }, }, - { { 0, 64 }, { 64, 0 }, }, - { { 6, 6 }, { 0, 25 }, { 25, 0 }, }, - { { 0, 25 }, { 25, 0 }, { 13, 13 }, }, - { { 6, 6 }, { 0, 25 }, { 25, 0 }, { 13, 13 }, }, - { { 0, 25 }, { 25, 0 }, { 0, 13 }, { 13, 0 }, }, - { { 6, 6 }, { 0, 25 }, { 25, 0 }, { 0, 13 }, { 13, 0 }, }, +static const float dca_default_coeffs[10][5][2] = { + { { 0.707946, 0.707946 }, }, // A + { { 1.000000, 0.000000 }, { 0.000000, 1.000000 }, }, // A + B (dual mono) + { { 1.000000, 0.000000 }, { 0.000000, 1.000000 }, }, // L + R (stereo) + { { 1.000000, 0.000000 }, { 0.000000, 1.000000 }, }, // (L+R) + (L-R) (sum-difference) + { { 1.000000, 0.000000 }, { 0.000000, 1.000000 }, }, // LT + RT (left and right total) + { { 0.865964, 0.865964 }, { 1.000000, 0.501187 }, { 0.501187, 1.000000 }, }, // C + L + R + { { 1.000000, 0.501187 }, { 0.501187, 1.000000 }, { 0.707946, 0.707946 }, }, // L + R + S + { { 0.865964, 0.865964 }, { 1.000000, 0.501187 }, { 0.501187, 1.000000 }, { 0.707946, 0.707946 }, }, // C + L + R + S + { { 1.000000, 0.501187 }, { 0.501187, 1.000000 }, { 1.000000, 0.707946 }, { 0.707946, 1.000000 }, }, // L + R + SL + SR + { { 0.865964, 0.865964 }, { 1.000000, 0.501187 }, { 0.501187, 1.000000 }, { 1.000000, 0.707946 }, { 0.707946, 1.000000 }, }, // C + L + R + SL + SR }; /* downmix coeffs diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c index 79f2c63..33a2ac6 100644 --- a/libavcodec/dcadec.c +++ b/libavcodec/dcadec.c @@ -819,8 +819,8 @@ static int dca_subframe_header(DCAContext *s, int base_channel, int block_index) } for (j = base_channel; j < s->prim_channels; j++) { - s->downmix_coef[j][0] = dca_downmix_coeffs[dca_default_coeffs[am][j][0]]; - s->downmix_coef[j][1] = dca_downmix_coeffs[dca_default_coeffs[am][j][1]]; + s->downmix_coef[j][0] = dca_default_coeffs[am][j][0]; + s->downmix_coef[j][1] = dca_default_coeffs[am][j][1]; } } }