Commit 6528eafd52 for ffmpeg
commit 6528eafd5229d4e46c3107cf547641f753725d31
Author: Jun Zhao <barryjzhao@tencent.com>
Date: Sat Oct 10 15:54:50 2026 +0800
avcodec/amrnbdata: add the error concealment tables
Add the window build_CN_param() in 3GPP TS 26.073 uses as the
pseudo-random source when substituting a lost speech frame. It
matches the reference element by element. The following commit
uses it.
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
diff --git a/libavcodec/amrnbdata.h b/libavcodec/amrnbdata.h
index f38efb476a..fb91a2057c 100644
--- a/libavcodec/amrnbdata.h
+++ b/libavcodec/amrnbdata.h
@@ -1701,4 +1701,36 @@ static const float dtx_log_en_adjust[9] = {
-0.499512f, -0.428711f, -0.357422f, -0.286133f, -0.214844f, -0.143555f, -0.072266f, 0.000000f, 0.000000f
};
+/*
+ * Hamming_cos window for LPC analysis, from 3GPP TS 26.073 (window.tab).
+ * It is used as the pseudo-random source for parameter substitution in
+ * lost AMR-NB frames.
+ */
+static const int16_t window_200_40[240] = {
+ 2621, 2623, 2629, 2638, 2651, 2668, 2689, 2713, 2741, 2772,
+ 2808, 2847, 2890, 2936, 2986, 3040, 3097, 3158, 3223, 3291,
+ 3363, 3438, 3517, 3599, 3685, 3774, 3867, 3963, 4063, 4166,
+ 4272, 4382, 4495, 4611, 4731, 4853, 4979, 5108, 5240, 5376,
+ 5514, 5655, 5800, 5947, 6097, 6250, 6406, 6565, 6726, 6890,
+ 7057, 7227, 7399, 7573, 7750, 7930, 8112, 8296, 8483, 8672,
+ 8863, 9057, 9252, 9450, 9650, 9852, 10055, 10261, 10468, 10677,
+ 10888, 11101, 11315, 11531, 11748, 11967, 12187, 12409, 12632, 12856,
+ 13082, 13308, 13536, 13764, 13994, 14225, 14456, 14688, 14921, 15155,
+ 15389, 15624, 15859, 16095, 16331, 16568, 16805, 17042, 17279, 17516,
+ 17754, 17991, 18228, 18465, 18702, 18939, 19175, 19411, 19647, 19882,
+ 20117, 20350, 20584, 20816, 21048, 21279, 21509, 21738, 21967, 22194,
+ 22420, 22644, 22868, 23090, 23311, 23531, 23749, 23965, 24181, 24394,
+ 24606, 24816, 25024, 25231, 25435, 25638, 25839, 26037, 26234, 26428,
+ 26621, 26811, 26999, 27184, 27368, 27548, 27727, 27903, 28076, 28247,
+ 28415, 28581, 28743, 28903, 29061, 29215, 29367, 29515, 29661, 29804,
+ 29944, 30081, 30214, 30345, 30472, 30597, 30718, 30836, 30950, 31062,
+ 31170, 31274, 31376, 31474, 31568, 31659, 31747, 31831, 31911, 31988,
+ 32062, 32132, 32198, 32261, 32320, 32376, 32428, 32476, 32521, 32561,
+ 32599, 32632, 32662, 32688, 32711, 32729, 32744, 32755, 32763, 32767,
+ 32767, 32741, 32665, 32537, 32359, 32129, 31850, 31521, 31143, 30716,
+ 30242, 29720, 29151, 28538, 27879, 27177, 26433, 25647, 24821, 23957,
+ 23055, 22117, 21145, 20139, 19102, 18036, 16941, 15820, 14674, 13505,
+ 12315, 11106, 9879, 8637, 7381, 6114, 4838, 3554, 2264, 971
+};
+
#endif /* AVCODEC_AMRNBDATA_H */