summaryrefslogtreecommitdiff
path: root/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java
diff options
context:
space:
mode:
Diffstat (limited to 'apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java')
-rw-r--r--apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java b/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java
index c56eeb8df6b..11e1cfe60f4 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/camera/its/ItsService.java
@@ -944,6 +944,11 @@ public class ItsService extends Service implements SensorEventListener {
} else if ("getSupportedExtensions".equals(cmdObj.getString("cmdName"))) {
String cameraId = cmdObj.getString("cameraId");
doGetSupportedExtensions(cameraId);
+ } else if ("getSupportedExtensionSizes".equals(cmdObj.getString("cmdName"))) {
+ String cameraId = cmdObj.getString("cameraId");
+ int extension = cmdObj.getInt("extension");
+ int format = cmdObj.getInt("format");
+ doGetSupportedExtensionSizes(cameraId, extension, format);
} else if ("doBasicRecording".equals(cmdObj.getString("cmdName"))) {
String cameraId = cmdObj.getString("cameraId");
int profileId = cmdObj.getInt("profileId");
@@ -2362,6 +2367,23 @@ public class ItsService extends Service implements SensorEventListener {
}
}
+ private void doGetSupportedExtensionSizes(
+ String id, int extension, int format) throws ItsException {
+ try {
+ CameraExtensionCharacteristics chars =
+ mCameraManager.getCameraExtensionCharacteristics(id);
+ List<Size> extensionSizes = chars.getExtensionSupportedSizes(extension, format);
+ String response = extensionSizes.stream()
+ .distinct()
+ .sorted(Comparator.comparingInt(s -> s.getWidth() * s.getHeight()))
+ .map(Size::toString)
+ .collect(Collectors.joining(";"));
+ mSocketRunnableObj.sendResponse("supportedExtensionSizes", response);
+ } catch (CameraAccessException e) {
+ throw new ItsException("Failed to get supported extensions sizes list", e);
+ }
+ }
+
private class MediaCodecListener extends MediaCodec.Callback {
private final MediaMuxer mMediaMuxer;
private final Object mCondition;