am 990c85d0: am dba1cf3d: Merge "Camera2: Legacy: handle FPS range properly" into mnc-dev

* commit '990c85d0c242cb2c53f0e6e90e14479236ca995b':
  Camera2: Legacy: handle FPS range properly
This commit is contained in:
Yin-Chia Yeh
2015-06-11 21:11:43 +00:00
committed by Android Git Automerger
2 changed files with 14 additions and 11 deletions

View File

@@ -415,8 +415,9 @@ public class LegacyMetadataMapper {
Range<Integer>[] ranges = new Range[rangesSize]; Range<Integer>[] ranges = new Range[rangesSize];
int i = 0; int i = 0;
for (int[] r : fpsRanges) { for (int[] r : fpsRanges) {
ranges[i++] = Range.create(r[Camera.Parameters.PREVIEW_FPS_MIN_INDEX], ranges[i++] = Range.create(
r[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]); (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); m.set(CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, ranges);
} }

View File

@@ -162,17 +162,19 @@ public class LegacyRequestMapper {
if (aeFpsRange != null) { if (aeFpsRange != null) {
int[] legacyFps = convertAeFpsRangeToLegacy(aeFpsRange); int[] legacyFps = convertAeFpsRangeToLegacy(aeFpsRange);
// TODO - Should we enforce that all HAL1 devices must include (30, 30) FPS range? int[] rangeToApply = null;
boolean supported = false;
for(int[] range : params.getSupportedPreviewFpsRange()) { for(int[] range : params.getSupportedPreviewFpsRange()) {
if (legacyFps[0] == range[0] && legacyFps[1] == range[1]) { // Round range up/down to integer FPS value
supported = true; 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; break;
} }
} }
if (supported) { if (rangeToApply != null) {
params.setPreviewFpsRange(legacyFps[Camera.Parameters.PREVIEW_FPS_MIN_INDEX], params.setPreviewFpsRange(rangeToApply[Camera.Parameters.PREVIEW_FPS_MIN_INDEX],
legacyFps[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]); rangeToApply[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]);
} else { } else {
Log.w(TAG, "Unsupported FPS range set [" + legacyFps[0] + "," + legacyFps[1] + "]"); 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) { private static int[] convertAeFpsRangeToLegacy(Range<Integer> fpsRange) {
int[] legacyFps = new int[2]; int[] legacyFps = new int[2];
legacyFps[Parameters.PREVIEW_FPS_MIN_INDEX] = fpsRange.getLower(); legacyFps[Parameters.PREVIEW_FPS_MIN_INDEX] = fpsRange.getLower() * 1000;
legacyFps[Parameters.PREVIEW_FPS_MAX_INDEX] = fpsRange.getUpper(); legacyFps[Parameters.PREVIEW_FPS_MAX_INDEX] = fpsRange.getUpper() * 1000;
return legacyFps; return legacyFps;
} }