| 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;
|
| }
|
|
|