| Index: webrtc/modules/audio_processing/aec/aec_core.cc
|
| diff --git a/webrtc/modules/audio_processing/aec/aec_core.cc b/webrtc/modules/audio_processing/aec/aec_core.cc
|
| index 3155bad9728dfbe9d051492ca183c8859b02cfa3..0eec22f4e5ef9e078a6ed8c714b2dad5c279d57e 100644
|
| --- a/webrtc/modules/audio_processing/aec/aec_core.cc
|
| +++ b/webrtc/modules/audio_processing/aec/aec_core.cc
|
| @@ -206,16 +206,21 @@ void BlockBuffer::ExtractExtendedBlock(float extended_block[PART_LEN2]) {
|
|
|
| // Extract the previous block.
|
| WebRtc_MoveReadPtr(buffer_, -1);
|
| - WebRtc_ReadBuffer(buffer_, reinterpret_cast<void**>(&block_ptr),
|
| - &extended_block[0], 1);
|
| - if (block_ptr != &extended_block[0]) {
|
| + size_t read_elements = WebRtc_ReadBuffer(
|
| + buffer_, reinterpret_cast<void**>(&block_ptr), &extended_block[0], 1);
|
| + if (read_elements == 0u) {
|
| + std::fill_n(&extended_block[0], PART_LEN, 0.0f);
|
| + } else if (block_ptr != &extended_block[0]) {
|
| memcpy(&extended_block[0], block_ptr, PART_LEN * sizeof(float));
|
| }
|
|
|
| // Extract the current block.
|
| - WebRtc_ReadBuffer(buffer_, reinterpret_cast<void**>(&block_ptr),
|
| - &extended_block[PART_LEN], 1);
|
| - if (block_ptr != &extended_block[PART_LEN]) {
|
| + read_elements =
|
| + WebRtc_ReadBuffer(buffer_, reinterpret_cast<void**>(&block_ptr),
|
| + &extended_block[PART_LEN], 1);
|
| + if (read_elements == 0u) {
|
| + std::fill_n(&extended_block[PART_LEN], PART_LEN, 0.0f);
|
| + } else if (block_ptr != &extended_block[PART_LEN]) {
|
| memcpy(&extended_block[PART_LEN], block_ptr, PART_LEN * sizeof(float));
|
| }
|
| }
|
|
|