OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 /* decode the lsf */ | 96 /* decode the lsf */ |
97 WebRtcIlbcfix_SimpleLsfDeQ(lsfdeq, (int16_t*)(iLBCbits_inst->lsf), iLBCdec
_inst->lpc_n); | 97 WebRtcIlbcfix_SimpleLsfDeQ(lsfdeq, (int16_t*)(iLBCbits_inst->lsf), iLBCdec
_inst->lpc_n); |
98 WebRtcIlbcfix_LsfCheck(lsfdeq, LPC_FILTERORDER, iLBCdec_inst->lpc_n); | 98 WebRtcIlbcfix_LsfCheck(lsfdeq, LPC_FILTERORDER, iLBCdec_inst->lpc_n); |
99 WebRtcIlbcfix_DecoderInterpolateLsp(syntdenum, weightdenum, | 99 WebRtcIlbcfix_DecoderInterpolateLsp(syntdenum, weightdenum, |
100 lsfdeq, LPC_FILTERORDER, iLBCdec_inst)
; | 100 lsfdeq, LPC_FILTERORDER, iLBCdec_inst)
; |
101 | 101 |
102 /* Decode the residual using the cb and gain indexes */ | 102 /* Decode the residual using the cb and gain indexes */ |
103 WebRtcIlbcfix_DecodeResidual(iLBCdec_inst, iLBCbits_inst, decresidual, syn
tdenum); | 103 WebRtcIlbcfix_DecodeResidual(iLBCdec_inst, iLBCbits_inst, decresidual, syn
tdenum); |
104 | 104 |
105 /* preparing the plc for a future loss! */ | 105 /* preparing the plc for a future loss! */ |
106 WebRtcIlbcfix_DoThePlc( PLCresidual, PLClpc, 0, | 106 WebRtcIlbcfix_DoThePlc( |
107 decresidual, syntdenum + (LPC_FILTERORDER + 1)*(iL
BCdec_inst->nsub - 1), | 107 PLCresidual, PLClpc, 0, decresidual, |
108 (int16_t)(iLBCdec_inst->last_lag), iLBCdec_inst); | 108 syntdenum + (LPC_FILTERORDER + 1) * (iLBCdec_inst->nsub - 1), |
| 109 (int16_t)(iLBCdec_inst->last_lag), iLBCdec_inst); |
109 | 110 |
110 /* Use the output from doThePLC */ | 111 /* Use the output from doThePLC */ |
111 WEBRTC_SPL_MEMCPY_W16(decresidual, PLCresidual, iLBCdec_inst->blockl); | 112 WEBRTC_SPL_MEMCPY_W16(decresidual, PLCresidual, iLBCdec_inst->blockl); |
112 } | 113 } |
113 | 114 |
114 } | 115 } |
115 | 116 |
116 if (mode == 0) { | 117 if (mode == 0) { |
117 /* the data is bad (either a PLC call | 118 /* the data is bad (either a PLC call |
118 * was made or a bit error was detected) | 119 * was made or a bit error was detected) |
119 */ | 120 */ |
120 | 121 |
121 /* packet loss conceal */ | 122 /* packet loss conceal */ |
122 | 123 |
123 WebRtcIlbcfix_DoThePlc( PLCresidual, PLClpc, 1, | 124 WebRtcIlbcfix_DoThePlc(PLCresidual, PLClpc, 1, decresidual, syntdenum, |
124 decresidual, syntdenum, (int16_t)(iLBCdec_inst->last
_lag), iLBCdec_inst); | 125 (int16_t)(iLBCdec_inst->last_lag), iLBCdec_inst); |
125 | 126 |
126 WEBRTC_SPL_MEMCPY_W16(decresidual, PLCresidual, iLBCdec_inst->blockl); | 127 WEBRTC_SPL_MEMCPY_W16(decresidual, PLCresidual, iLBCdec_inst->blockl); |
127 | 128 |
128 order_plus_one = LPC_FILTERORDER + 1; | 129 order_plus_one = LPC_FILTERORDER + 1; |
129 | 130 |
130 for (i = 0; i < iLBCdec_inst->nsub; i++) { | 131 for (i = 0; i < iLBCdec_inst->nsub; i++) { |
131 WEBRTC_SPL_MEMCPY_W16(syntdenum+(i*order_plus_one), | 132 WEBRTC_SPL_MEMCPY_W16(syntdenum+(i*order_plus_one), |
132 PLClpc, order_plus_one); | 133 PLClpc, order_plus_one); |
133 } | 134 } |
134 } | 135 } |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 | 235 |
235 WEBRTC_SPL_MEMCPY_W16(iLBCdec_inst->old_syntdenum, | 236 WEBRTC_SPL_MEMCPY_W16(iLBCdec_inst->old_syntdenum, |
236 syntdenum, iLBCdec_inst->nsub*(LPC_FILTERORDER+1)); | 237 syntdenum, iLBCdec_inst->nsub*(LPC_FILTERORDER+1)); |
237 | 238 |
238 iLBCdec_inst->prev_enh_pl=0; | 239 iLBCdec_inst->prev_enh_pl=0; |
239 | 240 |
240 if (mode==0) { /* PLC was used */ | 241 if (mode==0) { /* PLC was used */ |
241 iLBCdec_inst->prev_enh_pl=1; | 242 iLBCdec_inst->prev_enh_pl=1; |
242 } | 243 } |
243 } | 244 } |
OLD | NEW |