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 <henrik.lundin@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25066}
diff --git a/media/engine/webrtcvoiceengine.cc b/media/engine/webrtcvoiceengine.cc
index 8ae7b99..bc2f2d3 100644
--- a/media/engine/webrtcvoiceengine.cc
+++ b/media/engine/webrtcvoiceengine.cc
@@ -1623,17 +1623,17 @@
// 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;
}