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

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

Issue 1765423005: Change VideoRtpReceiver to create remote VideoTrack and VideoTrackSource. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: self review 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.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

Powered by Google App Engine
This is Rietveld 408576698