Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: webrtc/api/androidtests/src/org/webrtc/Camera2CapturerTest.java

Issue 2541823002: Move webrtc/api/androidtests to webrtc/sdk/android/instrumentationtests (Closed)
Patch Set: Make include for webrtc.gni absolute Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/api/androidtests/src/org/webrtc/Camera2CapturerTest.java
diff --git a/webrtc/api/androidtests/src/org/webrtc/Camera2CapturerTest.java b/webrtc/api/androidtests/src/org/webrtc/Camera2CapturerTest.java
deleted file mode 100644
index 5f5d95e347467d4d7ff0cc4215a4f22925296df4..0000000000000000000000000000000000000000
--- a/webrtc/api/androidtests/src/org/webrtc/Camera2CapturerTest.java
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Copyright 2016 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-package org.webrtc;
-
-import android.content.Context;
-import android.hardware.camera2.CameraAccessException;
-import android.hardware.camera2.CameraDevice;
-import android.hardware.camera2.CameraManager;
-import android.os.Handler;
-import android.os.Looper;
-import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import java.util.concurrent.CountDownLatch;
-
-public class Camera2CapturerTest extends InstrumentationTestCase {
- static final String TAG = "Camera2CapturerTest";
-
- /**
- * Simple camera2 implementation that only knows how to open the camera and close it.
- */
- private class SimpleCamera2 {
- final CameraManager cameraManager;
- final LooperThread looperThread;
- final CountDownLatch openDoneSignal;
- final Object cameraDeviceLock;
- CameraDevice cameraDevice; // Guarded by cameraDeviceLock
- boolean openSucceeded; // Guarded by cameraDeviceLock
-
- private class LooperThread extends Thread {
- final CountDownLatch startedSignal = new CountDownLatch(1);
- private Handler handler;
-
- @Override
- public void run() {
- Looper.prepare();
- handler = new Handler();
- startedSignal.countDown();
- Looper.loop();
- }
-
- public void waitToStart() {
- ThreadUtils.awaitUninterruptibly(startedSignal);
- }
-
- public void requestStop() {
- handler.getLooper().quit();
- }
-
- public Handler getHandler() {
- return handler;
- }
- }
-
- private class CameraStateCallback extends CameraDevice.StateCallback {
- @Override
- public void onClosed(CameraDevice cameraDevice) {
- Logging.d(TAG, "Simple camera2 closed.");
-
- synchronized (cameraDeviceLock) {
- SimpleCamera2.this.cameraDevice = null;
- }
- }
-
- @Override
- public void onDisconnected(CameraDevice cameraDevice) {
- Logging.d(TAG, "Simple camera2 disconnected.");
-
- synchronized (cameraDeviceLock) {
- SimpleCamera2.this.cameraDevice = null;
- }
- }
-
- @Override
- public void onError(CameraDevice cameraDevice, int errorCode) {
- Logging.w(TAG, "Simple camera2 error: " + errorCode);
-
- synchronized (cameraDeviceLock) {
- SimpleCamera2.this.cameraDevice = cameraDevice;
- openSucceeded = false;
- }
-
- openDoneSignal.countDown();
- }
-
- @Override
- public void onOpened(CameraDevice cameraDevice) {
- Logging.d(TAG, "Simple camera2 opened.");
-
- synchronized (cameraDeviceLock) {
- SimpleCamera2.this.cameraDevice = cameraDevice;
- openSucceeded = true;
- }
-
- openDoneSignal.countDown();
- }
- }
-
- SimpleCamera2(Context context, String deviceName) {
- cameraManager = (CameraManager) context.getSystemService(Context.CAMERA_SERVICE);
- looperThread = new LooperThread();
- looperThread.start();
- looperThread.waitToStart();
- cameraDeviceLock = new Object();
- openDoneSignal = new CountDownLatch(1);
- cameraDevice = null;
- Logging.d(TAG, "Opening simple camera2.");
- try {
- cameraManager.openCamera(deviceName, new CameraStateCallback(), looperThread.getHandler());
- } catch (CameraAccessException e) {
- fail("Simple camera2 CameraAccessException: " + e.getMessage());
- }
-
- Logging.d(TAG, "Waiting for simple camera2 to open.");
- ThreadUtils.awaitUninterruptibly(openDoneSignal);
- synchronized (cameraDeviceLock) {
- if (!openSucceeded) {
- fail("Opening simple camera2 failed.");
- }
- }
- }
-
- public void close() {
- Logging.d(TAG, "Closing simple camera2.");
- synchronized (cameraDeviceLock) {
- if (cameraDevice != null) {
- cameraDevice.close();
- }
- }
-
- looperThread.requestStop();
- ThreadUtils.joinUninterruptibly(looperThread);
- }
- }
-
- private class TestObjectFactory extends CameraVideoCapturerTestFixtures.TestObjectFactory {
- @Override
- public CameraEnumerator getCameraEnumerator() {
- return new Camera2Enumerator(getAppContext());
- }
-
- @Override
- public Context getAppContext() {
- return getInstrumentation().getTargetContext();
- }
-
- @SuppressWarnings("deprecation")
- @Override
- public Object rawOpenCamera(String cameraName) {
- return new SimpleCamera2(getAppContext(), cameraName);
- }
-
- @SuppressWarnings("deprecation")
- @Override
- public void rawCloseCamera(Object camera) {
- ((SimpleCamera2) camera).close();
- }
- }
-
- private CameraVideoCapturerTestFixtures fixtures;
-
- @Override
- protected void setUp() {
- fixtures = new CameraVideoCapturerTestFixtures(new TestObjectFactory());
- }
-
- @Override
- protected void tearDown() {
- fixtures.dispose();
- }
-
- @SmallTest
- public void testCreateAndDispose() throws InterruptedException {
- fixtures.createCapturerAndDispose();
- }
-
- @SmallTest
- public void testCreateNonExistingCamera() throws InterruptedException {
- fixtures.createNonExistingCamera();
- }
-
- // This test that the camera can be started and that the frames are forwarded
- // to a Java video renderer using a "default" capturer.
- // It tests both the Java and the C++ layer.
- @MediumTest
- public void testCreateCapturerAndRender() throws InterruptedException {
- fixtures.createCapturerAndRender();
- }
-
- // This test that the camera can be started and that the frames are forwarded
- // to a Java video renderer using the front facing video capturer.
- // It tests both the Java and the C++ layer.
- @MediumTest
- public void testStartFrontFacingVideoCapturer() throws InterruptedException {
- fixtures.createFrontFacingCapturerAndRender();
- }
-
- // This test that the camera can be started and that the frames are forwarded
- // to a Java video renderer using the back facing video capturer.
- // It tests both the Java and the C++ layer.
- @MediumTest
- public void testStartBackFacingVideoCapturer() throws InterruptedException {
- fixtures.createBackFacingCapturerAndRender();
- }
-
- // This test that the default camera can be started and that the camera can
- // later be switched to another camera.
- // It tests both the Java and the C++ layer.
- @MediumTest
- public void testSwitchVideoCapturer() throws InterruptedException {
- fixtures.switchCamera();
- }
-
- @MediumTest
- public void testCameraEvents() throws InterruptedException {
- fixtures.cameraEventsInvoked();
- }
-
- // Test what happens when attempting to call e.g. switchCamera() after camera has been stopped.
- @MediumTest
- public void testCameraCallsAfterStop() throws InterruptedException {
- fixtures.cameraCallsAfterStop();
- }
-
- // This test that the VideoSource that the CameraVideoCapturer is connected to can
- // be stopped and restarted. It tests both the Java and the C++ layer.
- @LargeTest
- public void testStopRestartVideoSource() throws InterruptedException {
- fixtures.stopRestartVideoSource();
- }
-
- // This test that the camera can be started at different resolutions.
- // It does not test or use the C++ layer.
- @LargeTest
- public void testStartStopWithDifferentResolutions() throws InterruptedException {
- fixtures.startStopWithDifferentResolutions();
- }
-
- // This test what happens if buffers are returned after the capturer have
- // been stopped and restarted. It does not test or use the C++ layer.
- @LargeTest
- public void testReturnBufferLate() throws InterruptedException {
- fixtures.returnBufferLate();
- }
-
- // This test that we can capture frames, keep the frames in a local renderer, stop capturing,
- // and then return the frames. The difference between the test testReturnBufferLate() is that we
- // also test the JNI and C++ AndroidVideoCapturer parts.
- @MediumTest
- public void testReturnBufferLateEndToEnd() throws InterruptedException {
- fixtures.returnBufferLateEndToEnd();
- }
-
- // This test that CameraEventsHandler.onError is triggered if video buffers are not returned to
- // the capturer.
- @LargeTest
- public void testCameraFreezedEventOnBufferStarvation() throws InterruptedException {
- fixtures.cameraFreezedEventOnBufferStarvation();
- }
-
- // This test that frames forwarded to a renderer is scaled if adaptOutputFormat is
- // called. This test both Java and C++ parts of of the stack.
- @MediumTest
- public void testScaleCameraOutput() throws InterruptedException {
- fixtures.scaleCameraOutput();
- }
-
- // This test that an error is reported if the camera is already opened
- // when CameraVideoCapturer is started.
- @LargeTest
- public void testStartWhileCameraIsAlreadyOpen() throws InterruptedException {
- fixtures.startWhileCameraIsAlreadyOpen();
- }
-
- // This test that CameraVideoCapturer can be started, even if the camera is already opened
- // if the camera is closed while CameraVideoCapturer is re-trying to start.
- @LargeTest
- public void testStartWhileCameraIsAlreadyOpenAndCloseCamera() throws InterruptedException {
- fixtures.startWhileCameraIsAlreadyOpenAndCloseCamera();
- }
-
- // This test that CameraVideoCapturer.stop can be called while CameraVideoCapturer is
- // re-trying to start.
- @MediumTest
- public void testStartWhileCameraIsAlreadyOpenAndStop() throws InterruptedException {
- fixtures.startWhileCameraIsAlreadyOpenAndStop();
- }
-}

Powered by Google App Engine
This is Rietveld 408576698