| 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 1160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1171 SetSampleRateAndChannels(decoder_info->fs_hz, decoder->Channels()); | 1171 SetSampleRateAndChannels(decoder_info->fs_hz, decoder->Channels()); |
| 1172 } | 1172 } |
| 1173 sync_buffer_->set_end_timestamp(timestamp_); | 1173 sync_buffer_->set_end_timestamp(timestamp_); |
| 1174 playout_timestamp_ = timestamp_; | 1174 playout_timestamp_ = timestamp_; |
| 1175 } | 1175 } |
| 1176 } | 1176 } |
| 1177 } | 1177 } |
| 1178 | 1178 |
| 1179 if (reset_decoder_) { | 1179 if (reset_decoder_) { |
| 1180 // TODO(hlundin): Write test for this. | 1180 // TODO(hlundin): Write test for this. |
| 1181 // Reset decoder. | 1181 if (decoder) |
| 1182 if (decoder) { | 1182 decoder->Reset(); |
| 1183 decoder->Init(); | 1183 |
| 1184 } | |
| 1185 // Reset comfort noise decoder. | 1184 // Reset comfort noise decoder. |
| 1186 AudioDecoder* cng_decoder = decoder_database_->GetActiveCngDecoder(); | 1185 AudioDecoder* cng_decoder = decoder_database_->GetActiveCngDecoder(); |
| 1187 if (cng_decoder) { | 1186 if (cng_decoder) |
| 1188 cng_decoder->Init(); | 1187 cng_decoder->Reset(); |
| 1189 } | 1188 |
| 1190 reset_decoder_ = false; | 1189 reset_decoder_ = false; |
| 1191 } | 1190 } |
| 1192 | 1191 |
| 1193 #ifdef LEGACY_BITEXACT | 1192 #ifdef LEGACY_BITEXACT |
| 1194 // Due to a bug in old SignalMCU, it could happen that CNG operation was | 1193 // Due to a bug in old SignalMCU, it could happen that CNG operation was |
| 1195 // decided, but a speech packet was provided. The speech packet will be used | 1194 // decided, but a speech packet was provided. The speech packet will be used |
| 1196 // to update the comfort noise decoder, as if it was a SID frame, which is | 1195 // to update the comfort noise decoder, as if it was a SID frame, which is |
| 1197 // clearly wrong. | 1196 // clearly wrong. |
| 1198 if (*operation == kRfc3389Cng) { | 1197 if (*operation == kRfc3389Cng) { |
| 1199 return 0; | 1198 return 0; |
| (...skipping 689 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1889 decoder_frame_length_ = 3 * output_size_samples_; // Initialize to 30ms. | 1888 decoder_frame_length_ = 3 * output_size_samples_; // Initialize to 30ms. |
| 1890 | 1889 |
| 1891 last_mode_ = kModeNormal; | 1890 last_mode_ = kModeNormal; |
| 1892 | 1891 |
| 1893 // Create a new array of mute factors and set all to 1. | 1892 // Create a new array of mute factors and set all to 1. |
| 1894 mute_factor_array_.reset(new int16_t[channels]); | 1893 mute_factor_array_.reset(new int16_t[channels]); |
| 1895 for (size_t i = 0; i < channels; ++i) { | 1894 for (size_t i = 0; i < channels; ++i) { |
| 1896 mute_factor_array_[i] = 16384; // 1.0 in Q14. | 1895 mute_factor_array_[i] = 16384; // 1.0 in Q14. |
| 1897 } | 1896 } |
| 1898 | 1897 |
| 1899 // Reset comfort noise decoder, if there is one active. | |
| 1900 AudioDecoder* cng_decoder = decoder_database_->GetActiveCngDecoder(); | 1898 AudioDecoder* cng_decoder = decoder_database_->GetActiveCngDecoder(); |
| 1901 if (cng_decoder) { | 1899 if (cng_decoder) |
| 1902 cng_decoder->Init(); | 1900 cng_decoder->Reset(); |
| 1903 } | |
| 1904 | 1901 |
| 1905 // Reinit post-decode VAD with new sample rate. | 1902 // Reinit post-decode VAD with new sample rate. |
| 1906 assert(vad_.get()); // Cannot be NULL here. | 1903 assert(vad_.get()); // Cannot be NULL here. |
| 1907 vad_->Init(); | 1904 vad_->Init(); |
| 1908 | 1905 |
| 1909 // Delete algorithm buffer and create a new one. | 1906 // Delete algorithm buffer and create a new one. |
| 1910 algorithm_buffer_.reset(new AudioMultiVector(channels)); | 1907 algorithm_buffer_.reset(new AudioMultiVector(channels)); |
| 1911 | 1908 |
| 1912 // Delete sync buffer and create a new one. | 1909 // Delete sync buffer and create a new one. |
| 1913 sync_buffer_.reset(new SyncBuffer(channels, kSyncBufferSize * fs_mult_)); | 1910 sync_buffer_.reset(new SyncBuffer(channels, kSyncBufferSize * fs_mult_)); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1970 | 1967 |
| 1971 void NetEqImpl::CreateDecisionLogic() { | 1968 void NetEqImpl::CreateDecisionLogic() { |
| 1972 decision_logic_.reset(DecisionLogic::Create(fs_hz_, output_size_samples_, | 1969 decision_logic_.reset(DecisionLogic::Create(fs_hz_, output_size_samples_, |
| 1973 playout_mode_, | 1970 playout_mode_, |
| 1974 decoder_database_.get(), | 1971 decoder_database_.get(), |
| 1975 *packet_buffer_.get(), | 1972 *packet_buffer_.get(), |
| 1976 delay_manager_.get(), | 1973 delay_manager_.get(), |
| 1977 buffer_level_filter_.get())); | 1974 buffer_level_filter_.get())); |
| 1978 } | 1975 } |
| 1979 } // namespace webrtc | 1976 } // namespace webrtc |
| OLD | NEW |