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}
This commit is contained in:
Sami Kalliomäki
2018-07-06 11:25:25 +02:00
committed by Commit Bot
parent 05b552f76a
commit b2daaaacbd
5 changed files with 31 additions and 11 deletions

View File

@ -77,7 +77,7 @@ public class ScreenCapturerAndroid implements VideoCapturer, VideoSink {
// 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) {

View File

@ -101,7 +101,7 @@ class CameraVideoCapturerTestFixtures {
}
}
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 @@ class CameraVideoCapturerTestFixtures {
* 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 @@ class CameraVideoCapturerTestFixtures {
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);

View File

@ -27,7 +27,7 @@ import org.junit.runner.RunWith;
@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

View File

@ -698,7 +698,11 @@ public class PeerConnectionTest {
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 @@ public class PeerConnectionTest {
videoCapturer.stopCapture();
videoCapturer.dispose();
videoSource.dispose();
surfaceTextureHelper.dispose();
factory.dispose();
System.gc();
}
@ -1094,7 +1099,11 @@ public class PeerConnectionTest {
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 @@ public class PeerConnectionTest {
videoCapturer.stopCapture();
videoCapturer.dispose();
videoSource.dispose();
surfaceTextureHelper.dispose();
factory.dispose();
System.gc();
}
@ -1318,7 +1328,11 @@ public class PeerConnectionTest {
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 @@ public class PeerConnectionTest {
pcUnderTest.dispose();
videoCapturer.dispose();
videoSource.dispose();
surfaceTextureHelper.dispose();
factory.dispose();
}

View File

@ -14,18 +14,17 @@ import org.webrtc.VideoCapturer;
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= */));
}