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

Unified Diff: talk/app/webrtc/rtpsender.cc

Issue 1631703002: Make WebRtcVideoChannel2::WebRtcVideoSendStream implement rtc::VideoRendererInterface. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Addressed Per's comments. Created 4 years, 11 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: talk/app/webrtc/rtpsender.cc
diff --git a/talk/app/webrtc/rtpsender.cc b/talk/app/webrtc/rtpsender.cc
index 72a9114eb4df315dcdbd85e1fdc792ad3ddb704d..4401b0afe485ae4024e54973870d27791d63d8b9 100644
--- a/talk/app/webrtc/rtpsender.cc
+++ b/talk/app/webrtc/rtpsender.cc
@@ -268,9 +268,13 @@ bool VideoRtpSender::SetTrack(MediaStreamTrackInterface* track) {
}
VideoTrackInterface* video_track = static_cast<VideoTrackInterface*>(track);
+ rtc::VideoSinkInterface<cricket::VideoFrame>* sink =
+ provider_->GetSink(ssrc_);
+
perkj_webrtc 2016/01/28 13:45:16 if sinkptr != null. DCHECK(sinkptr ==provider_->G
nisse-webrtc 2016/01/29 07:48:29 I'm not sure exactly what you mean, but I did some
// Detach from old track.
if (track_) {
track_->UnregisterObserver(this);
+ track_->RemoveSink(sink);
}
// Attach to new track.
@@ -279,6 +283,7 @@ bool VideoRtpSender::SetTrack(MediaStreamTrackInterface* track) {
if (track_) {
cached_track_enabled_ = track_->enabled();
track_->RegisterObserver(this);
+ video_track->AddSink(sink);
}
// Update video provider.
@@ -325,6 +330,14 @@ void VideoRtpSender::Stop() {
}
if (track_) {
track_->UnregisterObserver(this);
+
+ rtc::VideoSinkInterface<cricket::VideoFrame>* sink =
perkj_webrtc 2016/01/28 13:45:16 dito
+ provider_->GetSink(ssrc_);
+ if (sink)
+ track_->RemoveSink(sink);
+ else
+ LOG(LS_ERROR)
+ << "VideoRtpSender::Stop called with a NULL sink. Too late???";
}
if (can_send_track()) {
provider_->SetCaptureDevice(ssrc_, nullptr);

Powered by Google App Engine
This is Rietveld 408576698