diff options
author | Yin-Chia Yeh <yinchiayeh@google.com> | 2015-06-10 10:59:40 -0700 |
---|---|---|
committer | Yin-Chia Yeh <yinchiayeh@google.com> | 2015-06-11 12:57:49 -0700 |
commit | ec743ee9a4b3111056b0ba9d2fa8e11d8c6c51aa (patch) | |
tree | c1586ab104d4f73f60f6beeff581247d11e49dbb /core/java/android/hardware/camera2 | |
parent | d8ffe624b22a289b4f87af84acb05327b7818e53 (diff) | |
download | frameworks_base-ec743ee9a4b3111056b0ba9d2fa8e11d8c6c51aa.zip frameworks_base-ec743ee9a4b3111056b0ba9d2fa8e11d8c6c51aa.tar.gz frameworks_base-ec743ee9a4b3111056b0ba9d2fa8e11d8c6c51aa.tar.bz2 |
Camera2: Legacy: handle FPS range properly
Convert between the FPS range unit of API1 and API2.
Bug: 21754853
Change-Id: I823e533eeac3bf8beb7b975fe296b309300e2b05
Diffstat (limited to 'core/java/android/hardware/camera2')
-rw-r--r-- | core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java | 5 | ||||
-rw-r--r-- | core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java | 20 |
2 files changed, 14 insertions, 11 deletions
diff --git a/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java b/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java index 33a802b..8bdd42a 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java +++ b/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java @@ -415,8 +415,9 @@ public class LegacyMetadataMapper { Range<Integer>[] ranges = new Range[rangesSize]; int i = 0; for (int[] r : fpsRanges) { - ranges[i++] = Range.create(r[Camera.Parameters.PREVIEW_FPS_MIN_INDEX], - r[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]); + ranges[i++] = Range.create( + (int) Math.floor(r[Camera.Parameters.PREVIEW_FPS_MIN_INDEX] / 1000.0), + (int) Math.ceil(r[Camera.Parameters.PREVIEW_FPS_MAX_INDEX] / 1000.0)); } m.set(CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, ranges); } diff --git a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java index d5d7f0d..6a44ac5 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java +++ b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java @@ -162,17 +162,19 @@ public class LegacyRequestMapper { if (aeFpsRange != null) { int[] legacyFps = convertAeFpsRangeToLegacy(aeFpsRange); - // TODO - Should we enforce that all HAL1 devices must include (30, 30) FPS range? - boolean supported = false; + int[] rangeToApply = null; for(int[] range : params.getSupportedPreviewFpsRange()) { - if (legacyFps[0] == range[0] && legacyFps[1] == range[1]) { - supported = true; + // Round range up/down to integer FPS value + int intRangeLow = (int) Math.floor(range[0] / 1000.0) * 1000; + int intRangeHigh = (int) Math.ceil(range[1] / 1000.0) * 1000; + if (legacyFps[0] == intRangeLow && legacyFps[1] == intRangeHigh) { + rangeToApply = range; break; } } - if (supported) { - params.setPreviewFpsRange(legacyFps[Camera.Parameters.PREVIEW_FPS_MIN_INDEX], - legacyFps[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]); + if (rangeToApply != null) { + params.setPreviewFpsRange(rangeToApply[Camera.Parameters.PREVIEW_FPS_MIN_INDEX], + rangeToApply[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]); } else { Log.w(TAG, "Unsupported FPS range set [" + legacyFps[0] + "," + legacyFps[1] + "]"); } @@ -626,8 +628,8 @@ public class LegacyRequestMapper { private static int[] convertAeFpsRangeToLegacy(Range<Integer> fpsRange) { int[] legacyFps = new int[2]; - legacyFps[Parameters.PREVIEW_FPS_MIN_INDEX] = fpsRange.getLower(); - legacyFps[Parameters.PREVIEW_FPS_MAX_INDEX] = fpsRange.getUpper(); + legacyFps[Parameters.PREVIEW_FPS_MIN_INDEX] = fpsRange.getLower() * 1000; + legacyFps[Parameters.PREVIEW_FPS_MAX_INDEX] = fpsRange.getUpper() * 1000; return legacyFps; } |