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

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

Issue 1412143002: Remove the video channel id completely. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Remove string. 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 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
87 const uint8_t* packet, 87 const uint8_t* packet,
88 size_t length, 88 size_t length,
89 const PacketTime& packet_time); 89 const PacketTime& packet_time);
90 90
91 void ConfigureSync(const std::string& sync_group) 91 void ConfigureSync(const std::string& sync_group)
92 EXCLUSIVE_LOCKS_REQUIRED(receive_crit_); 92 EXCLUSIVE_LOCKS_REQUIRED(receive_crit_);
93 93
94 const int num_cpu_cores_; 94 const int num_cpu_cores_;
95 const rtc::scoped_ptr<ProcessThread> module_process_thread_; 95 const rtc::scoped_ptr<ProcessThread> module_process_thread_;
96 const rtc::scoped_ptr<ChannelGroup> channel_group_; 96 const rtc::scoped_ptr<ChannelGroup> channel_group_;
97 volatile int next_channel_id_;
98 Call::Config config_; 97 Call::Config config_;
99 98
100 // Needs to be held while write-locking |receive_crit_| or |send_crit_|. This 99 // Needs to be held while write-locking |receive_crit_| or |send_crit_|. This
101 // ensures that we have a consistent network state signalled to all senders 100 // ensures that we have a consistent network state signalled to all senders
102 // and receivers. 101 // and receivers.
103 rtc::CriticalSection network_enabled_crit_; 102 rtc::CriticalSection network_enabled_crit_;
104 bool network_enabled_ GUARDED_BY(network_enabled_crit_); 103 bool network_enabled_ GUARDED_BY(network_enabled_crit_);
105 104
106 rtc::scoped_ptr<RWLockWrapper> receive_crit_; 105 rtc::scoped_ptr<RWLockWrapper> receive_crit_;
107 // Audio and Video receive streams are owned by the client that creates them. 106 // Audio and Video receive streams are owned by the client that creates them.
(...skipping 23 matching lines...) Expand all
131 Call* Call::Create(const Call::Config& config) { 130 Call* Call::Create(const Call::Config& config) {
132 return new internal::Call(config); 131 return new internal::Call(config);
133 } 132 }
134 133
135 namespace internal { 134 namespace internal {
136 135
137 Call::Call(const Call::Config& config) 136 Call::Call(const Call::Config& config)
138 : num_cpu_cores_(CpuInfo::DetectNumberOfCores()), 137 : num_cpu_cores_(CpuInfo::DetectNumberOfCores()),
139 module_process_thread_(ProcessThread::Create("ModuleProcessThread")), 138 module_process_thread_(ProcessThread::Create("ModuleProcessThread")),
140 channel_group_(new ChannelGroup(module_process_thread_.get())), 139 channel_group_(new ChannelGroup(module_process_thread_.get())),
141 next_channel_id_(0),
142 config_(config), 140 config_(config),
143 network_enabled_(true), 141 network_enabled_(true),
144 receive_crit_(RWLockWrapper::CreateRWLock()), 142 receive_crit_(RWLockWrapper::CreateRWLock()),
145 send_crit_(RWLockWrapper::CreateRWLock()), 143 send_crit_(RWLockWrapper::CreateRWLock()),
146 event_log_(nullptr) { 144 event_log_(nullptr) {
147 RTC_DCHECK_GE(config.bitrate_config.min_bitrate_bps, 0); 145 RTC_DCHECK_GE(config.bitrate_config.min_bitrate_bps, 0);
148 RTC_DCHECK_GE(config.bitrate_config.start_bitrate_bps, 146 RTC_DCHECK_GE(config.bitrate_config.start_bitrate_bps,
149 config.bitrate_config.min_bitrate_bps); 147 config.bitrate_config.min_bitrate_bps);
150 if (config.bitrate_config.max_bitrate_bps != -1) { 148 if (config.bitrate_config.max_bitrate_bps != -1) {
151 RTC_DCHECK_GE(config.bitrate_config.max_bitrate_bps, 149 RTC_DCHECK_GE(config.bitrate_config.max_bitrate_bps,
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 } 251 }
254 252
255 webrtc::VideoSendStream* Call::CreateVideoSendStream( 253 webrtc::VideoSendStream* Call::CreateVideoSendStream(
256 const webrtc::VideoSendStream::Config& config, 254 const webrtc::VideoSendStream::Config& config,
257 const VideoEncoderConfig& encoder_config) { 255 const VideoEncoderConfig& encoder_config) {
258 TRACE_EVENT0("webrtc", "Call::CreateVideoSendStream"); 256 TRACE_EVENT0("webrtc", "Call::CreateVideoSendStream");
259 257
260 // TODO(mflodman): Base the start bitrate on a current bandwidth estimate, if 258 // TODO(mflodman): Base the start bitrate on a current bandwidth estimate, if
261 // the call has already started. 259 // the call has already started.
262 VideoSendStream* send_stream = new VideoSendStream(num_cpu_cores_, 260 VideoSendStream* send_stream = new VideoSendStream(num_cpu_cores_,
263 module_process_thread_.get(), channel_group_.get(), 261 module_process_thread_.get(), channel_group_.get(), config,
264 rtc::AtomicOps::Increment(&next_channel_id_), config, encoder_config, 262 encoder_config, suspended_video_send_ssrcs_);
265 suspended_video_send_ssrcs_);
266 263
267 // This needs to be taken before send_crit_ as both locks need to be held 264 // This needs to be taken before send_crit_ as both locks need to be held
268 // while changing network state. 265 // while changing network state.
269 rtc::CritScope lock(&network_enabled_crit_); 266 rtc::CritScope lock(&network_enabled_crit_);
270 WriteLockScoped write_lock(*send_crit_); 267 WriteLockScoped write_lock(*send_crit_);
271 for (uint32_t ssrc : config.rtp.ssrcs) { 268 for (uint32_t ssrc : config.rtp.ssrcs) {
272 RTC_DCHECK(video_send_ssrcs_.find(ssrc) == video_send_ssrcs_.end()); 269 RTC_DCHECK(video_send_ssrcs_.find(ssrc) == video_send_ssrcs_.end());
273 video_send_ssrcs_[ssrc] = send_stream; 270 video_send_ssrcs_[ssrc] = send_stream;
274 } 271 }
275 video_send_streams_.insert(send_stream); 272 video_send_streams_.insert(send_stream);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 suspended_video_send_ssrcs_[it->first] = it->second; 309 suspended_video_send_ssrcs_[it->first] = it->second;
313 } 310 }
314 311
315 delete send_stream_impl; 312 delete send_stream_impl;
316 } 313 }
317 314
318 webrtc::VideoReceiveStream* Call::CreateVideoReceiveStream( 315 webrtc::VideoReceiveStream* Call::CreateVideoReceiveStream(
319 const webrtc::VideoReceiveStream::Config& config) { 316 const webrtc::VideoReceiveStream::Config& config) {
320 TRACE_EVENT0("webrtc", "Call::CreateVideoReceiveStream"); 317 TRACE_EVENT0("webrtc", "Call::CreateVideoReceiveStream");
321 VideoReceiveStream* receive_stream = new VideoReceiveStream( 318 VideoReceiveStream* receive_stream = new VideoReceiveStream(
322 num_cpu_cores_, channel_group_.get(), 319 num_cpu_cores_, channel_group_.get(), config, config_.voice_engine,
323 rtc::AtomicOps::Increment(&next_channel_id_), config, 320 module_process_thread_.get());
324 config_.voice_engine, module_process_thread_.get());
325 321
326 // This needs to be taken before receive_crit_ as both locks need to be held 322 // This needs to be taken before receive_crit_ as both locks need to be held
327 // while changing network state. 323 // while changing network state.
328 rtc::CritScope lock(&network_enabled_crit_); 324 rtc::CritScope lock(&network_enabled_crit_);
329 WriteLockScoped write_lock(*receive_crit_); 325 WriteLockScoped write_lock(*receive_crit_);
330 RTC_DCHECK(video_receive_ssrcs_.find(config.rtp.remote_ssrc) == 326 RTC_DCHECK(video_receive_ssrcs_.find(config.rtp.remote_ssrc) ==
331 video_receive_ssrcs_.end()); 327 video_receive_ssrcs_.end());
332 video_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream; 328 video_receive_ssrcs_[config.rtp.remote_ssrc] = receive_stream;
333 // TODO(pbos): Configure different RTX payloads per receive payload. 329 // TODO(pbos): Configure different RTX payloads per receive payload.
334 VideoReceiveStream::Config::Rtp::RtxMap::const_iterator it = 330 VideoReceiveStream::Config::Rtp::RtxMap::const_iterator it =
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 size_t length, 565 size_t length,
570 const PacketTime& packet_time) { 566 const PacketTime& packet_time) {
571 if (RtpHeaderParser::IsRtcp(packet, length)) 567 if (RtpHeaderParser::IsRtcp(packet, length))
572 return DeliverRtcp(media_type, packet, length); 568 return DeliverRtcp(media_type, packet, length);
573 569
574 return DeliverRtp(media_type, packet, length, packet_time); 570 return DeliverRtp(media_type, packet, length, packet_time);
575 } 571 }
576 572
577 } // namespace internal 573 } // namespace internal
578 } // namespace webrtc 574 } // 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