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

Unified Diff: webrtc/api/videotrackrenderers.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: Rebased 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
« no previous file with comments | « webrtc/api/videotrackrenderers.h ('k') | webrtc/media/base/fakevideorenderer.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/api/videotrackrenderers.cc
diff --git a/webrtc/api/videotrackrenderers.cc b/webrtc/api/videotrackrenderers.cc
index 9e928efbf1f1cf7b776fd331694d0f8eb1d6f800..a19bc3373bb7ebedcc50da55c97af726388815f5 100644
--- a/webrtc/api/videotrackrenderers.cc
+++ b/webrtc/api/videotrackrenderers.cc
@@ -9,76 +9,5 @@
*/
#include "webrtc/api/videotrackrenderers.h"
-#include "webrtc/media/engine/webrtcvideoframe.h"
-namespace webrtc {
-
-VideoTrackRenderers::VideoTrackRenderers() : enabled_(true) {
-}
-
-VideoTrackRenderers::~VideoTrackRenderers() {
-}
-
-void VideoTrackRenderers::AddOrUpdateSink(
- VideoSinkInterface<cricket::VideoFrame>* sink,
- const rtc::VideoSinkWants& wants) {
- // TODO(nisse): Currently ignores wants. We should somehow use
- // VideoBroadcaster, but we need to sort out its threading issues
- // first.
- rtc::CritScope cs(&critical_section_);
- if (std::find(sinks_.begin(), sinks_.end(), sink) == sinks_.end())
- sinks_.push_back(sink);
-}
-
-void VideoTrackRenderers::RemoveSink(
- VideoSinkInterface<cricket::VideoFrame>* sink) {
- rtc::CritScope cs(&critical_section_);
- sinks_.erase(std::remove(sinks_.begin(), sinks_.end(), sink), sinks_.end());
-}
-
-void VideoTrackRenderers::SetEnabled(bool enable) {
- rtc::CritScope cs(&critical_section_);
- enabled_ = enable;
-}
-
-bool VideoTrackRenderers::RenderFrame(const cricket::VideoFrame* frame) {
- {
- rtc::CritScope cs(&critical_section_);
- if (enabled_) {
- RenderFrameToSinks(*frame);
- return true;
- }
- }
-
- // Generate the black frame outside of the critical section. Note
- // that this may result in unexpected frame order, in the unlikely
- // case that RenderFrame is called from multiple threads without
- // proper serialization, and the track is switched from disabled to
- // enabled in the middle of the first call.
- cricket::WebRtcVideoFrame black(new rtc::RefCountedObject<I420Buffer>(
- static_cast<int>(frame->GetWidth()),
- static_cast<int>(frame->GetHeight())),
- frame->GetTimeStamp(),
- frame->GetVideoRotation());
- black.SetToBlack();
-
- {
- rtc::CritScope cs(&critical_section_);
- // Check enabled_ flag again, since the track might have been
- // enabled while we generated the black frame. I think the
- // enabled-ness ought to be applied at the track output, and hence
- // an enabled track shouldn't send any blacked out frames.
- RenderFrameToSinks(enabled_ ? *frame : black);
-
- return true;
- }
-}
-
-// Called with critical_section_ already locked
-void VideoTrackRenderers::RenderFrameToSinks(const cricket::VideoFrame& frame) {
- for (auto sink : sinks_) {
- sink->OnFrame(frame);
- }
-}
-
-} // namespace webrtc
+// TODO(perkj): Remove this file once Chrome builds doesnt depend on it.
« no previous file with comments | « webrtc/api/videotrackrenderers.h ('k') | webrtc/media/base/fakevideorenderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698