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

Unified Diff: webrtc/media/base/videobroadcaster.cc

Issue 1779063003: Refactor VideoTracks to forward all sinks to its source (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Removed unused code. 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/media/base/videobroadcaster.cc
diff --git a/webrtc/media/base/videobroadcaster.cc b/webrtc/media/base/videobroadcaster.cc
index 015f5206b676e239666e4fa5f374ebecb2a0270c..ed1a826de0323a0d9b6c2c30c40b58da19b42d7f 100644
--- a/webrtc/media/base/videobroadcaster.cc
+++ b/webrtc/media/base/videobroadcaster.cc
@@ -65,7 +65,11 @@ VideoSinkWants VideoBroadcaster::wants() const {
void VideoBroadcaster::OnFrame(const cricket::VideoFrame& frame) {
rtc::CritScope cs(&sinks_and_wants_lock_);
for (auto& sink_pair : sinks_) {
- sink_pair.sink->OnFrame(frame);
+ if (sink_pair.wants.black_frames) {
+ sink_pair.sink->OnFrame(GetBlackFrame(frame));
+ } else {
+ sink_pair.sink->OnFrame(frame);
+ }
}
}
@@ -112,4 +116,21 @@ void VideoBroadcaster::UpdateWants() {
current_wants_ = wants;
}
+const cricket::VideoFrame& VideoBroadcaster::GetBlackFrame(
+ const cricket::VideoFrame& frame) {
+ if (black_frame_ && black_frame_->GetWidth() == frame.GetWidth() &&
+ black_frame_->GetHeight() == frame.GetHeight() &&
+ black_frame_->GetVideoRotation() == frame.GetVideoRotation()) {
+ black_frame_->SetTimeStamp(frame.GetTimeStamp());
+ return *black_frame_;
+ }
+ black_frame_.reset(new cricket::WebRtcVideoFrame(
+ new rtc::RefCountedObject<webrtc::I420Buffer>(
+ static_cast<int>(frame.GetWidth()),
+ static_cast<int>(frame.GetHeight())),
+ frame.GetTimeStamp(), frame.GetVideoRotation()));
+ black_frame_->SetToBlack();
+ return *black_frame_;
+}
+
} // namespace rtc

Powered by Google App Engine
This is Rietveld 408576698