| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2015 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 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 93 AudioSendStream::~AudioSendStream() { | 93 AudioSendStream::~AudioSendStream() { |
| 94 RTC_DCHECK(thread_checker_.CalledOnValidThread()); | 94 RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
| 95 LOG(LS_INFO) << "~AudioSendStream: " << config_.ToString(); | 95 LOG(LS_INFO) << "~AudioSendStream: " << config_.ToString(); |
| 96 channel_proxy_->DeRegisterExternalTransport(); | 96 channel_proxy_->DeRegisterExternalTransport(); |
| 97 channel_proxy_->ResetCongestionControlObjects(); | 97 channel_proxy_->ResetCongestionControlObjects(); |
| 98 channel_proxy_->SetRtcEventLog(nullptr); | 98 channel_proxy_->SetRtcEventLog(nullptr); |
| 99 } | 99 } |
| 100 | 100 |
| 101 void AudioSendStream::Start() { | 101 void AudioSendStream::Start() { |
| 102 RTC_DCHECK(thread_checker_.CalledOnValidThread()); | 102 RTC_DCHECK(thread_checker_.CalledOnValidThread()); |
| 103 if (config_.min_bitrate_kbps != -1 && config_.max_bitrate_kbps != -1) { | 103 if (config_.min_bitrate_bps != -1 && config_.max_bitrate_bps != -1) { |
| 104 RTC_DCHECK_GE(config_.max_bitrate_kbps, config_.min_bitrate_kbps); | 104 RTC_DCHECK_GE(config_.max_bitrate_bps, config_.min_bitrate_bps); |
| 105 rtc::Event thread_sync_event(false /* manual_reset */, false); | 105 rtc::Event thread_sync_event(false /* manual_reset */, false); |
| 106 worker_queue_->PostTask([this, &thread_sync_event] { | 106 worker_queue_->PostTask([this, &thread_sync_event] { |
| 107 bitrate_allocator_->AddObserver(this, config_.min_bitrate_kbps * 1000, | 107 bitrate_allocator_->AddObserver(this, config_.min_bitrate_bps, |
| 108 config_.max_bitrate_kbps * 1000, 0, true); | 108 config_.max_bitrate_bps, 0, true); |
| 109 thread_sync_event.Set(); | 109 thread_sync_event.Set(); |
| 110 }); | 110 }); |
| 111 thread_sync_event.Wait(rtc::Event::kForever); | 111 thread_sync_event.Wait(rtc::Event::kForever); |
| 112 } | 112 } |
| 113 | 113 |
| 114 ScopedVoEInterface<VoEBase> base(voice_engine()); | 114 ScopedVoEInterface<VoEBase> base(voice_engine()); |
| 115 int error = base->StartSend(config_.voe_channel_id); | 115 int error = base->StartSend(config_.voe_channel_id); |
| 116 if (error != 0) { | 116 if (error != 0) { |
| 117 LOG(LS_ERROR) << "AudioSendStream::Start failed with error: " << error; | 117 LOG(LS_ERROR) << "AudioSendStream::Start failed with error: " << error; |
| 118 } | 118 } |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 241 // calls on the worker thread. We should move towards always using a network | 241 // calls on the worker thread. We should move towards always using a network |
| 242 // thread. Then this check can be enabled. | 242 // thread. Then this check can be enabled. |
| 243 // RTC_DCHECK(!thread_checker_.CalledOnValidThread()); | 243 // RTC_DCHECK(!thread_checker_.CalledOnValidThread()); |
| 244 return channel_proxy_->ReceivedRTCPPacket(packet, length); | 244 return channel_proxy_->ReceivedRTCPPacket(packet, length); |
| 245 } | 245 } |
| 246 | 246 |
| 247 uint32_t AudioSendStream::OnBitrateUpdated(uint32_t bitrate_bps, | 247 uint32_t AudioSendStream::OnBitrateUpdated(uint32_t bitrate_bps, |
| 248 uint8_t fraction_loss, | 248 uint8_t fraction_loss, |
| 249 int64_t rtt) { | 249 int64_t rtt) { |
| 250 RTC_DCHECK_GE(bitrate_bps, | 250 RTC_DCHECK_GE(bitrate_bps, |
| 251 static_cast<uint32_t>(config_.min_bitrate_kbps * 1000)); | 251 static_cast<uint32_t>(config_.min_bitrate_bps)); |
| 252 // The bitrate allocator might allocate an higher than max configured bitrate | 252 // The bitrate allocator might allocate an higher than max configured bitrate |
| 253 // if there is room, to allow for, as example, extra FEC. Ignore that for now. | 253 // if there is room, to allow for, as example, extra FEC. Ignore that for now. |
| 254 const uint32_t max_bitrate_bps = config_.max_bitrate_kbps * 1000; | 254 const uint32_t max_bitrate_bps = config_.max_bitrate_bps; |
| 255 if (bitrate_bps > max_bitrate_bps) | 255 if (bitrate_bps > max_bitrate_bps) |
| 256 bitrate_bps = max_bitrate_bps; | 256 bitrate_bps = max_bitrate_bps; |
| 257 | 257 |
| 258 channel_proxy_->SetBitrate(bitrate_bps); | 258 channel_proxy_->SetBitrate(bitrate_bps); |
| 259 | 259 |
| 260 // The amount of audio protection is not exposed by the encoder, hence | 260 // The amount of audio protection is not exposed by the encoder, hence |
| 261 // always returning 0. | 261 // always returning 0. |
| 262 return 0; | 262 return 0; |
| 263 } | 263 } |
| 264 | 264 |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 371 LOG(LS_WARNING) << "SetVADStatus() failed: " << base->LastError(); | 371 LOG(LS_WARNING) << "SetVADStatus() failed: " << base->LastError(); |
| 372 return false; | 372 return false; |
| 373 } | 373 } |
| 374 } | 374 } |
| 375 } | 375 } |
| 376 return true; | 376 return true; |
| 377 } | 377 } |
| 378 | 378 |
| 379 } // namespace internal | 379 } // namespace internal |
| 380 } // namespace webrtc | 380 } // namespace webrtc |
| OLD | NEW |