Index: webrtc/media/base/videobroadcaster.h |
diff --git a/webrtc/media/base/videobroadcaster.h b/webrtc/media/base/videobroadcaster.h |
index 89c9f3dd49cbfbab58d11c6078c34606306d7ecb..ba179c152031db2fea042a7265121bb0d63dd725 100644 |
--- a/webrtc/media/base/videobroadcaster.h |
+++ b/webrtc/media/base/videobroadcaster.h |
@@ -14,6 +14,7 @@ |
#include <utility> |
#include <vector> |
+#include "webrtc/base/criticalsection.h" |
#include "webrtc/base/thread_checker.h" |
#include "webrtc/media/base/videoframe.h" |
#include "webrtc/media/base/videosinkinterface.h" |
@@ -21,6 +22,12 @@ |
namespace rtc { |
+// VideoBroadcaster broadcast video frames to sinks and combine |
pthatcher1
2016/03/09 18:16:49
combines
perkj_webrtc
2016/03/09 21:22:59
Done.
|
+// VideoSinkWants from its sinks. It do that by implementing the |
pthatcher1
2016/03/09 18:16:49
implementing the => implementing
pthatcher1
2016/03/09 18:16:49
do that => does that
perkj_webrtc
2016/03/09 21:22:59
Done.
perkj_webrtc
2016/03/09 21:22:59
Done.
perkj_webrtc
2016/03/09 21:22:59
Done.
|
+// rtc::VideoSourceInterface and rtc::VideoSinkInterface. |
+// Sinks must be added and removed on one and only one thread. |
+// jVideo frames can be broadcasted on any thread. I.e VideoBroadcaster::OnFrame |
pthatcher1
2016/03/09 18:16:49
jVideo => video
perkj_webrtc
2016/03/09 21:22:59
Done.
|
+// can be called on any thread. |
class VideoBroadcaster : public VideoSourceInterface<cricket::VideoFrame>, |
public VideoSinkInterface<cricket::VideoFrame> { |
public: |
@@ -46,13 +53,15 @@ class VideoBroadcaster : public VideoSourceInterface<cricket::VideoFrame>, |
VideoSinkInterface<cricket::VideoFrame>* sink; |
VideoSinkWants wants; |
}; |
- SinkPair* FindSinkPair(const VideoSinkInterface<cricket::VideoFrame>* sink); |
- void UpdateWants(); |
+ SinkPair* FindSinkPair(const VideoSinkInterface<cricket::VideoFrame>* sink) |
+ EXCLUSIVE_LOCKS_REQUIRED(sinks_and_wants_lock_); |
+ void UpdateWants() EXCLUSIVE_LOCKS_REQUIRED(sinks_and_wants_lock_); |
ThreadChecker thread_checker_; |
+ rtc::CriticalSection sinks_and_wants_lock_; |
- VideoSinkWants current_wants_; |
- std::vector<SinkPair> sinks_; |
+ VideoSinkWants current_wants_ GUARDED_BY(sinks_and_wants_lock_); |
+ std::vector<SinkPair> sinks_ GUARDED_BY(sinks_and_wants_lock_); |
}; |
} // namespace rtc |