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

Side by Side Diff: webrtc/api/rtpsender.cc

Issue 1873793002: Add missing tracing to RtpSender objects. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 8 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/media/engine/webrtcvideoengine2.cc » ('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 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2015 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
11 #include "webrtc/api/rtpsender.h" 11 #include "webrtc/api/rtpsender.h"
12 12
13 #include "webrtc/api/localaudiosource.h" 13 #include "webrtc/api/localaudiosource.h"
14 #include "webrtc/api/mediastreaminterface.h" 14 #include "webrtc/api/mediastreaminterface.h"
15 #include "webrtc/base/helpers.h" 15 #include "webrtc/base/helpers.h"
16 #include "webrtc/base/trace_event.h"
16 17
17 namespace webrtc { 18 namespace webrtc {
18 19
19 LocalAudioSinkAdapter::LocalAudioSinkAdapter() : sink_(nullptr) {} 20 LocalAudioSinkAdapter::LocalAudioSinkAdapter() : sink_(nullptr) {}
20 21
21 LocalAudioSinkAdapter::~LocalAudioSinkAdapter() { 22 LocalAudioSinkAdapter::~LocalAudioSinkAdapter() {
22 rtc::CritScope lock(&lock_); 23 rtc::CritScope lock(&lock_);
23 if (sink_) 24 if (sink_)
24 sink_->OnClose(); 25 sink_->OnClose();
25 } 26 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 stream_id_(rtc::CreateRandomUuid()), 80 stream_id_(rtc::CreateRandomUuid()),
80 provider_(provider), 81 provider_(provider),
81 stats_(stats), 82 stats_(stats),
82 sink_adapter_(new LocalAudioSinkAdapter()) {} 83 sink_adapter_(new LocalAudioSinkAdapter()) {}
83 84
84 AudioRtpSender::~AudioRtpSender() { 85 AudioRtpSender::~AudioRtpSender() {
85 Stop(); 86 Stop();
86 } 87 }
87 88
88 void AudioRtpSender::OnChanged() { 89 void AudioRtpSender::OnChanged() {
90 TRACE_EVENT0("webrtc", "AudioRtpSender::OnChanged");
89 RTC_DCHECK(!stopped_); 91 RTC_DCHECK(!stopped_);
90 if (cached_track_enabled_ != track_->enabled()) { 92 if (cached_track_enabled_ != track_->enabled()) {
91 cached_track_enabled_ = track_->enabled(); 93 cached_track_enabled_ = track_->enabled();
92 if (can_send_track()) { 94 if (can_send_track()) {
93 SetAudioSend(); 95 SetAudioSend();
94 } 96 }
95 } 97 }
96 } 98 }
97 99
98 bool AudioRtpSender::SetTrack(MediaStreamTrackInterface* track) { 100 bool AudioRtpSender::SetTrack(MediaStreamTrackInterface* track) {
101 TRACE_EVENT0("webrtc", "AudioRtpSender::SetTrack");
99 if (stopped_) { 102 if (stopped_) {
100 LOG(LS_ERROR) << "SetTrack can't be called on a stopped RtpSender."; 103 LOG(LS_ERROR) << "SetTrack can't be called on a stopped RtpSender.";
101 return false; 104 return false;
102 } 105 }
103 if (track && track->kind() != MediaStreamTrackInterface::kAudioKind) { 106 if (track && track->kind() != MediaStreamTrackInterface::kAudioKind) {
104 LOG(LS_ERROR) << "SetTrack called on audio RtpSender with " << track->kind() 107 LOG(LS_ERROR) << "SetTrack called on audio RtpSender with " << track->kind()
105 << " track."; 108 << " track.";
106 return false; 109 return false;
107 } 110 }
108 AudioTrackInterface* audio_track = static_cast<AudioTrackInterface*>(track); 111 AudioTrackInterface* audio_track = static_cast<AudioTrackInterface*>(track);
(...skipping 24 matching lines...) Expand all
133 stats_->AddLocalAudioTrack(track_.get(), ssrc_); 136 stats_->AddLocalAudioTrack(track_.get(), ssrc_);
134 } 137 }
135 } else if (prev_can_send_track) { 138 } else if (prev_can_send_track) {
136 cricket::AudioOptions options; 139 cricket::AudioOptions options;
137 provider_->SetAudioSend(ssrc_, false, options, nullptr); 140 provider_->SetAudioSend(ssrc_, false, options, nullptr);
138 } 141 }
139 return true; 142 return true;
140 } 143 }
141 144
142 void AudioRtpSender::SetSsrc(uint32_t ssrc) { 145 void AudioRtpSender::SetSsrc(uint32_t ssrc) {
146 TRACE_EVENT0("webrtc", "AudioRtpSender::SetSsrc");
143 if (stopped_ || ssrc == ssrc_) { 147 if (stopped_ || ssrc == ssrc_) {
144 return; 148 return;
145 } 149 }
146 // If we are already sending with a particular SSRC, stop sending. 150 // If we are already sending with a particular SSRC, stop sending.
147 if (can_send_track()) { 151 if (can_send_track()) {
148 cricket::AudioOptions options; 152 cricket::AudioOptions options;
149 provider_->SetAudioSend(ssrc_, false, options, nullptr); 153 provider_->SetAudioSend(ssrc_, false, options, nullptr);
150 if (stats_) { 154 if (stats_) {
151 stats_->RemoveLocalAudioTrack(track_.get(), ssrc_); 155 stats_->RemoveLocalAudioTrack(track_.get(), ssrc_);
152 } 156 }
153 } 157 }
154 ssrc_ = ssrc; 158 ssrc_ = ssrc;
155 if (can_send_track()) { 159 if (can_send_track()) {
156 SetAudioSend(); 160 SetAudioSend();
157 if (stats_) { 161 if (stats_) {
158 stats_->AddLocalAudioTrack(track_.get(), ssrc_); 162 stats_->AddLocalAudioTrack(track_.get(), ssrc_);
159 } 163 }
160 } 164 }
161 } 165 }
162 166
163 void AudioRtpSender::Stop() { 167 void AudioRtpSender::Stop() {
168 TRACE_EVENT0("webrtc", "AudioRtpSender::Stop");
164 // TODO(deadbeef): Need to do more here to fully stop sending packets. 169 // TODO(deadbeef): Need to do more here to fully stop sending packets.
165 if (stopped_) { 170 if (stopped_) {
166 return; 171 return;
167 } 172 }
168 if (track_) { 173 if (track_) {
169 track_->RemoveSink(sink_adapter_.get()); 174 track_->RemoveSink(sink_adapter_.get());
170 track_->UnregisterObserver(this); 175 track_->UnregisterObserver(this);
171 } 176 }
172 if (can_send_track()) { 177 if (can_send_track()) {
173 cricket::AudioOptions options; 178 cricket::AudioOptions options;
(...skipping 23 matching lines...) Expand all
197 cricket::AudioSource* source = sink_adapter_.get(); 202 cricket::AudioSource* source = sink_adapter_.get();
198 ASSERT(source != nullptr); 203 ASSERT(source != nullptr);
199 provider_->SetAudioSend(ssrc_, track_->enabled(), options, source); 204 provider_->SetAudioSend(ssrc_, track_->enabled(), options, source);
200 } 205 }
201 206
202 RtpParameters AudioRtpSender::GetParameters() const { 207 RtpParameters AudioRtpSender::GetParameters() const {
203 return provider_->GetAudioRtpParameters(ssrc_); 208 return provider_->GetAudioRtpParameters(ssrc_);
204 } 209 }
205 210
206 bool AudioRtpSender::SetParameters(const RtpParameters& parameters) { 211 bool AudioRtpSender::SetParameters(const RtpParameters& parameters) {
212 TRACE_EVENT0("webrtc", "AudioRtpSender::SetParameters");
207 return provider_->SetAudioRtpParameters(ssrc_, parameters); 213 return provider_->SetAudioRtpParameters(ssrc_, parameters);
208 } 214 }
209 215
210 VideoRtpSender::VideoRtpSender(VideoTrackInterface* track, 216 VideoRtpSender::VideoRtpSender(VideoTrackInterface* track,
211 const std::string& stream_id, 217 const std::string& stream_id,
212 VideoProviderInterface* provider) 218 VideoProviderInterface* provider)
213 : id_(track->id()), 219 : id_(track->id()),
214 stream_id_(stream_id), 220 stream_id_(stream_id),
215 provider_(provider), 221 provider_(provider),
216 track_(track), 222 track_(track),
(...skipping 16 matching lines...) Expand all
233 VideoRtpSender::VideoRtpSender(VideoProviderInterface* provider) 239 VideoRtpSender::VideoRtpSender(VideoProviderInterface* provider)
234 : id_(rtc::CreateRandomUuid()), 240 : id_(rtc::CreateRandomUuid()),
235 stream_id_(rtc::CreateRandomUuid()), 241 stream_id_(rtc::CreateRandomUuid()),
236 provider_(provider) {} 242 provider_(provider) {}
237 243
238 VideoRtpSender::~VideoRtpSender() { 244 VideoRtpSender::~VideoRtpSender() {
239 Stop(); 245 Stop();
240 } 246 }
241 247
242 void VideoRtpSender::OnChanged() { 248 void VideoRtpSender::OnChanged() {
249 TRACE_EVENT0("webrtc", "VideoRtpSender::OnChanged");
243 RTC_DCHECK(!stopped_); 250 RTC_DCHECK(!stopped_);
244 if (cached_track_enabled_ != track_->enabled()) { 251 if (cached_track_enabled_ != track_->enabled()) {
245 cached_track_enabled_ = track_->enabled(); 252 cached_track_enabled_ = track_->enabled();
246 if (can_send_track()) { 253 if (can_send_track()) {
247 SetVideoSend(); 254 SetVideoSend();
248 } 255 }
249 } 256 }
250 } 257 }
251 258
252 bool VideoRtpSender::SetTrack(MediaStreamTrackInterface* track) { 259 bool VideoRtpSender::SetTrack(MediaStreamTrackInterface* track) {
260 TRACE_EVENT0("webrtc", "VideoRtpSender::SetTrack");
253 if (stopped_) { 261 if (stopped_) {
254 LOG(LS_ERROR) << "SetTrack can't be called on a stopped RtpSender."; 262 LOG(LS_ERROR) << "SetTrack can't be called on a stopped RtpSender.";
255 return false; 263 return false;
256 } 264 }
257 if (track && track->kind() != MediaStreamTrackInterface::kVideoKind) { 265 if (track && track->kind() != MediaStreamTrackInterface::kVideoKind) {
258 LOG(LS_ERROR) << "SetTrack called on video RtpSender with " << track->kind() 266 LOG(LS_ERROR) << "SetTrack called on video RtpSender with " << track->kind()
259 << " track."; 267 << " track.";
260 return false; 268 return false;
261 } 269 }
262 VideoTrackInterface* video_track = static_cast<VideoTrackInterface*>(track); 270 VideoTrackInterface* video_track = static_cast<VideoTrackInterface*>(track);
(...skipping 22 matching lines...) Expand all
285 provider_->SetSource(ssrc_, track_); 293 provider_->SetSource(ssrc_, track_);
286 SetVideoSend(); 294 SetVideoSend();
287 } else if (prev_can_send_track) { 295 } else if (prev_can_send_track) {
288 provider_->SetSource(ssrc_, nullptr); 296 provider_->SetSource(ssrc_, nullptr);
289 provider_->SetVideoSend(ssrc_, false, nullptr); 297 provider_->SetVideoSend(ssrc_, false, nullptr);
290 } 298 }
291 return true; 299 return true;
292 } 300 }
293 301
294 void VideoRtpSender::SetSsrc(uint32_t ssrc) { 302 void VideoRtpSender::SetSsrc(uint32_t ssrc) {
303 TRACE_EVENT0("webrtc", "VideoRtpSender::SetSsrc");
295 if (stopped_ || ssrc == ssrc_) { 304 if (stopped_ || ssrc == ssrc_) {
296 return; 305 return;
297 } 306 }
298 // If we are already sending with a particular SSRC, stop sending. 307 // If we are already sending with a particular SSRC, stop sending.
299 if (can_send_track()) { 308 if (can_send_track()) {
300 provider_->SetSource(ssrc_, nullptr); 309 provider_->SetSource(ssrc_, nullptr);
301 provider_->SetVideoSend(ssrc_, false, nullptr); 310 provider_->SetVideoSend(ssrc_, false, nullptr);
302 } 311 }
303 ssrc_ = ssrc; 312 ssrc_ = ssrc;
304 if (can_send_track()) { 313 if (can_send_track()) {
305 provider_->SetSource(ssrc_, track_); 314 provider_->SetSource(ssrc_, track_);
306 SetVideoSend(); 315 SetVideoSend();
307 } 316 }
308 } 317 }
309 318
310 void VideoRtpSender::Stop() { 319 void VideoRtpSender::Stop() {
320 TRACE_EVENT0("webrtc", "VideoRtpSender::Stop");
311 // TODO(deadbeef): Need to do more here to fully stop sending packets. 321 // TODO(deadbeef): Need to do more here to fully stop sending packets.
312 if (stopped_) { 322 if (stopped_) {
313 return; 323 return;
314 } 324 }
315 if (track_) { 325 if (track_) {
316 track_->UnregisterObserver(this); 326 track_->UnregisterObserver(this);
317 } 327 }
318 if (can_send_track()) { 328 if (can_send_track()) {
319 provider_->SetSource(ssrc_, nullptr); 329 provider_->SetSource(ssrc_, nullptr);
320 provider_->SetVideoSend(ssrc_, false, nullptr); 330 provider_->SetVideoSend(ssrc_, false, nullptr);
(...skipping 10 matching lines...) Expand all
331 options.video_noise_reduction = source->needs_denoising(); 341 options.video_noise_reduction = source->needs_denoising();
332 } 342 }
333 provider_->SetVideoSend(ssrc_, track_->enabled(), &options); 343 provider_->SetVideoSend(ssrc_, track_->enabled(), &options);
334 } 344 }
335 345
336 RtpParameters VideoRtpSender::GetParameters() const { 346 RtpParameters VideoRtpSender::GetParameters() const {
337 return provider_->GetVideoRtpParameters(ssrc_); 347 return provider_->GetVideoRtpParameters(ssrc_);
338 } 348 }
339 349
340 bool VideoRtpSender::SetParameters(const RtpParameters& parameters) { 350 bool VideoRtpSender::SetParameters(const RtpParameters& parameters) {
351 TRACE_EVENT0("webrtc", "VideoRtpSender::SetParameters");
341 return provider_->SetVideoRtpParameters(ssrc_, parameters); 352 return provider_->SetVideoRtpParameters(ssrc_, parameters);
342 } 353 }
343 354
344 } // namespace webrtc 355 } // namespace webrtc
OLDNEW
« no previous file with comments | « no previous file | webrtc/media/engine/webrtcvideoengine2.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698