Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(362)

Side by Side Diff: webrtc/media/engine/webrtcvoiceengine.cc

Issue 2675173003: Adding "adapter" ORTC objects on top of ChannelManager/BaseChannel/etc. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 1954 matching lines...) Expand 10 before | Expand all | Expand 10 after
1965 dtmf_payload_freq_ = codec.clockrate; 1965 dtmf_payload_freq_ = codec.clockrate;
1966 } 1966 }
1967 } 1967 }
1968 } 1968 }
1969 1969
1970 // Scan through the list to figure out the codec to use for sending, along 1970 // Scan through the list to figure out the codec to use for sending, along
1971 // with the proper configuration for VAD, CNG, NACK and Opus-specific 1971 // with the proper configuration for VAD, CNG, NACK and Opus-specific
1972 // parameters. 1972 // parameters.
1973 // TODO(solenberg): Refactor this logic once we create AudioEncoders here. 1973 // TODO(solenberg): Refactor this logic once we create AudioEncoders here.
1974 webrtc::AudioSendStream::Config::SendCodecSpec send_codec_spec; 1974 webrtc::AudioSendStream::Config::SendCodecSpec send_codec_spec;
1975 { 1975 do {
1976 send_codec_spec.nack_enabled = send_codec_spec_.nack_enabled; 1976 send_codec_spec.nack_enabled = send_codec_spec_.nack_enabled;
1977 1977
1978 // Find send codec (the first non-telephone-event/CN codec). 1978 // Find send codec (the first non-telephone-event/CN codec).
1979 const AudioCodec* codec = WebRtcVoiceCodecs::GetPreferredCodec( 1979 const AudioCodec* codec = WebRtcVoiceCodecs::GetPreferredCodec(
1980 codecs, &send_codec_spec.codec_inst); 1980 codecs, &send_codec_spec.codec_inst);
1981 if (!codec) { 1981 if (!codec) {
1982 LOG(LS_WARNING) << "Received empty list of codecs."; 1982 LOG(LS_WARNING) << "Received empty list of codecs.";
1983 return false; 1983 break;
1984 } 1984 }
1985 1985
1986 send_codec_spec.transport_cc_enabled = HasTransportCc(*codec); 1986 send_codec_spec.transport_cc_enabled = HasTransportCc(*codec);
1987 send_codec_spec.nack_enabled = HasNack(*codec); 1987 send_codec_spec.nack_enabled = HasNack(*codec);
1988 bitrate_config_ = GetBitrateConfigForCodec(*codec); 1988 bitrate_config_ = GetBitrateConfigForCodec(*codec);
1989 1989
1990 // For Opus as the send codec, we are to determine inband FEC, maximum 1990 // For Opus as the send codec, we are to determine inband FEC, maximum
1991 // playback rate, and opus internal dtx. 1991 // playback rate, and opus internal dtx.
1992 if (IsCodec(*codec, kOpusCodecName)) { 1992 if (IsCodec(*codec, kOpusCodecName)) {
1993 GetOpusConfig(*codec, &send_codec_spec.codec_inst, 1993 GetOpusConfig(*codec, &send_codec_spec.codec_inst,
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
2043 } 2043 }
2044 2044
2045 // Find the telephone-event PT exactly matching the preferred send codec. 2045 // Find the telephone-event PT exactly matching the preferred send codec.
2046 for (const AudioCodec& dtmf_codec : dtmf_codecs) { 2046 for (const AudioCodec& dtmf_codec : dtmf_codecs) {
2047 if (dtmf_codec.clockrate == codec->clockrate) { 2047 if (dtmf_codec.clockrate == codec->clockrate) {
2048 dtmf_payload_type_ = rtc::Optional<int>(dtmf_codec.id); 2048 dtmf_payload_type_ = rtc::Optional<int>(dtmf_codec.id);
2049 dtmf_payload_freq_ = dtmf_codec.clockrate; 2049 dtmf_payload_freq_ = dtmf_codec.clockrate;
2050 break; 2050 break;
2051 } 2051 }
2052 } 2052 }
2053 } 2053 } while (0);
2054 2054
2055 if (send_codec_spec_ != send_codec_spec) { 2055 if (send_codec_spec_ != send_codec_spec) {
2056 send_codec_spec_ = std::move(send_codec_spec); 2056 send_codec_spec_ = std::move(send_codec_spec);
2057 // Apply new settings to all streams. 2057 // Apply new settings to all streams.
2058 for (const auto& kv : send_streams_) { 2058 for (const auto& kv : send_streams_) {
2059 kv.second->RecreateAudioSendStream(send_codec_spec_); 2059 kv.second->RecreateAudioSendStream(send_codec_spec_);
2060 } 2060 }
2061 } else { 2061 } else {
2062 // If the codec isn't changing, set the start bitrate to -1 which means 2062 // If the codec isn't changing, set the start bitrate to -1 which means
2063 // "unchanged" so that BWE isn't affected. 2063 // "unchanged" so that BWE isn't affected.
(...skipping 645 matching lines...) Expand 10 before | Expand all | Expand 10 after
2709 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread()); 2709 RTC_DCHECK(worker_thread_checker_.CalledOnValidThread());
2710 const auto it = send_streams_.find(ssrc); 2710 const auto it = send_streams_.find(ssrc);
2711 if (it != send_streams_.end()) { 2711 if (it != send_streams_.end()) {
2712 return it->second->channel(); 2712 return it->second->channel();
2713 } 2713 }
2714 return -1; 2714 return -1;
2715 } 2715 }
2716 } // namespace cricket 2716 } // namespace cricket
2717 2717
2718 #endif // HAVE_WEBRTC_VOICE 2718 #endif // HAVE_WEBRTC_VOICE
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698