FreeCalypso > hg > gsm-codec-lib
comparison libgsmefr/e_homing.c @ 68:aacdf352576c
libgsmefr: e_homing.c compiles
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Sat, 26 Nov 2022 05:21:50 +0000 |
| parents | 49dd1ac8e75b |
| children | 035424a6ca83 |
comparison
equal
deleted
inserted
replaced
| 67:58b64224d4ac | 68:aacdf352576c |
|---|---|
| 15 * variables for the encoder and VAD, and | 15 * variables for the encoder and VAD, and |
| 16 * for the transmit DTX and Comfort Noise. | 16 * for the transmit DTX and Comfort Noise. |
| 17 * | 17 * |
| 18 **************************************************************************/ | 18 **************************************************************************/ |
| 19 | 19 |
| 20 #include "gsm_efr.h" | |
| 20 #include "typedef.h" | 21 #include "typedef.h" |
| 22 #include "namespace.h" | |
| 21 #include "cnst.h" | 23 #include "cnst.h" |
| 22 #include "vad.h" | 24 #include "vad.h" |
| 23 #include "dtx.h" | 25 #include "dtx.h" |
| 24 #include "codec.h" | 26 #include "codec.h" |
| 25 #include "sig_proc.h" | 27 #include "sig_proc.h" |
| 28 #include "memops.h" | |
| 29 #include "enc_state.h" | |
| 26 #include "e_homing.h" | 30 #include "e_homing.h" |
| 27 | 31 |
| 28 /*************************************************************************** | 32 /*************************************************************************** |
| 29 * | 33 * |
| 30 * FUNCTION NAME: encoder_homing_frame_test | 34 * FUNCTION NAME: encoder_homing_frame_test |
| 76 * RETURN: | 80 * RETURN: |
| 77 * None | 81 * None |
| 78 * | 82 * |
| 79 **************************************************************************/ | 83 **************************************************************************/ |
| 80 | 84 |
| 81 void encoder_reset (void) | 85 void encoder_reset (struct EFR_encoder_state *st) |
| 82 { | 86 { |
| 83 /* External declarations for encoder variables which need to be reset */ | |
| 84 | |
| 85 /* Variables defined in levinson.c */ | |
| 86 /* ------------------------------- */ | |
| 87 extern Word16 old_A[M + 1]; /* Last A(z) for case of unstable filter */ | |
| 88 | |
| 89 /* Variables defined in q_gains.c */ | |
| 90 /* ------------------------------- */ | |
| 91 /* Memories of gain quantization: */ | |
| 92 extern Word16 past_qua_en[4], pred[4]; | |
| 93 | |
| 94 /* Variables defined in q_plsf_5.c */ | |
| 95 /* ------------------------------- */ | |
| 96 /* Past quantized prediction error */ | |
| 97 extern Word16 past_r2_q[M]; | |
| 98 | |
| 99 Word16 i; | 87 Word16 i; |
| 100 | 88 |
| 101 /* reset all the encoder state variables */ | 89 /* reset all the encoder state variables */ |
| 102 /* ------------------------------------- */ | 90 /* ------------------------------------- */ |
| 103 | 91 |
| 104 /* Variables in cod_12k2.c: */ | 92 /* Variables in cod_12k2.c: */ |
| 105 Init_Coder_12k2 (); | 93 Init_Coder_12k2 (st); |
| 106 | 94 |
| 107 /* Variables in levinson.c: */ | 95 /* Variables in levinson.c: */ |
| 108 old_A[0] = 4096; /* Last A(z) for case of unstable filter */ | 96 st->old_A[0] = 4096; /* Last A(z) for case of unstable filter */ |
| 109 for (i = 1; i < M + 1; i++) | 97 for (i = 1; i < M + 1; i++) |
| 110 { | 98 { |
| 111 old_A[i] = 0; | 99 st->old_A[i] = 0; |
| 112 } | 100 } |
| 113 | 101 |
| 114 /* Variables in pre_proc.c: */ | 102 /* Variables in pre_proc.c: */ |
| 115 Init_Pre_Process (); | 103 Init_Pre_Process (st); |
| 116 | 104 |
| 117 /* Variables in q_gains.c: */ | 105 /* Variables in q_gains.c: */ |
| 118 for (i = 0; i < 4; i++) | 106 for (i = 0; i < 4; i++) |
| 119 { | 107 { |
| 120 past_qua_en[i] = -2381; /* past quantized energies */ | 108 st->past_qua_en[i] = -2381; /* past quantized energies */ |
| 121 } | 109 } |
| 122 | 110 |
| 123 pred[0] = 44; /* MA prediction coeff */ | 111 st->pred[0] = 44; /* MA prediction coeff */ |
| 124 pred[1] = 37; /* MA prediction coeff */ | 112 st->pred[1] = 37; /* MA prediction coeff */ |
| 125 pred[2] = 22; /* MA prediction coeff */ | 113 st->pred[2] = 22; /* MA prediction coeff */ |
| 126 pred[3] = 12; /* MA prediction coeff */ | 114 st->pred[3] = 12; /* MA prediction coeff */ |
| 127 | 115 |
| 128 /* Variables in q_plsf_5.c: */ | 116 /* Variables in q_plsf_5.c: */ |
| 129 for (i = 0; i < M; i++) | 117 for (i = 0; i < M; i++) |
| 130 { | 118 { |
| 131 past_r2_q[i] = 0; /* Past quantized prediction error */ | 119 st->past_r2_q[i] = 0; /* Past quantized prediction error */ |
| 132 } | 120 } |
| 133 | 121 |
| 134 return; | 122 return; |
| 135 } | 123 } |
| 136 | 124 |
| 151 * RETURN: | 139 * RETURN: |
| 152 * None | 140 * None |
| 153 * | 141 * |
| 154 **************************************************************************/ | 142 **************************************************************************/ |
| 155 | 143 |
| 156 void reset_enc (void) | 144 void EFR_encoder_reset (struct EFR_encoder_state *st, int dtx) |
| 157 { | 145 { |
| 158 encoder_reset (); /* reset all the state variables in the speech encoder*/ | 146 st->dtx_mode = dtx; |
| 159 vad_reset (); /* reset all the VAD state variables */ | 147 |
| 160 reset_tx_dtx (); /* reset all the transmit DTX and CN variables */ | 148 encoder_reset (st); /* reset all the state variables in the speech encoder*/ |
| 149 vad_reset (st); /* reset all the VAD state variables */ | |
| 150 reset_tx_dtx (st); /* reset all the transmit DTX and CN variables */ | |
| 161 | 151 |
| 162 return; | 152 return; |
| 163 } | 153 } |
