Delete VideoRendererInterface.
Use in chromium was deleted a few days ago.
BUG=webrtc:5426
R=magjed@webrtc.org, pbos@webrtc.org, perkj@webrtc.org, pthatcher@webrtc.org, tkchin@webrtc.org
Review URL: https://codereview.webrtc.org/1817473002 .
Cr-Commit-Position: refs/heads/master@{#12099}
diff --git a/webrtc/api/java/android/org/webrtc/SurfaceViewRenderer.java b/webrtc/api/java/android/org/webrtc/SurfaceViewRenderer.java
index dbd6208..e20f67d 100644
--- a/webrtc/api/java/android/org/webrtc/SurfaceViewRenderer.java
+++ b/webrtc/api/java/android/org/webrtc/SurfaceViewRenderer.java
@@ -31,7 +31,7 @@
* renderFrame() is asynchronous to avoid blocking the calling thread.
* This class is thread safe and handles access from potentially four different threads:
* Interaction from the main app in init, release, setMirror, and setScalingtype.
- * Interaction from C++ webrtc::VideoRendererInterface in renderFrame and canApplyRotation.
+ * Interaction from C++ rtc::VideoSinkInterface in renderFrame.
* Interaction from the Activity lifecycle in surfaceCreated, surfaceChanged, and surfaceDestroyed.
* Interaction with the layout framework in onMeasure and onSizeChanged.
*/
diff --git a/webrtc/api/java/jni/peerconnection_jni.cc b/webrtc/api/java/jni/peerconnection_jni.cc
index 5a323cd..e93fe19 100644
--- a/webrtc/api/java/jni/peerconnection_jni.cc
+++ b/webrtc/api/java/jni/peerconnection_jni.cc
@@ -106,7 +106,6 @@
using webrtc::StatsObserver;
using webrtc::StatsReport;
using webrtc::StatsReports;
-using webrtc::VideoRendererInterface;
using webrtc::VideoTrackSourceInterface;
using webrtc::VideoTrackInterface;
using webrtc::VideoTrackVector;
@@ -731,32 +730,10 @@
const jmethodID j_value_ctor_;
};
-// Adapter presenting a cricket::VideoRenderer as a
-// webrtc::VideoRendererInterface.
-class VideoRendererWrapper : public VideoRendererInterface {
- public:
- static VideoRendererWrapper* Create(cricket::VideoRenderer* renderer) {
- if (renderer)
- return new VideoRendererWrapper(renderer);
- return NULL;
- }
-
- virtual ~VideoRendererWrapper() {}
-
- void RenderFrame(const cricket::VideoFrame* video_frame) override {
- ScopedLocalRefFrame local_ref_frame(AttachCurrentThreadIfNeeded());
- renderer_->RenderFrame(video_frame->GetCopyWithRotationApplied());
- }
-
- private:
- explicit VideoRendererWrapper(cricket::VideoRenderer* renderer)
- : renderer_(renderer) {}
- scoped_ptr<cricket::VideoRenderer> renderer_;
-};
-
-// Wrapper dispatching webrtc::VideoRendererInterface to a Java VideoRenderer
+// Wrapper dispatching rtc::VideoSinkInterface to a Java VideoRenderer
// instance.
-class JavaVideoRendererWrapper : public VideoRendererInterface {
+class JavaVideoRendererWrapper
+ : public rtc::VideoSinkInterface<cricket::VideoFrame> {
public:
JavaVideoRendererWrapper(JNIEnv* jni, jobject j_callbacks)
: j_callbacks_(jni, j_callbacks),
@@ -776,11 +753,11 @@
virtual ~JavaVideoRendererWrapper() {}
- void RenderFrame(const cricket::VideoFrame* video_frame) override {
+ void OnFrame(const cricket::VideoFrame& video_frame) override {
ScopedLocalRefFrame local_ref_frame(jni());
- jobject j_frame = (video_frame->GetNativeHandle() != nullptr)
- ? CricketToJavaTextureFrame(video_frame)
- : CricketToJavaI420Frame(video_frame);
+ jobject j_frame = (video_frame.GetNativeHandle() != nullptr)
+ ? CricketToJavaTextureFrame(&video_frame)
+ : CricketToJavaI420Frame(&video_frame);
// |j_callbacks_| is responsible for releasing |j_frame| with
// VideoRenderer.renderFrameDone().
jni()->CallVoidMethod(*j_callbacks_, j_render_frame_id_, j_frame);
@@ -1997,15 +1974,20 @@
JOW(void, VideoTrack_nativeAddRenderer)(
JNIEnv* jni, jclass,
jlong j_video_track_pointer, jlong j_renderer_pointer) {
- reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)->AddRenderer(
- reinterpret_cast<VideoRendererInterface*>(j_renderer_pointer));
+ reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)
+ ->AddOrUpdateSink(
+ reinterpret_cast<rtc::VideoSinkInterface<cricket::VideoFrame>*>(
+ j_renderer_pointer),
+ rtc::VideoSinkWants());
}
JOW(void, VideoTrack_nativeRemoveRenderer)(
JNIEnv* jni, jclass,
jlong j_video_track_pointer, jlong j_renderer_pointer) {
- reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)->RemoveRenderer(
- reinterpret_cast<VideoRendererInterface*>(j_renderer_pointer));
+ reinterpret_cast<VideoTrackInterface*>(j_video_track_pointer)
+ ->RemoveSink(
+ reinterpret_cast<rtc::VideoSinkInterface<cricket::VideoFrame>*>(
+ j_renderer_pointer));
}
JOW(jlong, CallSessionFileRotatingLogSink_nativeAddSink)(
diff --git a/webrtc/api/java/src/org/webrtc/VideoRenderer.java b/webrtc/api/java/src/org/webrtc/VideoRenderer.java
index e33a6ab..1b40b3a 100644
--- a/webrtc/api/java/src/org/webrtc/VideoRenderer.java
+++ b/webrtc/api/java/src/org/webrtc/VideoRenderer.java
@@ -13,7 +13,7 @@
import java.nio.ByteBuffer;
/**
- * Java version of VideoRendererInterface. In addition to allowing clients to
+ * Java version of VideoSinkInterface. In addition to allowing clients to
* define their own rendering behavior (by passing in a Callbacks object), this
* class also provides a createGui() method for creating a GUI-rendering window
* on various platforms.
@@ -106,7 +106,7 @@
public static native void nativeCopyPlane(ByteBuffer src, int width,
int height, int srcStride, ByteBuffer dst, int dstStride);
- /** The real meat of VideoRendererInterface. */
+ /** The real meat of VideoSinkInterface. */
public static interface Callbacks {
// |frame| might have pending rotation and implementation of Callbacks
// should handle that by applying rotation during rendering. The callee
diff --git a/webrtc/api/mediastreaminterface.h b/webrtc/api/mediastreaminterface.h
index a1ab675..47460b4 100644
--- a/webrtc/api/mediastreaminterface.h
+++ b/webrtc/api/mediastreaminterface.h
@@ -99,26 +99,6 @@
virtual ~MediaStreamTrackInterface() {}
};
-// Interface for rendering VideoFrames from a VideoTrack
-class VideoRendererInterface
- : public rtc::VideoSinkInterface<cricket::VideoFrame> {
- public:
- // |frame| may have pending rotation. For clients which can't apply rotation,
- // |frame|->GetCopyWithRotationApplied() will return a frame that has the
- // rotation applied.
- virtual void RenderFrame(const cricket::VideoFrame* frame) = 0;
- // Intended to replace RenderFrame.
- void OnFrame(const cricket::VideoFrame& frame) override {
- RenderFrame(&frame);
- }
-
- protected:
- // The destructor is protected to prevent deletion via the interface.
- // This is so that we allow reference counted classes, where the destructor
- // should never be public, to implement the interface.
- virtual ~VideoRendererInterface() {}
-};
-
// VideoTrackSourceInterface is a reference counted source used for VideoTracks.
// The same source can be used in multiple VideoTracks.
class VideoTrackSourceInterface
@@ -157,16 +137,6 @@
: public MediaStreamTrackInterface,
public rtc::VideoSourceInterface<cricket::VideoFrame> {
public:
- // AddRenderer and RemoveRenderer are for backwards compatibility
- // only. They are obsoleted by the methods of
- // rtc::VideoSourceInterface.
- virtual void AddRenderer(VideoRendererInterface* renderer) {
- AddOrUpdateSink(renderer, rtc::VideoSinkWants());
- }
- virtual void RemoveRenderer(VideoRendererInterface* renderer) {
- RemoveSink(renderer);
- }
-
// Register a video sink for this track.
void AddOrUpdateSink(rtc::VideoSinkInterface<cricket::VideoFrame>* sink,
const rtc::VideoSinkWants& wants) override{};
diff --git a/webrtc/api/mediastreamtrackproxy.h b/webrtc/api/mediastreamtrackproxy.h
index 676ba70..7b059b1 100644
--- a/webrtc/api/mediastreamtrackproxy.h
+++ b/webrtc/api/mediastreamtrackproxy.h
@@ -46,8 +46,6 @@
PROXY_METHOD1(bool, set_enabled, bool)
PROXY_METHOD1(bool, set_state, TrackState)
- PROXY_METHOD1(void, AddRenderer, VideoRendererInterface*)
- PROXY_METHOD1(void, RemoveRenderer, VideoRendererInterface*)
PROXY_METHOD2(void,
AddOrUpdateSink,
rtc::VideoSinkInterface<cricket::VideoFrame>*,
diff --git a/webrtc/api/objc/RTCVideoRendererAdapter+Private.h b/webrtc/api/objc/RTCVideoRendererAdapter+Private.h
index c181b9b..f0e0c6c 100644
--- a/webrtc/api/objc/RTCVideoRendererAdapter+Private.h
+++ b/webrtc/api/objc/RTCVideoRendererAdapter+Private.h
@@ -26,12 +26,12 @@
@property(nonatomic, readonly) id<RTCVideoRenderer> videoRenderer;
/**
- * The native VideoRendererInterface surface exposed by this adapter. Calls made
+ * The native VideoSinkInterface surface exposed by this adapter. Calls made
* to this interface will be adapted and passed to the RTCVideoRenderer supplied
* during construction. This pointer is unsafe and owned by this class.
*/
@property(nonatomic, readonly)
- webrtc::VideoRendererInterface *nativeVideoRenderer;
+ rtc::VideoSinkInterface<cricket::VideoFrame> *nativeVideoRenderer;
/** Initialize an RTCVideoRendererAdapter with an RTCVideoRenderer. */
- (instancetype)initWithNativeRenderer:(id<RTCVideoRenderer>)videoRenderer
diff --git a/webrtc/api/objc/RTCVideoRendererAdapter.h b/webrtc/api/objc/RTCVideoRendererAdapter.h
index 434a61b..b0b6f04 100644
--- a/webrtc/api/objc/RTCVideoRendererAdapter.h
+++ b/webrtc/api/objc/RTCVideoRendererAdapter.h
@@ -13,8 +13,8 @@
NS_ASSUME_NONNULL_BEGIN
/*
- * Creates a webrtc::VideoRendererInterface surface for an RTCVideoRenderer. The
- * webrtc::VideoRendererInterface is used by WebRTC rendering code - this
+ * Creates a rtc::VideoSinkInterface surface for an RTCVideoRenderer. The
+ * rtc::VideoSinkInterface is used by WebRTC rendering code - this
* adapter adapts calls made to that interface to the RTCVideoRenderer supplied
* during construction.
*/
diff --git a/webrtc/api/objc/RTCVideoRendererAdapter.mm b/webrtc/api/objc/RTCVideoRendererAdapter.mm
index fdaba68..c4f1ed8 100644
--- a/webrtc/api/objc/RTCVideoRendererAdapter.mm
+++ b/webrtc/api/objc/RTCVideoRendererAdapter.mm
@@ -15,16 +15,17 @@
namespace webrtc {
-class VideoRendererAdapter : public VideoRendererInterface {
+class VideoRendererAdapter
+ : public rtc::VideoSinkInterface<cricket::VideoFrame> {
public:
VideoRendererAdapter(RTCVideoRendererAdapter* adapter) {
adapter_ = adapter;
size_ = CGSizeZero;
}
- void RenderFrame(const cricket::VideoFrame *nativeVideoFrame) override {
+ void OnFrame(const cricket::VideoFrame& nativeVideoFrame) override {
const cricket::VideoFrame *frame =
- nativeVideoFrame->GetCopyWithRotationApplied();
+ nativeVideoFrame.GetCopyWithRotationApplied();
CGSize current_size = CGSizeMake(frame->GetWidth(), frame->GetHeight());
if (!CGSizeEqualToSize(size_, current_size)) {
size_ = current_size;
@@ -56,7 +57,7 @@
return self;
}
-- (webrtc::VideoRendererInterface *)nativeVideoRenderer {
+- (rtc::VideoSinkInterface<cricket::VideoFrame> *)nativeVideoRenderer {
return _adapter.get();
}
diff --git a/webrtc/api/objc/RTCVideoTrack.mm b/webrtc/api/objc/RTCVideoTrack.mm
index 5834af7..a32ea7b 100644
--- a/webrtc/api/objc/RTCVideoTrack.mm
+++ b/webrtc/api/objc/RTCVideoTrack.mm
@@ -52,7 +52,7 @@
- (void)dealloc {
for (RTCVideoRendererAdapter *adapter in _adapters) {
- self.nativeVideoTrack->RemoveRenderer(adapter.nativeVideoRenderer);
+ self.nativeVideoTrack->RemoveSink(adapter.nativeVideoRenderer);
}
}
@@ -79,7 +79,8 @@
RTCVideoRendererAdapter* adapter =
[[RTCVideoRendererAdapter alloc] initWithNativeRenderer:renderer];
[_adapters addObject:adapter];
- self.nativeVideoTrack->AddRenderer(adapter.nativeVideoRenderer);
+ self.nativeVideoTrack->AddOrUpdateSink(adapter.nativeVideoRenderer,
+ rtc::VideoSinkWants());
}
- (void)removeRenderer:(id<RTCVideoRenderer>)renderer {
@@ -97,7 +98,7 @@
}
RTCVideoRendererAdapter *adapterToRemove =
[_adapters objectAtIndex:indexToRemove];
- self.nativeVideoTrack->RemoveRenderer(adapterToRemove.nativeVideoRenderer);
+ self.nativeVideoTrack->RemoveSink(adapterToRemove.nativeVideoRenderer);
[_adapters removeObjectAtIndex:indexToRemove];
}
diff --git a/webrtc/api/test/fakevideotrackrenderer.h b/webrtc/api/test/fakevideotrackrenderer.h
index 312cf64..a1ce0f9 100644
--- a/webrtc/api/test/fakevideotrackrenderer.h
+++ b/webrtc/api/test/fakevideotrackrenderer.h
@@ -44,33 +44,6 @@
rtc::scoped_refptr<VideoTrackInterface> video_track_;
};
-// Similar class, testing the deprecated AddRenderer/RemoveRenderer methods.
-class FakeVideoTrackRendererOld : public VideoRendererInterface {
- public:
- FakeVideoTrackRendererOld(VideoTrackInterface* video_track)
- : video_track_(video_track) {
- video_track_->AddRenderer(this);
- }
- ~FakeVideoTrackRendererOld() { video_track_->RemoveRenderer(this); }
-
- virtual void RenderFrame(const cricket::VideoFrame* video_frame) override {
- fake_renderer_.RenderFrame(video_frame);
- }
-
- int errors() const { return fake_renderer_.errors(); }
- int width() const { return fake_renderer_.width(); }
- int height() const { return fake_renderer_.height(); }
- bool black_frame() const { return fake_renderer_.black_frame(); }
-
- int num_rendered_frames() const {
- return fake_renderer_.num_rendered_frames();
- }
-
- private:
- cricket::FakeVideoRenderer fake_renderer_;
- rtc::scoped_refptr<VideoTrackInterface> video_track_;
-};
-
} // namespace webrtc
#endif // WEBRTC_API_TEST_FAKEVIDEOTRACKRENDERER_H_
diff --git a/webrtc/api/videotrack_unittest.cc b/webrtc/api/videotrack_unittest.cc
index 0df8679..d35bcdb 100644
--- a/webrtc/api/videotrack_unittest.cc
+++ b/webrtc/api/videotrack_unittest.cc
@@ -20,7 +20,6 @@
#include "webrtc/media/engine/webrtcvideoframe.h"
using webrtc::FakeVideoTrackRenderer;
-using webrtc::FakeVideoTrackRendererOld;
using webrtc::MediaSourceInterface;
using webrtc::MediaStreamTrackInterface;
using webrtc::VideoTrackSource;
@@ -74,30 +73,6 @@
EXPECT_EQ(2, renderer_2->num_rendered_frames());
}
-// Test adding renderers to a video track and render to them by
-// providing frames to the source. Uses the old VideoTrack interface
-// with AddRenderer and RemoveRenderer.
-TEST_F(VideoTrackTest, RenderVideoOld) {
- // FakeVideoTrackRenderer register itself to |video_track_|
- rtc::scoped_ptr<FakeVideoTrackRendererOld> renderer_1(
- new FakeVideoTrackRendererOld(video_track_.get()));
-
- capturer_.CaptureFrame();
- EXPECT_EQ(1, renderer_1->num_rendered_frames());
-
- // FakeVideoTrackRenderer register itself to |video_track_|
- rtc::scoped_ptr<FakeVideoTrackRenderer> renderer_2(
- new FakeVideoTrackRenderer(video_track_.get()));
-
- capturer_.CaptureFrame();
- EXPECT_EQ(2, renderer_1->num_rendered_frames());
- EXPECT_EQ(1, renderer_2->num_rendered_frames());
-
- renderer_1.reset(nullptr);
- capturer_.CaptureFrame();
- EXPECT_EQ(2, renderer_2->num_rendered_frames());
-}
-
// Test that disabling the track results in blacked out frames.
TEST_F(VideoTrackTest, DisableTrackBlackout) {
rtc::scoped_ptr<FakeVideoTrackRenderer> renderer(