summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Zhijun He <zhijunhe@google.com> 2015-06-15 23:52:16 +0000
committer Android Git Automerger <android-git-automerger@android.com> 2015-06-15 23:52:16 +0000
commit2b0c208551a08e7c1ad27e97ec966ab50c655ffb (patch)
tree05bc3d1f6d38e728107260c9c78eb6049ee2776c
parentb9ca0d0ef84003f4c1926dbc0ad74a1c90964454 (diff)
parentd8fcc2e3599ef85514151dfec4c68c38ac89d671 (diff)
am d8fcc2e3: am 5e83c908: am fa4b7fb8: Merge "Camera2: fix Surface cast issue" into mnc-dev
* commit 'd8fcc2e3599ef85514151dfec4c68c38ac89d671': Camera2: fix Surface cast issue
-rw-r--r--core/java/android/hardware/camera2/impl/CameraDeviceImpl.java17
1 files changed, 10 insertions, 7 deletions
diff --git a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
index 8512b239114c..a1ebe6a46fef 100644
--- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
+++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java
@@ -2053,8 +2053,10 @@ public class CameraDeviceImpl extends CameraDevice {
requestMetadata, /*reprocess*/false, CameraCaptureSession.SESSION_ID_NONE);
// Overwrite the capture intent to make sure a good value is set.
- Surface[] surfaces = (Surface[])outputSurfaces.toArray();
- if (outputSurfaces.size() == 1 && SurfaceUtils.isSurfaceForHwVideoEncoder(surfaces[0])) {
+ Iterator<Surface> iterator = outputSurfaces.iterator();
+ Surface firstSurface = iterator.next();
+ Surface secondSurface = null;
+ if (outputSurfaces.size() == 1 && SurfaceUtils.isSurfaceForHwVideoEncoder(firstSurface)) {
singleTargetRequestBuilder.set(CaptureRequest.CONTROL_CAPTURE_INTENT,
CaptureRequest.CONTROL_CAPTURE_INTENT_PREVIEW);
} else {
@@ -2071,19 +2073,20 @@ public class CameraDeviceImpl extends CameraDevice {
requestMetadata, /*reprocess*/false, CameraCaptureSession.SESSION_ID_NONE);
doubleTargetRequestBuilder.set(CaptureRequest.CONTROL_CAPTURE_INTENT,
CaptureRequest.CONTROL_CAPTURE_INTENT_VIDEO_RECORD);
- doubleTargetRequestBuilder.addTarget(surfaces[0]);
- doubleTargetRequestBuilder.addTarget(surfaces[1]);
+ doubleTargetRequestBuilder.addTarget(firstSurface);
+ secondSurface = iterator.next();
+ doubleTargetRequestBuilder.addTarget(secondSurface);
doubleTargetRequestBuilder.setPartOfCHSRequestList(/*partOfCHSList*/true);
// Make sure singleTargetRequestBuilder contains only recording surface for
// preview + recording case.
- Surface recordingSurface = surfaces[0];
+ Surface recordingSurface = firstSurface;
if (!SurfaceUtils.isSurfaceForHwVideoEncoder(recordingSurface)) {
- recordingSurface = surfaces[1];
+ recordingSurface = secondSurface;
}
singleTargetRequestBuilder.addTarget(recordingSurface);
} else {
// Single output case: either recording or preview.
- singleTargetRequestBuilder.addTarget(surfaces[0]);
+ singleTargetRequestBuilder.addTarget(firstSurface);
}
// Generate the final request list.