Index: webrtc/media/base/videobroadcaster.h |
diff --git a/webrtc/media/base/videobroadcaster.h b/webrtc/media/base/videobroadcaster.h |
index b4227eaba6f314fe65f73492be7ae5d1b43ea4c8..c89c7eea9753082a1a76f456f01a67f69a842955 100644 |
--- a/webrtc/media/base/videobroadcaster.h |
+++ b/webrtc/media/base/videobroadcaster.h |
@@ -18,7 +18,8 @@ |
#include "webrtc/base/thread_checker.h" |
#include "webrtc/media/base/videoframe.h" |
#include "webrtc/media/base/videosinkinterface.h" |
-#include "webrtc/media/base/videosourceinterface.h" |
+#include "webrtc/media/base/videosourcebase.h" |
+#include "webrtc/media/engine/webrtcvideoframe.h" |
namespace rtc { |
@@ -28,7 +29,7 @@ namespace rtc { |
// Sinks must be added and removed on one and only one thread. |
// Video frames can be broadcasted on any thread. I.e VideoBroadcaster::OnFrame |
// can be called on any thread. |
-class VideoBroadcaster : public VideoSourceInterface<cricket::VideoFrame>, |
+class VideoBroadcaster : public VideoSourceBase, |
public VideoSinkInterface<cricket::VideoFrame> { |
public: |
VideoBroadcaster(); |
@@ -46,22 +47,15 @@ class VideoBroadcaster : public VideoSourceInterface<cricket::VideoFrame>, |
void OnFrame(const cricket::VideoFrame& frame) override; |
protected: |
- struct SinkPair { |
- SinkPair(VideoSinkInterface<cricket::VideoFrame>* sink, |
- VideoSinkWants wants) |
- : sink(sink), wants(wants) {} |
- VideoSinkInterface<cricket::VideoFrame>* sink; |
- VideoSinkWants wants; |
- }; |
- SinkPair* FindSinkPair(const VideoSinkInterface<cricket::VideoFrame>* sink) |
- EXCLUSIVE_LOCKS_REQUIRED(sinks_and_wants_lock_); |
void UpdateWants() EXCLUSIVE_LOCKS_REQUIRED(sinks_and_wants_lock_); |
+ const cricket::VideoFrame& GetBlackFrame(const cricket::VideoFrame& frame) |
+ EXCLUSIVE_LOCKS_REQUIRED(sinks_and_wants_lock_); |
ThreadChecker thread_checker_; |
rtc::CriticalSection sinks_and_wants_lock_; |
VideoSinkWants current_wants_ GUARDED_BY(sinks_and_wants_lock_); |
- std::vector<SinkPair> sinks_ GUARDED_BY(sinks_and_wants_lock_); |
+ rtc::scoped_ptr<cricket::WebRtcVideoFrame> black_frame_; |
}; |
} // namespace rtc |