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

Unified Diff: webrtc/call/call.cc

Issue 1390753002: Implement AudioReceiveStream::GetStats(). (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: merge master Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/call/bitrate_estimator_tests.cc ('k') | webrtc/call/call_perf_tests.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/call/call.cc
diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc
index b1424531d6060a11d4812b20b74950e681b781b1..3969bc6b517e97c2f51bcd35a64af8cc9a40654b 100644
--- a/webrtc/call/call.cc
+++ b/webrtc/call/call.cc
@@ -126,7 +126,8 @@ class Call : public webrtc::Call, public PacketReceiver {
VideoSendStream::RtpStateMap suspended_video_send_ssrcs_;
- RtcEventLog* event_log_;
+ RtcEventLog* event_log_ = nullptr;
+ VoECodec* voe_codec_ = nullptr;
RTC_DISALLOW_COPY_AND_ASSIGN(Call);
};
@@ -147,8 +148,7 @@ Call::Call(const Call::Config& config)
config_(config),
network_enabled_(true),
receive_crit_(RWLockWrapper::CreateRWLock()),
- send_crit_(RWLockWrapper::CreateRWLock()),
- event_log_(nullptr) {
+ send_crit_(RWLockWrapper::CreateRWLock()) {
RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread());
RTC_DCHECK_GE(config.bitrate_config.min_bitrate_bps, 0);
RTC_DCHECK_GE(config.bitrate_config.start_bitrate_bps,
@@ -158,11 +158,11 @@ Call::Call(const Call::Config& config)
config.bitrate_config.start_bitrate_bps);
}
if (config.voice_engine) {
- VoECodec* voe_codec = VoECodec::GetInterface(config.voice_engine);
- if (voe_codec) {
- event_log_ = voe_codec->GetEventLog();
- voe_codec->Release();
- }
+ // Keep a reference to VoECodec, so we're sure the VoiceEngine lives for the
+ // duration of the call.
+ voe_codec_ = VoECodec::GetInterface(config.voice_engine);
+ if (voe_codec_)
+ event_log_ = voe_codec_->GetEventLog();
}
Trace::CreateTrace();
@@ -187,6 +187,9 @@ Call::~Call() {
module_process_thread_->DeRegisterModule(call_stats_.get());
module_process_thread_->Stop();
Trace::ReturnTrace();
+
+ if (voe_codec_)
+ voe_codec_->Release();
}
PacketReceiver* Call::Receiver() {
@@ -237,7 +240,8 @@ webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream(
TRACE_EVENT0("webrtc", "Call::CreateAudioReceiveStream");
RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread());
AudioReceiveStream* receive_stream = new AudioReceiveStream(
- congestion_controller_->GetRemoteBitrateEstimator(false), config);
+ congestion_controller_->GetRemoteBitrateEstimator(false), config,
+ config_.voice_engine);
{
WriteLockScoped write_lock(*receive_crit_);
RTC_DCHECK(audio_receive_ssrcs_.find(config.rtp.remote_ssrc) ==
« no previous file with comments | « webrtc/call/bitrate_estimator_tests.cc ('k') | webrtc/call/call_perf_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698