Index: webrtc/call/call.cc |
diff --git a/webrtc/call/call.cc b/webrtc/call/call.cc |
index 91c27c80ad99f16805b80ad45b2916c60812748d..9616d4e9131536c0b671e77f7656aa08539870e1 100644 |
--- a/webrtc/call/call.cc |
+++ b/webrtc/call/call.cc |
@@ -95,6 +95,13 @@ class Call : public webrtc::Call, public PacketReceiver, |
void OnNetworkChanged(uint32_t bitrate_bps, uint8_t fraction_loss, |
int64_t rtt_ms) override; |
+ bool StartEventLog(rtc::PlatformFile log_file, |
+ int64_t max_size_bytes) override { |
+ return event_log_->StartLogging(log_file, max_size_bytes); |
+ } |
+ |
+ void StopEventLog() override { event_log_->StopLogging(); } |
+ |
private: |
DeliveryStatus DeliverRtcp(MediaType media_type, const uint8_t* packet, |
size_t length); |
@@ -151,7 +158,7 @@ class Call : public webrtc::Call, public PacketReceiver, |
VideoSendStream::RtpStateMap suspended_video_send_ssrcs_; |
- RtcEventLog* event_log_ = nullptr; |
+ std::unique_ptr<webrtc::RtcEventLog> event_log_; |
// The following members are only accessed (exclusively) from one thread and |
// from the destructor, and therefore doesn't need any explicit |
@@ -196,6 +203,7 @@ Call::Call(const Call::Config& config) |
video_network_state_(kNetworkUp), |
receive_crit_(RWLockWrapper::CreateRWLock()), |
send_crit_(RWLockWrapper::CreateRWLock()), |
+ event_log_(RtcEventLog::Create()), |
received_video_bytes_(0), |
received_audio_bytes_(0), |
received_rtcp_bytes_(0), |
@@ -206,7 +214,8 @@ Call::Call(const Call::Config& config) |
pacer_bitrate_sum_kbits_(0), |
num_bitrate_updates_(0), |
remb_(clock_), |
- congestion_controller_(new CongestionController(clock_, this, &remb_)) { |
+ congestion_controller_( |
+ new CongestionController(clock_, this, &remb_, event_log_.get())) { |
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, |
@@ -215,10 +224,6 @@ Call::Call(const Call::Config& config) |
RTC_DCHECK_GE(config.bitrate_config.max_bitrate_bps, |
config.bitrate_config.start_bitrate_bps); |
} |
- if (config.audio_state.get()) { |
- ScopedVoEInterface<VoECodec> voe_codec(voice_engine()); |
- event_log_ = voe_codec->GetEventLog(); |
- } |
Trace::CreateTrace(); |
call_stats_->RegisterStatsObserver(congestion_controller_.get()); |
@@ -227,7 +232,6 @@ Call::Call(const Call::Config& config) |
config_.bitrate_config.min_bitrate_bps, |
config_.bitrate_config.start_bitrate_bps, |
config_.bitrate_config.max_bitrate_bps); |
- congestion_controller_->GetBitrateController()->SetEventLog(event_log_); |
module_process_thread_->Start(); |
module_process_thread_->RegisterModule(call_stats_.get()); |
@@ -355,8 +359,9 @@ webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream( |
const webrtc::AudioReceiveStream::Config& config) { |
TRACE_EVENT0("webrtc", "Call::CreateAudioReceiveStream"); |
RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread()); |
- AudioReceiveStream* receive_stream = new AudioReceiveStream( |
- congestion_controller_.get(), config, config_.audio_state); |
+ AudioReceiveStream* receive_stream = |
+ new AudioReceiveStream(congestion_controller_.get(), config, |
+ config_.audio_state, event_log_.get()); |
{ |
WriteLockScoped write_lock(*receive_crit_); |
RTC_DCHECK(audio_receive_ssrcs_.find(config.rtp.remote_ssrc) == |
@@ -415,8 +420,7 @@ webrtc::VideoSendStream* Call::CreateVideoSendStream( |
} |
send_stream->SignalNetworkState(video_network_state_); |
UpdateAggregateNetworkState(); |
- if (event_log_) |
- event_log_->LogVideoSendStreamConfig(config); |
+ event_log_->LogVideoSendStreamConfig(config); |
return send_stream; |
} |
@@ -473,13 +477,11 @@ webrtc::VideoReceiveStream* Call::CreateVideoReceiveStream( |
if (it != config.rtp.rtx.end()) |
video_receive_ssrcs_[it->second.ssrc] = receive_stream; |
video_receive_streams_.insert(receive_stream); |
- |
ConfigureSync(config.sync_group); |
} |
receive_stream->SignalNetworkState(video_network_state_); |
UpdateAggregateNetworkState(); |
- if (event_log_) |
- event_log_->LogVideoReceiveStreamConfig(config); |
+ event_log_->LogVideoReceiveStreamConfig(config); |
return receive_stream; |
} |
@@ -726,9 +728,7 @@ PacketReceiver::DeliveryStatus Call::DeliverRtcp(MediaType media_type, |
for (VideoReceiveStream* stream : video_receive_streams_) { |
if (stream->DeliverRtcp(packet, length)) { |
rtcp_delivered = true; |
- if (event_log_) |
- event_log_->LogRtcpPacket(kIncomingPacket, media_type, packet, |
- length); |
+ event_log_->LogRtcpPacket(kIncomingPacket, media_type, packet, length); |
} |
} |
} |
@@ -737,9 +737,7 @@ PacketReceiver::DeliveryStatus Call::DeliverRtcp(MediaType media_type, |
for (VideoSendStream* stream : video_send_streams_) { |
if (stream->DeliverRtcp(packet, length)) { |
rtcp_delivered = true; |
- if (event_log_) |
- event_log_->LogRtcpPacket(kIncomingPacket, media_type, packet, |
- length); |
+ event_log_->LogRtcpPacket(kIncomingPacket, media_type, packet, length); |
} |
} |
} |
@@ -768,7 +766,7 @@ PacketReceiver::DeliveryStatus Call::DeliverRtp(MediaType media_type, |
auto status = it->second->DeliverRtp(packet, length, packet_time) |
? DELIVERY_OK |
: DELIVERY_PACKET_ERROR; |
- if (status == DELIVERY_OK && event_log_) |
+ if (status == DELIVERY_OK) |
event_log_->LogRtpHeader(kIncomingPacket, media_type, packet, length); |
return status; |
} |
@@ -780,7 +778,7 @@ PacketReceiver::DeliveryStatus Call::DeliverRtp(MediaType media_type, |
auto status = it->second->DeliverRtp(packet, length, packet_time) |
? DELIVERY_OK |
: DELIVERY_PACKET_ERROR; |
- if (status == DELIVERY_OK && event_log_) |
+ if (status == DELIVERY_OK) |
event_log_->LogRtpHeader(kIncomingPacket, media_type, packet, length); |
return status; |
} |