Merge "Camera2: Legacy: handle FPS range properly" into mnc-dev
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user