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

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

Issue 1411723002: Move ownership of receive ViEChannel to VideoReceiveStream. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: pbos review 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 unified diff | Download patch
« no previous file with comments | « no previous file | webrtc/video/video_receive_stream.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 174 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 185
186 void Call::DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) { 186 void Call::DestroyAudioSendStream(webrtc::AudioSendStream* send_stream) {
187 // TODO(pbos): When adding AudioSendStream, add both TRACE_EVENT0 and config 187 // TODO(pbos): When adding AudioSendStream, add both TRACE_EVENT0 and config
188 // logging to AudioSendStream destructor. 188 // logging to AudioSendStream destructor.
189 } 189 }
190 190
191 webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream( 191 webrtc::AudioReceiveStream* Call::CreateAudioReceiveStream(
192 const webrtc::AudioReceiveStream::Config& config) { 192 const webrtc::AudioReceiveStream::Config& config) {
193 TRACE_EVENT0("webrtc", "Call::CreateAudioReceiveStream"); 193 TRACE_EVENT0("webrtc", "Call::CreateAudioReceiveStream");
194 AudioReceiveStream* receive_stream = new AudioReceiveStream( 194 AudioReceiveStream* receive_stream = new AudioReceiveStream(
195 channel_group_->GetRemoteBitrateEstimator(), config); 195 channel_group_->GetRemoteBitrateEstimator(false), config);
196 { 196 {
197 WriteLockScoped write_lock(*receive_crit_); 197 WriteLockScoped write_lock(*receive_crit_);
198 RTC_DCHECK(audio_receive_ssrcs_.find(config.rtp.remote_ssrc) == 198 RTC_DCHECK(audio_receive_ssrcs_.find(config.rtp.remote_ssrc) ==
199 audio_receive_ssrcs_.end()); 199 audio_receive_ssrcs_.end());
200 audio_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream; 200 audio_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream;
201 ConfigureSync(config.sync_group); 201 ConfigureSync(config.sync_group);
202 } 202 }
203 return receive_stream; 203 return receive_stream;
204 } 204 }
205 205
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 287
288 delete send_stream_impl; 288 delete send_stream_impl;
289 } 289 }
290 290
291 webrtc::VideoReceiveStream* Call::CreateVideoReceiveStream( 291 webrtc::VideoReceiveStream* Call::CreateVideoReceiveStream(
292 const webrtc::VideoReceiveStream::Config& config) { 292 const webrtc::VideoReceiveStream::Config& config) {
293 TRACE_EVENT0("webrtc", "Call::CreateVideoReceiveStream"); 293 TRACE_EVENT0("webrtc", "Call::CreateVideoReceiveStream");
294 VideoReceiveStream* receive_stream = new VideoReceiveStream( 294 VideoReceiveStream* receive_stream = new VideoReceiveStream(
295 num_cpu_cores_, channel_group_.get(), 295 num_cpu_cores_, channel_group_.get(),
296 rtc::AtomicOps::Increment(&next_channel_id_), config, 296 rtc::AtomicOps::Increment(&next_channel_id_), config,
297 config_.voice_engine); 297 config_.voice_engine, module_process_thread_.get());
298 298
299 // This needs to be taken before receive_crit_ as both locks need to be held 299 // This needs to be taken before receive_crit_ as both locks need to be held
300 // while changing network state. 300 // while changing network state.
301 rtc::CritScope lock(&network_enabled_crit_); 301 rtc::CritScope lock(&network_enabled_crit_);
302 WriteLockScoped write_lock(*receive_crit_); 302 WriteLockScoped write_lock(*receive_crit_);
303 RTC_DCHECK(video_receive_ssrcs_.find(config.rtp.remote_ssrc) == 303 RTC_DCHECK(video_receive_ssrcs_.find(config.rtp.remote_ssrc) ==
304 video_receive_ssrcs_.end()); 304 video_receive_ssrcs_.end());
305 video_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream; 305 video_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream;
306 // TODO(pbos): Configure different RTX payloads per receive payload. 306 // TODO(pbos): Configure different RTX payloads per receive payload.
307 VideoReceiveStream::Config::Rtp::RtxMap::const_iterator it = 307 VideoReceiveStream::Config::Rtp::RtxMap::const_iterator it =
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 delete receive_stream_impl; 348 delete receive_stream_impl;
349 } 349 }
350 350
351 Call::Stats Call::GetStats() const { 351 Call::Stats Call::GetStats() const {
352 Stats stats; 352 Stats stats;
353 // Fetch available send/receive bitrates. 353 // Fetch available send/receive bitrates.
354 uint32_t send_bandwidth = 0; 354 uint32_t send_bandwidth = 0;
355 channel_group_->GetBitrateController()->AvailableBandwidth(&send_bandwidth); 355 channel_group_->GetBitrateController()->AvailableBandwidth(&send_bandwidth);
356 std::vector<unsigned int> ssrcs; 356 std::vector<unsigned int> ssrcs;
357 uint32_t recv_bandwidth = 0; 357 uint32_t recv_bandwidth = 0;
358 channel_group_->GetRemoteBitrateEstimator()->LatestEstimate(&ssrcs, 358 channel_group_->GetRemoteBitrateEstimator(false)->LatestEstimate(
359 &recv_bandwidth); 359 &ssrcs, &recv_bandwidth);
360 stats.send_bandwidth_bps = send_bandwidth; 360 stats.send_bandwidth_bps = send_bandwidth;
361 stats.recv_bandwidth_bps = recv_bandwidth; 361 stats.recv_bandwidth_bps = recv_bandwidth;
362 stats.pacer_delay_ms = channel_group_->GetPacerQueuingDelayMs(); 362 stats.pacer_delay_ms = channel_group_->GetPacerQueuingDelayMs();
363 { 363 {
364 ReadLockScoped read_lock(*send_crit_); 364 ReadLockScoped read_lock(*send_crit_);
365 for (const auto& kv : video_send_ssrcs_) { 365 for (const auto& kv : video_send_ssrcs_) {
366 int rtt_ms = kv.second->GetRtt(); 366 int rtt_ms = kv.second->GetRtt();
367 if (rtt_ms > 0) 367 if (rtt_ms > 0)
368 stats.rtt_ms = rtt_ms; 368 stats.rtt_ms = rtt_ms;
369 } 369 }
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 size_t length, 538 size_t length,
539 const PacketTime& packet_time) { 539 const PacketTime& packet_time) {
540 if (RtpHeaderParser::IsRtcp(packet, length)) 540 if (RtpHeaderParser::IsRtcp(packet, length))
541 return DeliverRtcp(media_type, packet, length); 541 return DeliverRtcp(media_type, packet, length);
542 542
543 return DeliverRtp(media_type, packet, length, packet_time); 543 return DeliverRtp(media_type, packet, length, packet_time);
544 } 544 }
545 545
546 } // namespace internal 546 } // namespace internal
547 } // namespace webrtc 547 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | webrtc/video/video_receive_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698