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= */));
}