diff options
author | Igor Murashkin <iam@google.com> | 2014-06-17 12:04:07 -0700 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2014-06-17 22:55:16 +0000 |
commit | 4961bc88d7bab869a5296789d26fcfa31ad5f644 (patch) | |
tree | 24fb63dc81e721826259c9d49c1b1dc715d0ec79 /media/tests/MediaFrameworkTest | |
parent | 5834ee75038e9095cefe089cdb26795b3ffe9e38 (diff) | |
download | frameworks_base-4961bc88d7bab869a5296789d26fcfa31ad5f644.zip frameworks_base-4961bc88d7bab869a5296789d26fcfa31ad5f644.tar.gz frameworks_base-4961bc88d7bab869a5296789d26fcfa31ad5f644.tar.bz2 |
camera2: Map camera characteristics in the managed layer
Change-Id: Ic86c8df3d703e7cf89caa856387e2c0a1b977401
Diffstat (limited to 'media/tests/MediaFrameworkTest')
2 files changed, 61 insertions, 1 deletions
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java index 8a7e642..7dba21d 100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTest.java @@ -22,7 +22,6 @@ import android.hardware.ICameraClient; import android.hardware.ICameraServiceListener; import android.hardware.IProCameraCallbacks; import android.hardware.IProCameraUser; -import android.hardware.camera2.CameraMetadata; import android.hardware.camera2.ICameraDeviceCallbacks; import android.hardware.camera2.ICameraDeviceUser; import android.hardware.camera2.impl.CameraMetadataNative; @@ -51,8 +50,14 @@ import android.util.Log; * </pre> */ public class CameraBinderTest extends AndroidTestCase { + private static final int MAX_PARAMETERS_LENGTH = 100; + static String TAG = "CameraBinderTest"; + // From ICameraService.h + private static final int API_VERSION_1 = 1; + private static final int API_VERSION_2 = 2; + protected CameraBinderTestUtils mUtils; public CameraBinderTest() { @@ -95,6 +100,56 @@ public class CameraBinderTest extends AndroidTestCase { } } + @SmallTest + public void testGetLegacyParameters() throws Exception { + for (int cameraId = 0; cameraId < mUtils.getGuessedNumCameras(); ++cameraId) { + + String[] parameters = new String[1]; + assertEquals("Camera service returned parameters for camera " + cameraId, + CameraBinderTestUtils.NO_ERROR, + mUtils.getCameraService().getLegacyParameters(cameraId, /*out*/parameters)); + assertNotNull(parameters[0]); + assertTrue("Parameters should have at least one character in it", + parameters[0].length() > 0); + + int end = parameters[0].length(); + if (end > MAX_PARAMETERS_LENGTH) { + end = MAX_PARAMETERS_LENGTH; + } + + Log.v(TAG, "Camera " + cameraId + " parameters: " + parameters[0].substring(0, end)); + } + } + + /** The camera2 api is only supported on HAL3.2+ devices */ + @SmallTest + public void testSupportsCamera2Api() throws Exception { + for (int cameraId = 0; cameraId < mUtils.getGuessedNumCameras(); ++cameraId) { + + int res = mUtils.getCameraService().supportsCameraApi(cameraId, API_VERSION_2); + + if (res != CameraBinderTestUtils.NO_ERROR && res != CameraBinderTestUtils.EOPNOTSUPP) { + fail("Camera service returned bad value when queried if it supports camera2 api: " + + res + " for camera ID " + cameraId); + } + + boolean supports = res == CameraBinderTestUtils.NO_ERROR; + Log.v(TAG, "Camera " + cameraId + " supports api2: " + supports); + } + } + + /** The camera1 api is supported on *all* devices regardless of HAL version */ + @SmallTest + public void testSupportsCamera1Api() throws Exception { + for (int cameraId = 0; cameraId < mUtils.getGuessedNumCameras(); ++cameraId) { + + int res = mUtils.getCameraService().supportsCameraApi(cameraId, API_VERSION_1); + assertEquals( + "Camera service returned bad value when queried if it supports camera1 api: " + + res + " for camera ID " + cameraId, CameraBinderTestUtils.NO_ERROR, res); + } + } + static abstract class DummyBase extends Binder implements android.os.IInterface { @Override public IBinder asBinder() { @@ -158,6 +213,7 @@ public class CameraBinderTest extends AndroidTestCase { * android.hardware.camera2.ICameraDeviceCallbacks#onCameraError(int, * android.hardware.camera2.CaptureResultExtras) */ + @Override public void onCameraError(int errorCode, CaptureResultExtras resultExtras) throws RemoteException { // TODO Auto-generated method stub @@ -170,6 +226,7 @@ public class CameraBinderTest extends AndroidTestCase { * android.hardware.camera2.ICameraDeviceCallbacks#onCaptureStarted( * android.hardware.camera2.CaptureResultExtras, long) */ + @Override public void onCaptureStarted(CaptureResultExtras resultExtras, long timestamp) throws RemoteException { // TODO Auto-generated method stub @@ -183,6 +240,7 @@ public class CameraBinderTest extends AndroidTestCase { * android.hardware.camera2.impl.CameraMetadataNative, * android.hardware.camera2.CaptureResultExtras) */ + @Override public void onResultReceived(CameraMetadataNative result, CaptureResultExtras resultExtras) throws RemoteException { // TODO Auto-generated method stub @@ -193,6 +251,7 @@ public class CameraBinderTest extends AndroidTestCase { * (non-Javadoc) * @see android.hardware.camera2.ICameraDeviceCallbacks#onCameraIdle() */ + @Override public void onCameraIdle() throws RemoteException { // TODO Auto-generated method stub diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTestUtils.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTestUtils.java index 1be2a62..6be538a 100644 --- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTestUtils.java +++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraBinderTestUtils.java @@ -22,6 +22,7 @@ public class CameraBinderTestUtils { protected static final int INVALID_OPERATION = -38; protected static final int ALREADY_EXISTS = -17; public static final int NO_ERROR = 0; + public static final int EOPNOTSUPP = -95; private final Context mContext; public CameraBinderTestUtils(Context context) { |