am 822ac0ba: Merge "Camera2: Implement CameraManager#getCameraCharacteristics" into klp-dev
* commit '822ac0bada06b2185b4d5e8304160b680a72cff2': Camera2: Implement CameraManager#getCameraCharacteristics
This commit is contained in:
@@ -22,6 +22,7 @@ import android.hardware.IProCameraUser;
|
|||||||
import android.hardware.IProCameraCallbacks;
|
import android.hardware.IProCameraCallbacks;
|
||||||
import android.hardware.camera2.ICameraDeviceUser;
|
import android.hardware.camera2.ICameraDeviceUser;
|
||||||
import android.hardware.camera2.ICameraDeviceCallbacks;
|
import android.hardware.camera2.ICameraDeviceCallbacks;
|
||||||
|
import android.hardware.camera2.impl.CameraMetadataNative;
|
||||||
import android.hardware.camera2.utils.BinderHolder;
|
import android.hardware.camera2.utils.BinderHolder;
|
||||||
import android.hardware.ICameraServiceListener;
|
import android.hardware.ICameraServiceListener;
|
||||||
import android.hardware.CameraInfo;
|
import android.hardware.CameraInfo;
|
||||||
@@ -58,4 +59,6 @@ interface ICameraService
|
|||||||
|
|
||||||
int addListener(ICameraServiceListener listener);
|
int addListener(ICameraServiceListener listener);
|
||||||
int removeListener(ICameraServiceListener listener);
|
int removeListener(ICameraServiceListener listener);
|
||||||
|
|
||||||
|
int getCameraCharacteristics(int cameraId, out CameraMetadataNative info);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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(info);
|
||||||
return new CameraCharacteristics(new CameraMetadataNative());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ public class CameraDeviceBinderTest extends AndroidTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class IsMetadataNotEmpty extends ArgumentMatcher<CameraMetadataNative> {
|
class IsMetadataNotEmpty extends ArgumentMatcher<CameraMetadataNative> {
|
||||||
|
@Override
|
||||||
public boolean matches(Object obj) {
|
public boolean matches(Object obj) {
|
||||||
return !((CameraMetadataNative) obj).isEmpty();
|
return !((CameraMetadataNative) obj).isEmpty();
|
||||||
}
|
}
|
||||||
@@ -272,6 +273,17 @@ public class CameraDeviceBinderTest extends AndroidTestCase {
|
|||||||
assertNotNull(info.get(CameraCharacteristics.SCALER_AVAILABLE_FORMATS));
|
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
|
@SmallTest
|
||||||
public void testWaitUntilIdle() throws Exception {
|
public void testWaitUntilIdle() throws Exception {
|
||||||
CaptureRequest.Builder builder = createDefaultBuilder(/* needStream */true);
|
CaptureRequest.Builder builder = createDefaultBuilder(/* needStream */true);
|
||||||
|
|||||||
Reference in New Issue
Block a user