summaryrefslogtreecommitdiff
path: root/libavcodec/hca_data.h
diff options
context:
space:
mode:
authorsummertriangle.dev@gmail.com <summertriangle.dev@gmail.com>2020-06-17 14:45:06 -0700
committerPaul B Mahol <onemda@gmail.com>2020-06-21 11:13:29 +0200
commitbc2dcae897da64349d690b9e2f951a63b97309fd (patch)
tree452b4f35374b23d3661e8b0943b4820e7129a1c4 /libavcodec/hca_data.h
parent536e5dfa73b0c5e87deb7f36d22dcc784b3570de (diff)
avcodec/hcadec: fix decoding of hfr channels
I suspect this was originally broken by b7e5c8f , but even then, it only worked because it read out of bounds from intensity_ratio_table. Signed-off-by: t <summertriangle.dev@gmail.com>
Diffstat (limited to 'libavcodec/hca_data.h')
-rw-r--r--libavcodec/hca_data.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/libavcodec/hca_data.h b/libavcodec/hca_data.h
index 80b4a794dc..7093221c2a 100644
--- a/libavcodec/hca_data.h
+++ b/libavcodec/hca_data.h
@@ -86,18 +86,18 @@ static const float intensity_ratio_table[] =
{
2.0, 1.85714, 1.71429, 1.57143, 1.42857, 1.28571, 1.14286, 1.0,
0.857143, 0.714286, 0.571429, 0.428571, 0.285714, 0.142857, 0.0, 0.0,
- 0, 1.87066e-08, 2.49253e-08, 3.32113e-08, 4.42518e-08, 5.89626e-08, 7.85637e-08, 1.04681e-07,
+};
+
+static const float scale_conversion_table[] =
+{
+ 0, 0, 1.87066e-08, 2.49253e-08, 3.32113e-08, 4.42518e-08, 5.89626e-08, 7.85637e-08, 1.04681e-07,
1.3948e-07, 1.85848e-07, 2.4763e-07, 3.2995e-07, 4.39636e-07, 5.85785e-07, 7.80519e-07, 1.03999e-06,
1.38572e-06, 1.84637e-06, 2.46017e-06, 3.27801e-06, 4.36772e-06, 5.8197e-06, 7.75435e-06, 1.03321e-05,
1.37669e-05, 1.83435e-05, 2.44414e-05, 3.25665e-05, 4.33927e-05, 5.78179e-05, 7.70384e-05, 0.000102648,
0.000136772, 0.00018224, 0.000242822, 0.000323544, 0.000431101, 0.000574413, 0.000765366, 0.0010198,
0.00135881, 0.00181053, 0.0024124, 0.00321437, 0.00428293, 0.00570671, 0.00760381, 0.0101316,
0.0134996, 0.0179873, 0.0239669, 0.0319343, 0.0425503, 0.0566954, 0.0755428, 0.100656,
- 0.134117, 0.178702, 0.238108, 0.317263, 0.422731, 0.563261, 0.750507, 0.0,
-};
-
-static const float scale_conversion_table[] =
-{
+ 0.134117, 0.178702, 0.238108, 0.317263, 0.422731, 0.563261, 0.750507,
1.0, 1.33243, 1.77538, 2.36557, 3.15196, 4.19978, 5.59592, 7.45618,
9.93486, 13.2375, 17.6381, 23.5016, 31.3143, 41.7242, 55.5947, 74.0762,
98.7015, 131.513, 175.232, 233.485, 311.103, 414.524, 552.326, 735.937,
@@ -108,6 +108,8 @@ static const float scale_conversion_table[] =
9.55285e+06, 1.27285e+07, 1.69599e+07, 2.25979e+07, 3.01102e+07, 4.01198e+07, 5.3457e+07, 0,
};
+static const int scale_conv_bias = 64;
+
static const float dequantizer_scaling_table[] =
{
1.58838e-07, 2.11641e-07, 2.81998e-07, 3.75743e-07, 5.00652e-07, 6.67085e-07, 8.88846e-07, 1.18433e-06,