Update capturer/test code to use the new interface VideoCapturer.

Bug: webrtc:9496
Change-Id: I9adf2c341b831820bbe71f2511616b629c9e1acc
Reviewed-on: https://webrtc-review.googlesource.com/87306
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23869}
diff --git a/sdk/android/api/org/webrtc/ScreenCapturerAndroid.java b/sdk/android/api/org/webrtc/ScreenCapturerAndroid.java
index 9a1bf61..a13f871 100644
--- a/sdk/android/api/org/webrtc/ScreenCapturerAndroid.java
+++ b/sdk/android/api/org/webrtc/ScreenCapturerAndroid.java
@@ -77,7 +77,7 @@
   // TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression.
   @SuppressWarnings("NoSynchronizedMethodCheck")
   public synchronized void initialize(final SurfaceTextureHelper surfaceTextureHelper,
-      final Context applicationContext, final VideoCapturer.CapturerObserver capturerObserver) {
+      final Context applicationContext, final CapturerObserver capturerObserver) {
     checkNotDisposed();
 
     if (capturerObserver == null) {
diff --git a/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java b/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java
index 05a5a54..17702c3 100644
--- a/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java
+++ b/sdk/android/instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java
@@ -101,7 +101,7 @@
     }
   }
 
-  static private class FakeCapturerObserver implements CameraVideoCapturer.CapturerObserver {
+  static private class FakeCapturerObserver implements CapturerObserver {
     private int framesCaptured = 0;
     private @Nullable VideoFrame videoFrame;
     final private Object frameLock = new Object();
@@ -272,6 +272,7 @@
    * is used for testing local rendering from a capturer.
    */
   static private class VideoTrackWithRenderer {
+    public SurfaceTextureHelper surfaceTextureHelper;
     public VideoSource source;
     public VideoTrack track;
     public RendererCallbacks rendererCallbacks;
@@ -389,7 +390,12 @@
   private VideoTrackWithRenderer createVideoTrackWithRenderer(
       CameraVideoCapturer capturer, VideoSink rendererCallbacks) {
     VideoTrackWithRenderer videoTrackWithRenderer = new VideoTrackWithRenderer();
-    videoTrackWithRenderer.source = peerConnectionFactory.createVideoSource(capturer);
+    videoTrackWithRenderer.surfaceTextureHelper = SurfaceTextureHelper.create(
+        "SurfaceTextureHelper test" /* threadName */, null /* sharedContext */);
+    videoTrackWithRenderer.source =
+        peerConnectionFactory.createVideoSource(/* isScreencast= */ false);
+    capturer.initialize(videoTrackWithRenderer.surfaceTextureHelper,
+        testObjectFactory.getAppContext(), videoTrackWithRenderer.source.getCapturerObserver());
     capturer.startCapture(DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_FPS);
     videoTrackWithRenderer.track =
         peerConnectionFactory.createVideoTrack("dummy", videoTrackWithRenderer.source);
diff --git a/sdk/android/instrumentationtests/src/org/webrtc/FileVideoCapturerTest.java b/sdk/android/instrumentationtests/src/org/webrtc/FileVideoCapturerTest.java
index 48af276..7a2aedf 100644
--- a/sdk/android/instrumentationtests/src/org/webrtc/FileVideoCapturerTest.java
+++ b/sdk/android/instrumentationtests/src/org/webrtc/FileVideoCapturerTest.java
@@ -27,7 +27,7 @@
 
 @RunWith(BaseJUnit4ClassRunner.class)
 public class FileVideoCapturerTest {
-  public static class MockCapturerObserver implements VideoCapturer.CapturerObserver {
+  public static class MockCapturerObserver implements CapturerObserver {
     private final ArrayList<VideoFrame> frames = new ArrayList<VideoFrame>();
 
     @Override
diff --git a/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java b/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java
index c83d6bf..d186979 100644
--- a/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java
+++ b/sdk/android/instrumentationtests/src/org/webrtc/PeerConnectionTest.java
@@ -698,7 +698,11 @@
     final CameraEnumerator enumerator = new Camera1Enumerator(false /* captureToTexture */);
     final VideoCapturer videoCapturer =
         enumerator.createCapturer(enumerator.getDeviceNames()[0], null /* eventsHandler */);
-    final VideoSource videoSource = factory.createVideoSource(videoCapturer);
+    final SurfaceTextureHelper surfaceTextureHelper =
+        SurfaceTextureHelper.create("SurfaceTextureHelper", /* sharedContext= */ null);
+    final VideoSource videoSource = factory.createVideoSource(/* isScreencast= */ false);
+    videoCapturer.initialize(surfaceTextureHelper, InstrumentationRegistry.getTargetContext(),
+        videoSource.getCapturerObserver());
     videoCapturer.startCapture(640, 480, 30);
 
     offeringExpectations.expectRenegotiationNeeded();
@@ -905,6 +909,7 @@
     videoCapturer.stopCapture();
     videoCapturer.dispose();
     videoSource.dispose();
+    surfaceTextureHelper.dispose();
     factory.dispose();
     System.gc();
   }
@@ -1094,7 +1099,11 @@
     final CameraEnumerator enumerator = new Camera1Enumerator(false /* captureToTexture */);
     final VideoCapturer videoCapturer =
         enumerator.createCapturer(enumerator.getDeviceNames()[0], null /* eventsHandler */);
-    final VideoSource videoSource = factory.createVideoSource(videoCapturer);
+    final SurfaceTextureHelper surfaceTextureHelper =
+        SurfaceTextureHelper.create("SurfaceTextureHelper", /* sharedContext= */ null);
+    final VideoSource videoSource = factory.createVideoSource(/* isScreencast= */ false);
+    videoCapturer.initialize(surfaceTextureHelper, InstrumentationRegistry.getTargetContext(),
+        videoSource.getCapturerObserver());
     videoCapturer.startCapture(640, 480, 30);
 
     // Add offerer media stream.
@@ -1245,6 +1254,7 @@
     videoCapturer.stopCapture();
     videoCapturer.dispose();
     videoSource.dispose();
+    surfaceTextureHelper.dispose();
     factory.dispose();
     System.gc();
   }
@@ -1318,7 +1328,11 @@
     final CameraEnumerator enumerator = new Camera1Enumerator(false /* captureToTexture */);
     final VideoCapturer videoCapturer =
         enumerator.createCapturer(enumerator.getDeviceNames()[0], null /* eventsHandler */);
-    final VideoSource videoSource = factory.createVideoSource(videoCapturer);
+    final SurfaceTextureHelper surfaceTextureHelper =
+        SurfaceTextureHelper.create("SurfaceTextureHelper", /* sharedContext= */ null);
+    final VideoSource videoSource = factory.createVideoSource(/* isScreencast= */ false);
+    videoCapturer.initialize(surfaceTextureHelper, InstrumentationRegistry.getTargetContext(),
+        videoSource.getCapturerObserver());
     VideoTrack videoTrack = factory.createVideoTrack("video", videoSource);
     offeringExpectations.expectRenegotiationNeeded();
     localStream.addTrack(videoTrack);
@@ -1369,6 +1383,7 @@
     pcUnderTest.dispose();
     videoCapturer.dispose();
     videoSource.dispose();
+    surfaceTextureHelper.dispose();
     factory.dispose();
   }
 
diff --git a/sdk/android/native_unittests/org/webrtc/JavaVideoSourceTestHelper.java b/sdk/android/native_unittests/org/webrtc/JavaVideoSourceTestHelper.java
index d1aa9c6..bde34e9 100644
--- a/sdk/android/native_unittests/org/webrtc/JavaVideoSourceTestHelper.java
+++ b/sdk/android/native_unittests/org/webrtc/JavaVideoSourceTestHelper.java
@@ -14,18 +14,17 @@
 
 public class JavaVideoSourceTestHelper {
   @CalledByNative
-  public static void startCapture(VideoCapturer.CapturerObserver observer, boolean success) {
+  public static void startCapture(CapturerObserver observer, boolean success) {
     observer.onCapturerStarted(success);
   }
 
   @CalledByNative
-  public static void stopCapture(VideoCapturer.CapturerObserver observer) {
+  public static void stopCapture(CapturerObserver observer) {
     observer.onCapturerStopped();
   }
 
   @CalledByNative
-  public static void deliverFrame(
-      int width, int height, int rotation, VideoCapturer.CapturerObserver observer) {
+  public static void deliverFrame(int width, int height, int rotation, CapturerObserver observer) {
     observer.onFrameCaptured(
         new VideoFrame(JavaI420Buffer.allocate(width, height), rotation, 0 /* timestampNs= */));
   }