1pub const ENCODER_NUM_CHANNELS: usize = 2;
2pub const DECODER_NUM_CHANNELS: usize = 2;
3
4pub const SILK_NO_ERROR: i32 = 0;
5
6pub const MAX_FRAMES_PER_PACKET: usize = 3;
7
8pub const NB_SPEECH_FRAMES_BEFORE_DTX: i32 = 10;
9pub const MAX_CONSECUTIVE_DTX: i32 = 20;
10
11pub const SPEECH_ACTIVITY_DTX_THRES_Q8: i32 = 13;
12
13pub const MIN_TARGET_RATE_BPS: i32 = 5000;
14pub const MAX_TARGET_RATE_BPS: i32 = 80000;
15
16pub const MAX_FS_KHZ: usize = 16;
17
18pub const MAX_NB_SUBFR: usize = 4;
19pub const LTP_MEM_LENGTH_MS: usize = 20;
20pub const SUB_FRAME_LENGTH_MS: usize = 5;
21pub const MAX_SUB_FRAME_LENGTH: usize = SUB_FRAME_LENGTH_MS * MAX_FS_KHZ;
22pub const MAX_FRAME_LENGTH_MS: usize = SUB_FRAME_LENGTH_MS * MAX_NB_SUBFR;
23pub const MAX_FRAME_LENGTH: usize = MAX_FRAME_LENGTH_MS * MAX_FS_KHZ;
24
25pub const LA_PITCH_MS: usize = 2;
26pub const LA_PITCH_MAX: usize = LA_PITCH_MS * MAX_FS_KHZ;
27pub const LA_SHAPE_MS: usize = 5;
28pub const LA_SHAPE_MAX: usize = LA_SHAPE_MS * MAX_FS_KHZ;
29pub const MAX_LOOK_AHEAD: usize = (LA_PITCH_MS + LA_SHAPE_MS) * MAX_FS_KHZ;
30
31pub const MAX_FIND_PITCH_LPC_ORDER: usize = 16;
32pub const MAX_LPC_ORDER: usize = 16;
33pub const MIN_LPC_ORDER: usize = 10;
34pub const MAX_SHAPE_LPC_ORDER: usize = 24;
35
36pub const MAX_LPC_STABILIZE_ITERATIONS: usize = 16;
37
38pub const LTP_ORDER: usize = 5;
39
40pub const HARM_SHAPE_FIR_TAPS: usize = 3;
41
42pub const VAD_N_BANDS: usize = 4;
43pub const VAD_NOISE_LEVELS_BIAS: i32 = 50;
44
45pub const VAD_INTERNAL_SUBFRAMES_LOG2: usize = 2;
46pub const VAD_INTERNAL_SUBFRAMES: usize = 1 << VAD_INTERNAL_SUBFRAMES_LOG2;
47
48pub const VAD_NOISE_LEVEL_SMOOTH_COEF_Q16: i32 = 1024;
49pub const VAD_SNR_FACTOR_Q16: i32 = 45000;
50pub const VAD_NEGATIVE_OFFSET_Q5: i32 = 128;
51pub const VAD_SNR_SMOOTH_COEF_Q18: i32 = 4096;
52
53pub const NSQ_LPC_BUF_LENGTH: usize = MAX_LPC_ORDER;
54pub const DECISION_DELAY: usize = 40;
55pub const QUANT_LEVEL_ADJUST_Q10: i32 = 80;
56pub const NSQ_MAX_STATES_OPERATING: usize = 4;
57
58pub const NLSF_QUANT_MAX_AMPLITUDE: i32 = 4;
59pub const NLSF_QUANT_MAX_AMPLITUDE_EXT: i32 = 10;
60pub const NLSF_QUANT_LEVEL_ADJ: i32 = 102;
61pub const NLSF_QUANT_DEL_DEC_STATES: usize = 4;
62pub const NLSF_QUANT_DEL_DEC_STATES_LOG2: usize = 2;
63
64pub const INTERP_NUM_STATES: usize = 5;
65
66pub const TYPE_NO_VOICE_ACTIVITY: i32 = 0;
67pub const TYPE_UNVOICED: i32 = 1;
68pub const TYPE_VOICED: i32 = 2;
69
70pub const CODE_INDEPENDENTLY_NO_LTP_SCALING: i32 = 2;
71
72pub const SILK_PE_MIN_COMPLEX: usize = 0;
73pub const SILK_PE_MID_COMPLEX: usize = 1;
74pub const SILK_PE_MAX_COMPLEX: usize = 2;
75
76pub const PE_MAX_NB_SUBFR: usize = 4;
77pub const PE_NB_CBKS_STAGE2_10MS: usize = 3;
78pub const PE_NB_CBKS_STAGE3_10MS: usize = 12;
79pub const PE_NB_CBKS_STAGE2_EXT: usize = 11;
80pub const PE_NB_CBKS_STAGE2: usize = 3;
81pub const PE_NB_CBKS_STAGE3_MAX: usize = 34;
82pub const PE_NB_CBKS_STAGE3_MIN: usize = 16;
83pub const PE_NB_CBKS_STAGE3_MID: usize = 24;
84
85pub const PITCH_EST_MIN_LAG_MS: i32 = 2;
86pub const PITCH_EST_MAX_LAG_MS: i32 = 18;
87
88pub const MAX_PREDICTION_POWER_GAIN: f32 = 1e4f32;
89pub const MAX_PREDICTION_POWER_GAIN_AFTER_RESET: f32 = 1e2f32;
90
91pub const PE_MAX_FS_KHZ: usize = 16;
92pub const PE_SUBFR_LENGTH_MS: usize = 5;
93pub const PE_LTP_MEM_LENGTH_MS: usize = 20;
94
95pub const PE_MAX_FRAME_LENGTH_MS: usize =
96 PE_LTP_MEM_LENGTH_MS + PE_MAX_NB_SUBFR * PE_SUBFR_LENGTH_MS;
97pub const PE_MAX_FRAME_LENGTH: usize = PE_MAX_FRAME_LENGTH_MS * PE_MAX_FS_KHZ;
98pub const PE_MAX_FRAME_LENGTH_ST_1: usize = PE_MAX_FRAME_LENGTH >> 2;
99pub const PE_MAX_FRAME_LENGTH_ST_2: usize = PE_MAX_FRAME_LENGTH >> 1;
100
101pub const PE_MAX_LAG_MS: usize = 18;
102pub const PE_MIN_LAG_MS: usize = 2;
103
104pub const TRANSITION_TIME_MS: i32 = 5120;
105pub const TRANSITION_NB: usize = 3;
106pub const TRANSITION_NA: usize = 2;
107pub const TRANSITION_INT_NUM: usize = 5;
108pub const TRANSITION_FRAMES: i32 = TRANSITION_TIME_MS / MAX_FRAME_LENGTH_MS as i32;
109pub const TRANSITION_INT_STEPS: i32 = TRANSITION_FRAMES / (TRANSITION_INT_NUM as i32 - 1);
110pub const PE_MAX_LAG: usize = PE_MAX_LAG_MS * PE_MAX_FS_KHZ;
111pub const PE_MIN_LAG: usize = PE_MIN_LAG_MS * PE_MAX_FS_KHZ;
112
113pub const PE_D_SRCH_LENGTH: usize = 24;
114pub const PE_NB_STAGE3_LAGS: usize = 5;
115
116pub const PE_SHORTLAG_BIAS_Q13: i32 = 1638;
117pub const PE_PREVLAG_BIAS_Q13: i32 = 1638;
118pub const PE_FLATCONTOUR_BIAS_Q13: i32 = 410;
119
120pub const COND_ALPHA_MIN_Q15: i32 = 25000;
121pub const COND_ALPHA_MAX_Q15: i32 = 31000;
122
123pub const FIND_LPC_COND_FAC_Q31: i32 = 21475;
124
125pub const CODE_INDEPENDENTLY: i32 = 0;
126pub const CODE_CONDITIONALLY: i32 = 1;
127pub const CODE_INFORMATION: i32 = 2;
128
129pub const N_RATE_LEVELS: usize = 10;
130pub const SILK_MAX_PULSES: usize = 16;
131pub const SHELL_CODEC_FRAME_LENGTH: usize = 16;
132
133pub const MIN_QGAIN_DB: i32 = 2;
134pub const MAX_QGAIN_DB: i32 = 88;
135pub const N_LEVELS_QGAIN: i32 = 64;
136pub const MAX_DELTA_GAIN_QUANT: i32 = 36;
137pub const MIN_DELTA_GAIN_QUANT: i32 = -4;