Make VideoTrack and VideoTrackRenderers implement rtc::VideoSourceInterface.
This patch tries to only change the interface to VideoTrack, with
minimal changes to the implementation. Some points worth noting:
VideoTrackRenderers should ultimately be deleted, but it is kept for
now since we need an object implementing webrtc::VideoRenderer, and
that shouldn't be VideoTrack.
BUG=webrtc:5426
TBR=glaznev@webrtc.org // please look at examples
Review URL: https://codereview.webrtc.org/1684423002
Cr-Original-Commit-Position: refs/heads/master@{#11775}
Cr-Mirrored-From: https://chromium.googlesource.com/external/webrtc
Cr-Mirrored-Commit: db25d2e8c57b14b14111ee6ab4a5cb6372142155
diff --git a/api/videotrack.h b/api/videotrack.h
index f2b8f19..1964cb4 100644
--- a/api/videotrack.h
+++ b/api/videotrack.h
@@ -22,11 +22,13 @@
class VideoTrack : public MediaStreamTrack<VideoTrackInterface> {
public:
- static rtc::scoped_refptr<VideoTrack> Create(
- const std::string& label, VideoSourceInterface* source);
+ static rtc::scoped_refptr<VideoTrack> Create(const std::string& label,
+ VideoSourceInterface* source);
- virtual void AddRenderer(VideoRendererInterface* renderer);
- virtual void RemoveRenderer(VideoRendererInterface* renderer);
+ void AddOrUpdateSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink,
+ const rtc::VideoSinkWants& wants) override;
+ void RemoveSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink) override;
+
virtual VideoSourceInterface* GetSource() const {
return video_source_.get();
}