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

Side by Side Diff: webrtc/call/call.cc

Issue 2111813002: Revert of Move RtcEventLog object from inside VoiceEngine to Call. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 5 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
« no previous file with comments | « webrtc/call.h ('k') | webrtc/call/rtc_event_log.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 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 17 matching lines...) Expand all
28 #include "webrtc/call.h" 28 #include "webrtc/call.h"
29 #include "webrtc/call/bitrate_allocator.h" 29 #include "webrtc/call/bitrate_allocator.h"
30 #include "webrtc/call/rtc_event_log.h" 30 #include "webrtc/call/rtc_event_log.h"
31 #include "webrtc/config.h" 31 #include "webrtc/config.h"
32 #include "webrtc/modules/bitrate_controller/include/bitrate_controller.h" 32 #include "webrtc/modules/bitrate_controller/include/bitrate_controller.h"
33 #include "webrtc/modules/congestion_controller/include/congestion_controller.h" 33 #include "webrtc/modules/congestion_controller/include/congestion_controller.h"
34 #include "webrtc/modules/pacing/paced_sender.h" 34 #include "webrtc/modules/pacing/paced_sender.h"
35 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h" 35 #include "webrtc/modules/rtp_rtcp/include/rtp_header_parser.h"
36 #include "webrtc/modules/rtp_rtcp/source/byte_io.h" 36 #include "webrtc/modules/rtp_rtcp/source/byte_io.h"
37 #include "webrtc/modules/utility/include/process_thread.h" 37 #include "webrtc/modules/utility/include/process_thread.h"
38 #include "webrtc/system_wrappers/include/clock.h"
39 #include "webrtc/system_wrappers/include/cpu_info.h" 38 #include "webrtc/system_wrappers/include/cpu_info.h"
40 #include "webrtc/system_wrappers/include/critical_section_wrapper.h" 39 #include "webrtc/system_wrappers/include/critical_section_wrapper.h"
41 #include "webrtc/system_wrappers/include/metrics.h" 40 #include "webrtc/system_wrappers/include/metrics.h"
42 #include "webrtc/system_wrappers/include/rw_lock_wrapper.h" 41 #include "webrtc/system_wrappers/include/rw_lock_wrapper.h"
43 #include "webrtc/system_wrappers/include/trace.h" 42 #include "webrtc/system_wrappers/include/trace.h"
44 #include "webrtc/video/call_stats.h" 43 #include "webrtc/video/call_stats.h"
45 #include "webrtc/video/send_delay_stats.h" 44 #include "webrtc/video/send_delay_stats.h"
46 #include "webrtc/video/video_receive_stream.h" 45 #include "webrtc/video/video_receive_stream.h"
47 #include "webrtc/video/video_send_stream.h" 46 #include "webrtc/video/video_send_stream.h"
48 #include "webrtc/video/vie_remb.h" 47 #include "webrtc/video/vie_remb.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 void OnSentPacket(const rtc::SentPacket& sent_packet) override; 100 void OnSentPacket(const rtc::SentPacket& sent_packet) override;
102 101
103 // Implements BitrateObserver. 102 // Implements BitrateObserver.
104 void OnNetworkChanged(uint32_t bitrate_bps, uint8_t fraction_loss, 103 void OnNetworkChanged(uint32_t bitrate_bps, uint8_t fraction_loss,
105 int64_t rtt_ms) override; 104 int64_t rtt_ms) override;
106 105
107 // Implements BitrateAllocator::LimitObserver. 106 // Implements BitrateAllocator::LimitObserver.
108 void OnAllocationLimitsChanged(uint32_t min_send_bitrate_bps, 107 void OnAllocationLimitsChanged(uint32_t min_send_bitrate_bps,
109 uint32_t max_padding_bitrate_bps) override; 108 uint32_t max_padding_bitrate_bps) override;
110 109
111 bool StartEventLog(rtc::PlatformFile log_file,
112 int64_t max_size_bytes) override {
113 return event_log_->StartLogging(log_file, max_size_bytes);
114 }
115
116 void StopEventLog() override { event_log_->StopLogging(); }
117
118 private: 110 private:
119 DeliveryStatus DeliverRtcp(MediaType media_type, const uint8_t* packet, 111 DeliveryStatus DeliverRtcp(MediaType media_type, const uint8_t* packet,
120 size_t length); 112 size_t length);
121 DeliveryStatus DeliverRtp(MediaType media_type, 113 DeliveryStatus DeliverRtp(MediaType media_type,
122 const uint8_t* packet, 114 const uint8_t* packet,
123 size_t length, 115 size_t length,
124 const PacketTime& packet_time); 116 const PacketTime& packet_time);
125 void ConfigureSync(const std::string& sync_group) 117 void ConfigureSync(const std::string& sync_group)
126 EXCLUSIVE_LOCKS_REQUIRED(receive_crit_); 118 EXCLUSIVE_LOCKS_REQUIRED(receive_crit_);
127 119
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 GUARDED_BY(receive_crit_); 155 GUARDED_BY(receive_crit_);
164 156
165 std::unique_ptr<RWLockWrapper> send_crit_; 157 std::unique_ptr<RWLockWrapper> send_crit_;
166 // Audio and Video send streams are owned by the client that creates them. 158 // Audio and Video send streams are owned by the client that creates them.
167 std::map<uint32_t, AudioSendStream*> audio_send_ssrcs_ GUARDED_BY(send_crit_); 159 std::map<uint32_t, AudioSendStream*> audio_send_ssrcs_ GUARDED_BY(send_crit_);
168 std::map<uint32_t, VideoSendStream*> video_send_ssrcs_ GUARDED_BY(send_crit_); 160 std::map<uint32_t, VideoSendStream*> video_send_ssrcs_ GUARDED_BY(send_crit_);
169 std::set<VideoSendStream*> video_send_streams_ GUARDED_BY(send_crit_); 161 std::set<VideoSendStream*> video_send_streams_ GUARDED_BY(send_crit_);
170 162
171 VideoSendStream::RtpStateMap suspended_video_send_ssrcs_; 163 VideoSendStream::RtpStateMap suspended_video_send_ssrcs_;
172 164
173 std::unique_ptr<webrtc::RtcEventLog> event_log_; 165 RtcEventLog* event_log_ = nullptr;
174 166
175 // The following members are only accessed (exclusively) from one thread and 167 // The following members are only accessed (exclusively) from one thread and
176 // from the destructor, and therefore doesn't need any explicit 168 // from the destructor, and therefore doesn't need any explicit
177 // synchronization. 169 // synchronization.
178 int64_t received_video_bytes_; 170 int64_t received_video_bytes_;
179 int64_t received_audio_bytes_; 171 int64_t received_audio_bytes_;
180 int64_t received_rtcp_bytes_; 172 int64_t received_rtcp_bytes_;
181 int64_t first_rtp_packet_received_ms_; 173 int64_t first_rtp_packet_received_ms_;
182 int64_t last_rtp_packet_received_ms_; 174 int64_t last_rtp_packet_received_ms_;
183 int64_t first_packet_sent_ms_; 175 int64_t first_packet_sent_ms_;
(...skipping 27 matching lines...) Expand all
211 num_cpu_cores_(CpuInfo::DetectNumberOfCores()), 203 num_cpu_cores_(CpuInfo::DetectNumberOfCores()),
212 module_process_thread_(ProcessThread::Create("ModuleProcessThread")), 204 module_process_thread_(ProcessThread::Create("ModuleProcessThread")),
213 pacer_thread_(ProcessThread::Create("PacerThread")), 205 pacer_thread_(ProcessThread::Create("PacerThread")),
214 call_stats_(new CallStats(clock_)), 206 call_stats_(new CallStats(clock_)),
215 bitrate_allocator_(new BitrateAllocator(this)), 207 bitrate_allocator_(new BitrateAllocator(this)),
216 config_(config), 208 config_(config),
217 audio_network_state_(kNetworkUp), 209 audio_network_state_(kNetworkUp),
218 video_network_state_(kNetworkUp), 210 video_network_state_(kNetworkUp),
219 receive_crit_(RWLockWrapper::CreateRWLock()), 211 receive_crit_(RWLockWrapper::CreateRWLock()),
220 send_crit_(RWLockWrapper::CreateRWLock()), 212 send_crit_(RWLockWrapper::CreateRWLock()),
221 event_log_(RtcEventLog::Create(webrtc::Clock::GetRealTimeClock())),
222 received_video_bytes_(0), 213 received_video_bytes_(0),
223 received_audio_bytes_(0), 214 received_audio_bytes_(0),
224 received_rtcp_bytes_(0), 215 received_rtcp_bytes_(0),
225 first_rtp_packet_received_ms_(-1), 216 first_rtp_packet_received_ms_(-1),
226 last_rtp_packet_received_ms_(-1), 217 last_rtp_packet_received_ms_(-1),
227 first_packet_sent_ms_(-1), 218 first_packet_sent_ms_(-1),
228 estimated_send_bitrate_sum_kbits_(0), 219 estimated_send_bitrate_sum_kbits_(0),
229 pacer_bitrate_sum_kbits_(0), 220 pacer_bitrate_sum_kbits_(0),
230 min_allocated_send_bitrate_bps_(0), 221 min_allocated_send_bitrate_bps_(0),
231 num_bitrate_updates_(0), 222 num_bitrate_updates_(0),
232 remb_(clock_), 223 remb_(clock_),
233 congestion_controller_( 224 congestion_controller_(new CongestionController(clock_, this, &remb_)),
234 new CongestionController(clock_, this, &remb_, event_log_.get())),
235 video_send_delay_stats_(new SendDelayStats(clock_)) { 225 video_send_delay_stats_(new SendDelayStats(clock_)) {
236 RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread()); 226 RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread());
237 RTC_DCHECK_GE(config.bitrate_config.min_bitrate_bps, 0); 227 RTC_DCHECK_GE(config.bitrate_config.min_bitrate_bps, 0);
238 RTC_DCHECK_GE(config.bitrate_config.start_bitrate_bps, 228 RTC_DCHECK_GE(config.bitrate_config.start_bitrate_bps,
239 config.bitrate_config.min_bitrate_bps); 229 config.bitrate_config.min_bitrate_bps);
240 if (config.bitrate_config.max_bitrate_bps != -1) { 230 if (config.bitrate_config.max_bitrate_bps != -1) {
241 RTC_DCHECK_GE(config.bitrate_config.max_bitrate_bps, 231 RTC_DCHECK_GE(config.bitrate_config.max_bitrate_bps,
242 config.bitrate_config.start_bitrate_bps); 232 config.bitrate_config.start_bitrate_bps);
243 } 233 }
234 if (config.audio_state.get()) {
235 ScopedVoEInterface<VoECodec> voe_codec(voice_engine());
236 event_log_ = voe_codec->GetEventLog();
237 }
244 238
245 Trace::CreateTrace(); 239 Trace::CreateTrace();
246 call_stats_->RegisterStatsObserver(congestion_controller_.get()); 240 call_stats_->RegisterStatsObserver(congestion_controller_.get());
247 241
248 congestion_controller_->SetBweBitrates( 242 congestion_controller_->SetBweBitrates(
249 config_.bitrate_config.min_bitrate_bps, 243 config_.bitrate_config.min_bitrate_bps,
250 config_.bitrate_config.start_bitrate_bps, 244 config_.bitrate_config.start_bitrate_bps,
251 config_.bitrate_config.max_bitrate_bps); 245 config_.bitrate_config.max_bitrate_bps);
246 congestion_controller_->GetBitrateController()->SetEventLog(event_log_);
252 247
253 module_process_thread_->Start(); 248 module_process_thread_->Start();
254 module_process_thread_->RegisterModule(call_stats_.get()); 249 module_process_thread_->RegisterModule(call_stats_.get());
255 module_process_thread_->RegisterModule(congestion_controller_.get()); 250 module_process_thread_->RegisterModule(congestion_controller_.get());
256 pacer_thread_->RegisterModule(congestion_controller_->pacer()); 251 pacer_thread_->RegisterModule(congestion_controller_->pacer());
257 pacer_thread_->RegisterModule( 252 pacer_thread_->RegisterModule(
258 congestion_controller_->GetRemoteBitrateEstimator(true)); 253 congestion_controller_->GetRemoteBitrateEstimator(true));
259 pacer_thread_->Start(); 254 pacer_thread_->Start();
260 } 255 }
261 256
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 RTC_DCHECK(num_deleted == 1); 364 RTC_DCHECK(num_deleted == 1);
370 } 365 }
371 UpdateAggregateNetworkState(); 366 UpdateAggregateNetworkState();
372 delete audio_send_stream; 367 delete audio_send_stream;
373 } 368 }
374 369
375 webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream( 370 webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream(
376 const webrtc::AudioReceiveStream::Config& config) { 371 const webrtc::AudioReceiveStream::Config& config) {
377 TRACE_EVENT0("webrtc", "Call::CreateAudioReceiveStream"); 372 TRACE_EVENT0("webrtc", "Call::CreateAudioReceiveStream");
378 RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread()); 373 RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread());
379 AudioReceiveStream* receive_stream = 374 AudioReceiveStream* receive_stream = new AudioReceiveStream(
380 new AudioReceiveStream(congestion_controller_.get(), config, 375 congestion_controller_.get(), config, config_.audio_state);
381 config_.audio_state, event_log_.get());
382 { 376 {
383 WriteLockScoped write_lock(*receive_crit_); 377 WriteLockScoped write_lock(*receive_crit_);
384 RTC_DCHECK(audio_receive_ssrcs_.find(config.rtp.remote_ssrc) == 378 RTC_DCHECK(audio_receive_ssrcs_.find(config.rtp.remote_ssrc) ==
385 audio_receive_ssrcs_.end()); 379 audio_receive_ssrcs_.end());
386 audio_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream; 380 audio_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream;
387 ConfigureSync(config.sync_group); 381 ConfigureSync(config.sync_group);
388 } 382 }
389 receive_stream->SignalNetworkState(audio_network_state_); 383 receive_stream->SignalNetworkState(audio_network_state_);
390 UpdateAggregateNetworkState(); 384 UpdateAggregateNetworkState();
391 return receive_stream; 385 return receive_stream;
(...skipping 28 matching lines...) Expand all
420 const VideoEncoderConfig& encoder_config) { 414 const VideoEncoderConfig& encoder_config) {
421 TRACE_EVENT0("webrtc", "Call::CreateVideoSendStream"); 415 TRACE_EVENT0("webrtc", "Call::CreateVideoSendStream");
422 RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread()); 416 RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread());
423 417
424 video_send_delay_stats_->AddSsrcs(config); 418 video_send_delay_stats_->AddSsrcs(config);
425 // TODO(mflodman): Base the start bitrate on a current bandwidth estimate, if 419 // TODO(mflodman): Base the start bitrate on a current bandwidth estimate, if
426 // the call has already started. 420 // the call has already started.
427 VideoSendStream* send_stream = new VideoSendStream( 421 VideoSendStream* send_stream = new VideoSendStream(
428 num_cpu_cores_, module_process_thread_.get(), call_stats_.get(), 422 num_cpu_cores_, module_process_thread_.get(), call_stats_.get(),
429 congestion_controller_.get(), bitrate_allocator_.get(), 423 congestion_controller_.get(), bitrate_allocator_.get(),
430 video_send_delay_stats_.get(), &remb_, event_log_.get(), config, 424 video_send_delay_stats_.get(), &remb_, event_log_, config, encoder_config,
431 encoder_config, suspended_video_send_ssrcs_); 425 suspended_video_send_ssrcs_);
432 { 426 {
433 WriteLockScoped write_lock(*send_crit_); 427 WriteLockScoped write_lock(*send_crit_);
434 for (uint32_t ssrc : config.rtp.ssrcs) { 428 for (uint32_t ssrc : config.rtp.ssrcs) {
435 RTC_DCHECK(video_send_ssrcs_.find(ssrc) == video_send_ssrcs_.end()); 429 RTC_DCHECK(video_send_ssrcs_.find(ssrc) == video_send_ssrcs_.end());
436 video_send_ssrcs_[ssrc] = send_stream; 430 video_send_ssrcs_[ssrc] = send_stream;
437 } 431 }
438 video_send_streams_.insert(send_stream); 432 video_send_streams_.insert(send_stream);
439 } 433 }
440 send_stream->SignalNetworkState(video_network_state_); 434 send_stream->SignalNetworkState(video_network_state_);
441 UpdateAggregateNetworkState(); 435 UpdateAggregateNetworkState();
442 event_log_->LogVideoSendStreamConfig(config); 436 if (event_log_)
437 event_log_->LogVideoSendStreamConfig(config);
443 return send_stream; 438 return send_stream;
444 } 439 }
445 440
446 void Call::DestroyVideoSendStream(webrtc::VideoSendStream* send_stream) { 441 void Call::DestroyVideoSendStream(webrtc::VideoSendStream* send_stream) {
447 TRACE_EVENT0("webrtc", "Call::DestroyVideoSendStream"); 442 TRACE_EVENT0("webrtc", "Call::DestroyVideoSendStream");
448 RTC_DCHECK(send_stream != nullptr); 443 RTC_DCHECK(send_stream != nullptr);
449 RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread()); 444 RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread());
450 445
451 send_stream->Stop(); 446 send_stream->Stop();
452 447
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 WriteLockScoped write_lock(*receive_crit_); 486 WriteLockScoped write_lock(*receive_crit_);
492 RTC_DCHECK(video_receive_ssrcs_.find(config.rtp.remote_ssrc) == 487 RTC_DCHECK(video_receive_ssrcs_.find(config.rtp.remote_ssrc) ==
493 video_receive_ssrcs_.end()); 488 video_receive_ssrcs_.end());
494 video_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream; 489 video_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream;
495 // TODO(pbos): Configure different RTX payloads per receive payload. 490 // TODO(pbos): Configure different RTX payloads per receive payload.
496 VideoReceiveStream::Config::Rtp::RtxMap::const_iterator it = 491 VideoReceiveStream::Config::Rtp::RtxMap::const_iterator it =
497 config.rtp.rtx.begin(); 492 config.rtp.rtx.begin();
498 if (it != config.rtp.rtx.end()) 493 if (it != config.rtp.rtx.end())
499 video_receive_ssrcs_[it->second.ssrc] = receive_stream; 494 video_receive_ssrcs_[it->second.ssrc] = receive_stream;
500 video_receive_streams_.insert(receive_stream); 495 video_receive_streams_.insert(receive_stream);
496
501 ConfigureSync(config.sync_group); 497 ConfigureSync(config.sync_group);
502 } 498 }
503 receive_stream->SignalNetworkState(video_network_state_); 499 receive_stream->SignalNetworkState(video_network_state_);
504 UpdateAggregateNetworkState(); 500 UpdateAggregateNetworkState();
505 event_log_->LogVideoReceiveStreamConfig(config); 501 if (event_log_)
502 event_log_->LogVideoReceiveStreamConfig(config);
506 return receive_stream; 503 return receive_stream;
507 } 504 }
508 505
509 void Call::DestroyVideoReceiveStream( 506 void Call::DestroyVideoReceiveStream(
510 webrtc::VideoReceiveStream* receive_stream) { 507 webrtc::VideoReceiveStream* receive_stream) {
511 TRACE_EVENT0("webrtc", "Call::DestroyVideoReceiveStream"); 508 TRACE_EVENT0("webrtc", "Call::DestroyVideoReceiveStream");
512 RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread()); 509 RTC_DCHECK(configuration_thread_checker_.CalledOnValidThread());
513 RTC_DCHECK(receive_stream != nullptr); 510 RTC_DCHECK(receive_stream != nullptr);
514 VideoReceiveStream* receive_stream_impl = nullptr; 511 VideoReceiveStream* receive_stream_impl = nullptr;
515 { 512 {
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
823 820
824 uint32_t ssrc = ByteReader<uint32_t>::ReadBigEndian(&packet[8]); 821 uint32_t ssrc = ByteReader<uint32_t>::ReadBigEndian(&packet[8]);
825 ReadLockScoped read_lock(*receive_crit_); 822 ReadLockScoped read_lock(*receive_crit_);
826 if (media_type == MediaType::ANY || media_type == MediaType::AUDIO) { 823 if (media_type == MediaType::ANY || media_type == MediaType::AUDIO) {
827 auto it = audio_receive_ssrcs_.find(ssrc); 824 auto it = audio_receive_ssrcs_.find(ssrc);
828 if (it != audio_receive_ssrcs_.end()) { 825 if (it != audio_receive_ssrcs_.end()) {
829 received_audio_bytes_ += length; 826 received_audio_bytes_ += length;
830 auto status = it->second->DeliverRtp(packet, length, packet_time) 827 auto status = it->second->DeliverRtp(packet, length, packet_time)
831 ? DELIVERY_OK 828 ? DELIVERY_OK
832 : DELIVERY_PACKET_ERROR; 829 : DELIVERY_PACKET_ERROR;
833 if (status == DELIVERY_OK) 830 if (status == DELIVERY_OK && event_log_)
834 event_log_->LogRtpHeader(kIncomingPacket, media_type, packet, length); 831 event_log_->LogRtpHeader(kIncomingPacket, media_type, packet, length);
835 return status; 832 return status;
836 } 833 }
837 } 834 }
838 if (media_type == MediaType::ANY || media_type == MediaType::VIDEO) { 835 if (media_type == MediaType::ANY || media_type == MediaType::VIDEO) {
839 auto it = video_receive_ssrcs_.find(ssrc); 836 auto it = video_receive_ssrcs_.find(ssrc);
840 if (it != video_receive_ssrcs_.end()) { 837 if (it != video_receive_ssrcs_.end()) {
841 received_video_bytes_ += length; 838 received_video_bytes_ += length;
842 auto status = it->second->DeliverRtp(packet, length, packet_time) 839 auto status = it->second->DeliverRtp(packet, length, packet_time)
843 ? DELIVERY_OK 840 ? DELIVERY_OK
844 : DELIVERY_PACKET_ERROR; 841 : DELIVERY_PACKET_ERROR;
845 if (status == DELIVERY_OK) 842 if (status == DELIVERY_OK && event_log_)
846 event_log_->LogRtpHeader(kIncomingPacket, media_type, packet, length); 843 event_log_->LogRtpHeader(kIncomingPacket, media_type, packet, length);
847 return status; 844 return status;
848 } 845 }
849 } 846 }
850 return DELIVERY_UNKNOWN_SSRC; 847 return DELIVERY_UNKNOWN_SSRC;
851 } 848 }
852 849
853 PacketReceiver::DeliveryStatus Call::DeliverPacket( 850 PacketReceiver::DeliveryStatus Call::DeliverPacket(
854 MediaType media_type, 851 MediaType media_type,
855 const uint8_t* packet, 852 const uint8_t* packet,
856 size_t length, 853 size_t length,
857 const PacketTime& packet_time) { 854 const PacketTime& packet_time) {
858 // TODO(solenberg): Tests call this function on a network thread, libjingle 855 // TODO(solenberg): Tests call this function on a network thread, libjingle
859 // calls on the worker thread. We should move towards always using a network 856 // calls on the worker thread. We should move towards always using a network
860 // thread. Then this check can be enabled. 857 // thread. Then this check can be enabled.
861 // RTC_DCHECK(!configuration_thread_checker_.CalledOnValidThread()); 858 // RTC_DCHECK(!configuration_thread_checker_.CalledOnValidThread());
862 if (RtpHeaderParser::IsRtcp(packet, length)) 859 if (RtpHeaderParser::IsRtcp(packet, length))
863 return DeliverRtcp(media_type, packet, length); 860 return DeliverRtcp(media_type, packet, length);
864 861
865 return DeliverRtp(media_type, packet, length, packet_time); 862 return DeliverRtp(media_type, packet, length, packet_time);
866 } 863 }
867 864
868 } // namespace internal 865 } // namespace internal
869 } // namespace webrtc 866 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/call.h ('k') | webrtc/call/rtc_event_log.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698