diff --git a/src/modules/audio_coding/main/source/acm_neteq.cc b/src/modules/audio_coding/main/source/acm_neteq.cc index be25918ae..69942bda1 100644 --- a/src/modules/audio_coding/main/source/acm_neteq.cc +++ b/src/modules/audio_coding/main/source/acm_neteq.cc @@ -669,7 +669,7 @@ ACMNetEQ::RecOut( // Check for errors that can be recovered from: // RECOUT_ERROR_SAMPLEUNDERRUN = 2003 - int errorCode = WebRtcNetEQ_GetErrorCode(_inst[0]); + int errorCode = WebRtcNetEQ_GetErrorCode(_inst[1]); if(errorCode != 2003) { // Cannot recover; return an error diff --git a/src/modules/audio_coding/main/source/audio_coding_module_impl.cc b/src/modules/audio_coding/main/source/audio_coding_module_impl.cc index 5f60ce965..85950c860 100644 --- a/src/modules/audio_coding/main/source/audio_coding_module_impl.cc +++ b/src/modules/audio_coding/main/source/audio_coding_module_impl.cc @@ -1842,6 +1842,13 @@ AudioCodingModuleImpl::IncomingPacket( _codecs[i]->UpdateDecoderSampFreq(i); _netEq.SetReceivedStereo(_stereoReceive[i]); + // If we have a change in expected number of channels, + // flush packet buffers in NetEQ. + if ((_stereoReceive[i] && (_expected_channels == 1)) || + (!_stereoReceive[i] && (_expected_channels == 2))) { + _netEq.FlushBuffers(); + } + // Store number of channels we expect to receive for the // current payload type. if (_stereoReceive[i]) {