Merge "Camera: Override enableZsl based on SDK version" into oc-dev

am: 3b41407f19

Change-Id: I8399759e0ba6cf31aaa7fb2330272522b6abdf5c
This commit is contained in:
Chien-Yu Chen
2017-04-17 19:58:03 +00:00
committed by android-build-merger
2 changed files with 24 additions and 2 deletions

View File

@@ -290,7 +290,8 @@ public final class CameraManager {
cameraId,
callback,
handler,
characteristics);
characteristics,
mContext.getApplicationInfo().targetSdkVersion);
ICameraDeviceCallbacks callbacks = deviceImpl.getCallbacks();

View File

@@ -36,6 +36,7 @@ import android.hardware.camera2.params.StreamConfigurationMap;
import android.hardware.camera2.utils.SubmitInfo;
import android.hardware.camera2.utils.SurfaceUtils;
import android.hardware.ICameraService;
import android.os.Build;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
@@ -118,6 +119,8 @@ public class CameraDeviceImpl extends CameraDevice
private CameraCaptureSessionCore mCurrentSession;
private int mNextSessionId = 0;
private final int mAppTargetSdkVersion;
// Runnables for all state transitions, except error, which needs the
// error code argument
@@ -234,7 +237,7 @@ public class CameraDeviceImpl extends CameraDevice
};
public CameraDeviceImpl(String cameraId, StateCallback callback, Handler handler,
CameraCharacteristics characteristics) {
CameraCharacteristics characteristics, int appTargetSdkVersion) {
if (cameraId == null || callback == null || handler == null || characteristics == null) {
throw new IllegalArgumentException("Null argument given");
}
@@ -242,6 +245,7 @@ public class CameraDeviceImpl extends CameraDevice
mDeviceCallback = callback;
mDeviceHandler = handler;
mCharacteristics = characteristics;
mAppTargetSdkVersion = appTargetSdkVersion;
final int MAX_TAG_LEN = 23;
String tag = String.format("CameraDevice-JV-%s", mCameraId);
@@ -671,6 +675,16 @@ public class CameraDeviceImpl extends CameraDevice
}
}
private void overrideEnableZsl(CameraMetadataNative request, boolean newValue) {
Boolean enableZsl = request.get(CaptureRequest.CONTROL_ENABLE_ZSL);
if (enableZsl == null) {
// If enableZsl is not available, don't override.
return;
}
request.set(CaptureRequest.CONTROL_ENABLE_ZSL, newValue);
}
@Override
public CaptureRequest.Builder createCaptureRequest(int templateType)
throws CameraAccessException {
@@ -681,6 +695,13 @@ public class CameraDeviceImpl extends CameraDevice
templatedRequest = mRemoteDevice.createDefaultRequest(templateType);
// If app target SDK is older than O, or it's not a still capture template, enableZsl
// must be false in the default request.
if (mAppTargetSdkVersion < Build.VERSION_CODES.O ||
templateType != TEMPLATE_STILL_CAPTURE) {
overrideEnableZsl(templatedRequest, false);
}
CaptureRequest.Builder builder = new CaptureRequest.Builder(
templatedRequest, /*reprocess*/false, CameraCaptureSession.SESSION_ID_NONE);