In streaming mode it is preferable to fade to silence when sender stops sending, or long period of packet loss.
test=try bots. Review URL: https://webrtc-codereview.appspot.com/1272004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@3771 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@ -323,7 +323,31 @@ WebRtc_Word32 ACMNetEQ::CurrentSampFreqHz() const {
|
|||||||
|
|
||||||
WebRtc_Word32 ACMNetEQ::SetPlayoutMode(const AudioPlayoutMode mode) {
|
WebRtc_Word32 ACMNetEQ::SetPlayoutMode(const AudioPlayoutMode mode) {
|
||||||
CriticalSectionScoped lock(neteq_crit_sect_);
|
CriticalSectionScoped lock(neteq_crit_sect_);
|
||||||
if (playout_mode_ != mode) {
|
if (playout_mode_ == mode)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
enum WebRtcNetEQPlayoutMode playout_mode = kPlayoutOff;
|
||||||
|
enum WebRtcNetEQBGNMode background_noise_mode = kBGNOn;
|
||||||
|
switch (mode) {
|
||||||
|
case voice:
|
||||||
|
playout_mode = kPlayoutOn;
|
||||||
|
background_noise_mode = kBGNOn;
|
||||||
|
break;
|
||||||
|
case fax:
|
||||||
|
playout_mode = kPlayoutFax;
|
||||||
|
WebRtcNetEQ_GetBGNMode(inst_[0], &background_noise_mode); // No change.
|
||||||
|
break;
|
||||||
|
case streaming:
|
||||||
|
playout_mode = kPlayoutStreaming;
|
||||||
|
background_noise_mode = kBGNOff;
|
||||||
|
break;
|
||||||
|
case off:
|
||||||
|
playout_mode = kPlayoutOff;
|
||||||
|
background_noise_mode = kBGNOff;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
int err = 0;
|
||||||
for (WebRtc_Word16 idx = 0; idx < num_slaves_ + 1; idx++) {
|
for (WebRtc_Word16 idx = 0; idx < num_slaves_ + 1; idx++) {
|
||||||
if (!is_initialized_[idx]) {
|
if (!is_initialized_[idx]) {
|
||||||
WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceAudioCoding, id_,
|
WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceAudioCoding, id_,
|
||||||
@ -331,30 +355,19 @@ WebRtc_Word32 ACMNetEQ::SetPlayoutMode(const AudioPlayoutMode mode) {
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum WebRtcNetEQPlayoutMode playout_mode = kPlayoutOff;
|
|
||||||
switch (mode) {
|
|
||||||
case voice:
|
|
||||||
playout_mode = kPlayoutOn;
|
|
||||||
break;
|
|
||||||
case fax:
|
|
||||||
playout_mode = kPlayoutFax;
|
|
||||||
break;
|
|
||||||
case streaming:
|
|
||||||
playout_mode = kPlayoutStreaming;
|
|
||||||
break;
|
|
||||||
case off:
|
|
||||||
playout_mode = kPlayoutOff;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (WebRtcNetEQ_SetPlayoutMode(inst_[idx], playout_mode) < 0) {
|
if (WebRtcNetEQ_SetPlayoutMode(inst_[idx], playout_mode) < 0) {
|
||||||
LogError("SetPlayoutMode", idx);
|
LogError("SetPlayoutMode", idx);
|
||||||
return -1;
|
err = -1;
|
||||||
}
|
|
||||||
}
|
|
||||||
playout_mode_ = mode;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
if (WebRtcNetEQ_SetBGNMode(inst_[idx], kBGNOff) < 0) {
|
||||||
|
LogError("SetPlayoutMode::SetBGNMode", idx);
|
||||||
|
err = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (err == 0)
|
||||||
|
playout_mode_ = mode;
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
AudioPlayoutMode ACMNetEQ::playout_mode() const {
|
AudioPlayoutMode ACMNetEQ::playout_mode() const {
|
||||||
|
Reference in New Issue
Block a user