From 20a49f33570f7b03f549e46e0e2dddc6f262b62a Mon Sep 17 00:00:00 2001 From: Karl Wiberg Date: Mon, 8 Oct 2018 12:41:33 +0200 Subject: [PATCH] Don't try to use CN if voice codec isn't mono Bug: chromium:878066 Change-Id: Iac6da4780a6da4fcfe2693d5cf826249a99f84c4 Reviewed-on: https://webrtc-review.googlesource.com/c/104601 Reviewed-by: Henrik Lundin Reviewed-by: Fredrik Solenberg Commit-Queue: Karl Wiberg Cr-Commit-Position: refs/heads/master@{#25066} --- media/engine/webrtcvoiceengine.cc | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/media/engine/webrtcvoiceengine.cc b/media/engine/webrtcvoiceengine.cc index 8ae7b991e8..bc2f2d3378 100644 --- a/media/engine/webrtcvoiceengine.cc +++ b/media/engine/webrtcvoiceengine.cc @@ -1623,17 +1623,17 @@ bool WebRtcVoiceMediaChannel::SetSendCodecs( // TODO(solenberg): Break out into a separate function? for (const AudioCodec& cn_codec : codecs) { if (IsCodec(cn_codec, kCnCodecName) && - cn_codec.clockrate == send_codec_spec->format.clockrate_hz) { - switch (cn_codec.clockrate) { - case 8000: - case 16000: - case 32000: - send_codec_spec->cng_payload_type = cn_codec.id; - break; - default: - RTC_LOG(LS_WARNING) - << "CN frequency " << cn_codec.clockrate << " not supported."; - break; + cn_codec.clockrate == send_codec_spec->format.clockrate_hz && + cn_codec.channels == voice_codec_info->num_channels) { + if (cn_codec.channels != 1) { + RTC_LOG(LS_WARNING) + << "CN #channels " << cn_codec.channels << " not supported."; + } else if (cn_codec.clockrate != 8000 && cn_codec.clockrate != 16000 && + cn_codec.clockrate != 32000) { + RTC_LOG(LS_WARNING) + << "CN frequency " << cn_codec.clockrate << " not supported."; + } else { + send_codec_spec->cng_payload_type = cn_codec.id; } break; }