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

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: Created 4 years, 9 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 a7537867e26f2bb4104e64f4350d52eb7b6bca3f..439a00fd2efe0d8e3f7239b32a5ff676cfe397bf 100644
--- a/webrtc/api/rtpsender.cc
+++ b/webrtc/api/rtpsender.cc
@@ -276,19 +276,9 @@ bool VideoRtpSender::SetTrack(MediaStreamTrackInterface* track) {
// Update video provider.
if (can_send_track()) {
- VideoTrackSourceInterface* source = track_->GetSource();
- // 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 SetCaptureDevice and
- // SetVideoSend
- // to be combined into one atomic operation, all the way down to
- // WebRtcVideoSendStream.
- provider_->SetCaptureDevice(ssrc_,
- source ? source->GetVideoCapturer() : nullptr);
SetVideoSend();
} else if (prev_can_send_track) {
- provider_->SetCaptureDevice(ssrc_, nullptr);
- provider_->SetVideoSend(ssrc_, false, nullptr);
+ provider_->SetVideoSend(ssrc_, false, nullptr, nullptr);
}
return true;
}
@@ -299,14 +289,10 @@ void VideoRtpSender::SetSsrc(uint32_t ssrc) {
}
// If we are already sending with a particular SSRC, stop sending.
if (can_send_track()) {
- provider_->SetCaptureDevice(ssrc_, nullptr);
- provider_->SetVideoSend(ssrc_, false, nullptr);
+ provider_->SetVideoSend(ssrc_, false, nullptr, nullptr);
}
ssrc_ = ssrc;
if (can_send_track()) {
- VideoTrackSourceInterface* source = track_->GetSource();
- provider_->SetCaptureDevice(ssrc_,
- source ? source->GetVideoCapturer() : nullptr);
SetVideoSend();
}
}
@@ -320,8 +306,7 @@ void VideoRtpSender::Stop() {
track_->UnregisterObserver(this);
}
if (can_send_track()) {
- provider_->SetCaptureDevice(ssrc_, nullptr);
- provider_->SetVideoSend(ssrc_, false, nullptr);
+ provider_->SetVideoSend(ssrc_, false, nullptr, nullptr);
}
stopped_ = true;
}
@@ -335,7 +320,8 @@ void VideoRtpSender::SetVideoSend() {
options.video_noise_reduction =
rtc::Optional<bool>(source->needs_denoising());
}
- provider_->SetVideoSend(ssrc_, track_->enabled(), &options);
+ provider_->SetVideoSend(ssrc_, track_->enabled(), &options,
+ source ? source->GetVideoCapturer() : nullptr);
}
RtpParameters VideoRtpSender::GetParameters() const {

Powered by Google App Engine
This is Rietveld 408576698