Loading core/java/android/hardware/ICameraService.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.hardware.IProCameraUser; import android.hardware.IProCameraCallbacks; import android.hardware.camera2.ICameraDeviceUser; import android.hardware.camera2.ICameraDeviceCallbacks; import android.hardware.camera2.impl.CameraMetadataNative; import android.hardware.camera2.utils.BinderHolder; import android.hardware.ICameraServiceListener; import android.hardware.CameraInfo; Loading Loading @@ -58,4 +59,6 @@ interface ICameraService int addListener(ICameraServiceListener listener); int removeListener(ICameraServiceListener listener); int getCameraCharacteristics(int cameraId, out CameraMetadataNative info); } core/java/android/hardware/camera2/CameraManager.java +10 −3 Original line number Diff line number Diff line Loading @@ -176,10 +176,17 @@ public final class CameraManager { } } // TODO: implement and call a service function to get the capabilities on C++ side CameraMetadataNative info = new CameraMetadataNative(); try { mCameraService.getCameraCharacteristics(Integer.valueOf(cameraId), info); } catch(CameraRuntimeException e) { throw e.asChecked(); } catch(RemoteException e) { // impossible return null; } // TODO: get properties from service return new CameraCharacteristics(new CameraMetadataNative()); return new CameraCharacteristics(info); } /** Loading media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ public class CameraDeviceBinderTest extends AndroidTestCase { } class IsMetadataNotEmpty extends ArgumentMatcher<CameraMetadataNative> { @Override public boolean matches(Object obj) { return !((CameraMetadataNative) obj).isEmpty(); } Loading Loading @@ -272,6 +273,17 @@ public class CameraDeviceBinderTest extends AndroidTestCase { assertNotNull(info.get(CameraCharacteristics.SCALER_AVAILABLE_FORMATS)); } @SmallTest public void testCameraCharacteristics() throws RemoteException { CameraMetadataNative info = new CameraMetadataNative(); int status = mUtils.getCameraService().getCameraCharacteristics(mCameraId, /*out*/info); assertEquals(CameraBinderTestUtils.NO_ERROR, status); assertFalse(info.isEmpty()); assertNotNull(info.get(CameraCharacteristics.SCALER_AVAILABLE_FORMATS)); } @SmallTest public void testWaitUntilIdle() throws Exception { CaptureRequest.Builder builder = createDefaultBuilder(/* needStream */true); Loading Loading
core/java/android/hardware/ICameraService.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.hardware.IProCameraUser; import android.hardware.IProCameraCallbacks; import android.hardware.camera2.ICameraDeviceUser; import android.hardware.camera2.ICameraDeviceCallbacks; import android.hardware.camera2.impl.CameraMetadataNative; import android.hardware.camera2.utils.BinderHolder; import android.hardware.ICameraServiceListener; import android.hardware.CameraInfo; Loading Loading @@ -58,4 +59,6 @@ interface ICameraService int addListener(ICameraServiceListener listener); int removeListener(ICameraServiceListener listener); int getCameraCharacteristics(int cameraId, out CameraMetadataNative info); }
core/java/android/hardware/camera2/CameraManager.java +10 −3 Original line number Diff line number Diff line Loading @@ -176,10 +176,17 @@ public final class CameraManager { } } // TODO: implement and call a service function to get the capabilities on C++ side CameraMetadataNative info = new CameraMetadataNative(); try { mCameraService.getCameraCharacteristics(Integer.valueOf(cameraId), info); } catch(CameraRuntimeException e) { throw e.asChecked(); } catch(RemoteException e) { // impossible return null; } // TODO: get properties from service return new CameraCharacteristics(new CameraMetadataNative()); return new CameraCharacteristics(info); } /** Loading
media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/integration/CameraDeviceBinderTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ public class CameraDeviceBinderTest extends AndroidTestCase { } class IsMetadataNotEmpty extends ArgumentMatcher<CameraMetadataNative> { @Override public boolean matches(Object obj) { return !((CameraMetadataNative) obj).isEmpty(); } Loading Loading @@ -272,6 +273,17 @@ public class CameraDeviceBinderTest extends AndroidTestCase { assertNotNull(info.get(CameraCharacteristics.SCALER_AVAILABLE_FORMATS)); } @SmallTest public void testCameraCharacteristics() throws RemoteException { CameraMetadataNative info = new CameraMetadataNative(); int status = mUtils.getCameraService().getCameraCharacteristics(mCameraId, /*out*/info); assertEquals(CameraBinderTestUtils.NO_ERROR, status); assertFalse(info.isEmpty()); assertNotNull(info.get(CameraCharacteristics.SCALER_AVAILABLE_FORMATS)); } @SmallTest public void testWaitUntilIdle() throws Exception { CaptureRequest.Builder builder = createDefaultBuilder(/* needStream */true); Loading