summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chien-Yu Chen <cychen@google.com> 2016-02-23 19:52:19 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-02-23 19:52:20 +0000
commitd1733607cd00fde344cd9fb8353eedd40b37f36a (patch)
tree7cd72437d1472979630c30434bd50216b5705af0
parente5bfd2da4d60c90a137a1eb883802c13ae53273e (diff)
parent4a67724da64aa34011d2c487919d2cf6f5805ff7 (diff)
Merge "Camera2: Fix getInternalFormatSizes for depth" into nyc-dev
-rw-r--r--core/java/android/hardware/camera2/params/StreamConfigurationMap.java14
1 files changed, 11 insertions, 3 deletions
diff --git a/core/java/android/hardware/camera2/params/StreamConfigurationMap.java b/core/java/android/hardware/camera2/params/StreamConfigurationMap.java
index 8be49e8f3ccf..6cc7fece2898 100644
--- a/core/java/android/hardware/camera2/params/StreamConfigurationMap.java
+++ b/core/java/android/hardware/camera2/params/StreamConfigurationMap.java
@@ -1269,6 +1269,11 @@ public final class StreamConfigurationMap {
private Size[] getInternalFormatSizes(int format, int dataspace,
boolean output, boolean highRes) {
+ // All depth formats are non-high-res.
+ if (dataspace == HAL_DATASPACE_DEPTH && highRes) {
+ return new Size[0];
+ }
+
SparseIntArray formatsMap =
!output ? mInputFormats :
dataspace == HAL_DATASPACE_DEPTH ? mDepthOutputFormats :
@@ -1287,6 +1292,8 @@ public final class StreamConfigurationMap {
StreamConfiguration[] configurations =
(dataspace == HAL_DATASPACE_DEPTH) ? mDepthConfigurations : mConfigurations;
+ StreamConfigurationDuration[] minFrameDurations =
+ (dataspace == HAL_DATASPACE_DEPTH) ? mDepthMinFrameDurations : mMinFrameDurations;
for (StreamConfiguration config : configurations) {
int fmt = config.getFormat();
@@ -1295,8 +1302,8 @@ public final class StreamConfigurationMap {
// Filter slow high-res output formats; include for
// highRes, remove for !highRes
long duration = 0;
- for (int i = 0; i < mMinFrameDurations.length; i++) {
- StreamConfigurationDuration d = mMinFrameDurations[i];
+ for (int i = 0; i < minFrameDurations.length; i++) {
+ StreamConfigurationDuration d = minFrameDurations[i];
if (d.getFormat() == fmt &&
d.getWidth() == config.getSize().getWidth() &&
d.getHeight() == config.getSize().getHeight()) {
@@ -1304,7 +1311,8 @@ public final class StreamConfigurationMap {
break;
}
}
- if (highRes != (duration > DURATION_20FPS_NS)) {
+ if (dataspace != HAL_DATASPACE_DEPTH &&
+ highRes != (duration > DURATION_20FPS_NS)) {
continue;
}
}