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

Unified Diff: webrtc/api/rtpsender.cc

Issue 1838413002: Combining SetVideoSend and SetSource into one method. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Addressing pbos@'s comments. Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: webrtc/api/rtpsender.cc
diff --git a/webrtc/api/rtpsender.cc b/webrtc/api/rtpsender.cc
index 360b6868fd377b99e1f64fdeb21bead5d7b490df..52fef6eccf8a2af6a1d151818e174d8632f3204b 100644
--- a/webrtc/api/rtpsender.cc
+++ b/webrtc/api/rtpsender.cc
@@ -280,7 +280,7 @@ bool VideoRtpSender::SetTrack(MediaStreamTrackInterface* track) {
// Attach to new track.
bool prev_can_send_track = can_send_track();
// Keep a reference to the old track to keep it alive until we call
- // SetSource.
+ // SetVideoSend.
rtc::scoped_refptr<VideoTrackInterface> old_track = track_;
track_ = video_track;
if (track_) {
@@ -290,17 +290,9 @@ bool VideoRtpSender::SetTrack(MediaStreamTrackInterface* track) {
// Update video provider.
if (can_send_track()) {
- // TODO(deadbeef): If SetTrack is called with a disabled track, and the
- // previous track was enabled, this could cause a frame from the new track
- // to slip out. Really, what we need is for SetSource and SetVideoSend
- // to be combined into one atomic operation, all the way down to
- // WebRtcVideoSendStream.
-
- provider_->SetSource(ssrc_, track_);
SetVideoSend();
} else if (prev_can_send_track) {
- provider_->SetSource(ssrc_, nullptr);
- provider_->SetVideoSend(ssrc_, false, nullptr);
+ provider_->SetVideoSend(ssrc_, false, nullptr, nullptr);
}
return true;
}
@@ -312,12 +304,10 @@ void VideoRtpSender::SetSsrc(uint32_t ssrc) {
}
// If we are already sending with a particular SSRC, stop sending.
if (can_send_track()) {
- provider_->SetSource(ssrc_, nullptr);
- provider_->SetVideoSend(ssrc_, false, nullptr);
+ provider_->SetVideoSend(ssrc_, false, nullptr, nullptr);
pthatcher1 2016/06/01 22:18:03 It might be more readable to make a private method
Taylor Brandstetter 2016/06/02 19:12:51 Done.
}
ssrc_ = ssrc;
if (can_send_track()) {
- provider_->SetSource(ssrc_, track_);
SetVideoSend();
}
}
@@ -332,8 +322,7 @@ void VideoRtpSender::Stop() {
track_->UnregisterObserver(this);
}
if (can_send_track()) {
- provider_->SetSource(ssrc_, nullptr);
- provider_->SetVideoSend(ssrc_, false, nullptr);
+ provider_->SetVideoSend(ssrc_, false, nullptr, nullptr);
}
stopped_ = true;
}
@@ -346,7 +335,7 @@ void VideoRtpSender::SetVideoSend() {
options.is_screencast = rtc::Optional<bool>(source->is_screencast());
options.video_noise_reduction = source->needs_denoising();
}
- provider_->SetVideoSend(ssrc_, track_->enabled(), &options);
+ provider_->SetVideoSend(ssrc_, track_->enabled(), &options, track_);
}
RtpParameters VideoRtpSender::GetParameters() const {

Powered by Google App Engine
This is Rietveld 408576698