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-Commit-Position: refs/heads/master@{#11775}
diff --git a/webrtc/api/videotrack.cc b/webrtc/api/videotrack.cc
index 577ac68..11a0177 100644
--- a/webrtc/api/videotrack.cc
+++ b/webrtc/api/videotrack.cc
@@ -33,12 +33,15 @@
return kVideoKind;
}
-void VideoTrack::AddRenderer(VideoRendererInterface* renderer) {
- renderers_.AddRenderer(renderer);
+void VideoTrack::AddOrUpdateSink(
+ rtc::VideoSinkInterface<cricket::VideoFrame>* sink,
+ const rtc::VideoSinkWants& wants) {
+ renderers_.AddOrUpdateSink(sink, wants);
}
-void VideoTrack::RemoveRenderer(VideoRendererInterface* renderer) {
- renderers_.RemoveRenderer(renderer);
+void VideoTrack::RemoveSink(
+ rtc::VideoSinkInterface<cricket::VideoFrame>* sink) {
+ renderers_.RemoveSink(sink);
}
rtc::VideoSinkInterface<cricket::VideoFrame>* VideoTrack::GetSink() {
@@ -51,7 +54,8 @@
}
rtc::scoped_refptr<VideoTrack> VideoTrack::Create(
- const std::string& id, VideoSourceInterface* source) {
+ const std::string& id,
+ VideoSourceInterface* source) {
rtc::RefCountedObject<VideoTrack>* track =
new rtc::RefCountedObject<VideoTrack>(id, source);
return track;