Easier to read, modify, and avoids relying on an outdated table.
---
libavcodec/dcadata.h | 22 +++++++++++-----------
libavcodec/dcadec.c | 4 ++--
2 files changed, 13 insertions(+), 13 deletions(-)
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 c6cc996..a286cc0 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];
}
}
}
--
1.8.3.4 (Apple Git-47)
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel