Index: webrtc/api/videotrackrenderers.h |
diff --git a/webrtc/api/videotrackrenderers.h b/webrtc/api/videotrackrenderers.h |
index 46f0c2f56e0a4656fbe316d628ac0636709310ea..4c90ed48971e1cbce6e601709fdde31c92395b9e 100644 |
--- a/webrtc/api/videotrackrenderers.h |
+++ b/webrtc/api/videotrackrenderers.h |
@@ -17,6 +17,7 @@ |
#include "webrtc/base/criticalsection.h" |
#include "webrtc/base/scoped_ptr.h" |
#include "webrtc/media/base/videorenderer.h" |
+#include "webrtc/media/base/videobroadcaster.h" |
namespace webrtc { |
@@ -25,7 +26,9 @@ namespace webrtc { |
// Each VideoTrack owns a VideoTrackRenderers instance. |
// The class is thread safe. Rendering to the added VideoRendererInterfaces is |
// done on the same thread as the cricket::VideoRenderer. |
-class VideoTrackRenderers : public cricket::VideoRenderer { |
+class VideoTrackRenderers |
+ : public cricket::VideoRenderer, |
+ public rtc::VideoSourceInterface<cricket::VideoFrame> { |
public: |
VideoTrackRenderers(); |
~VideoTrackRenderers(); |
@@ -34,18 +37,14 @@ class VideoTrackRenderers : public cricket::VideoRenderer { |
// incoming frames are replaced by black frames. |
virtual bool RenderFrame(const cricket::VideoFrame* frame); |
- void AddRenderer(VideoRendererInterface* renderer); |
- void RemoveRenderer(VideoRendererInterface* renderer); |
+ void AddOrUpdateSink(VideoSinkInterface<cricket::VideoFrame>* sink, |
+ const rtc::VideoSinkWants& wants) override; |
+ void RemoveSink(VideoSinkInterface<cricket::VideoFrame>* sink) override; |
void SetEnabled(bool enable); |
private: |
- // Pass the frame on to to each registered renderer. Requires |
- // critical_section_ already locked. |
- void RenderFrameToRenderers(const cricket::VideoFrame* frame); |
- |
bool enabled_; |
- std::set<VideoRendererInterface*> renderers_; |
- |
+ rtc::VideoBroadcaster broadcaster_; |
rtc::CriticalSection critical_section_; // Protects the above variables |
}; |