Merge "Adding boolean to determine whether a surface is MultiResolution" into tm-qpr-dev

This commit is contained in:
Scott Wiest
2023-03-21 01:11:39 +00:00
committed by Android (Google) Code Review
4 changed files with 7 additions and 2 deletions

View File

@@ -36,4 +36,5 @@ parcelable CameraOutputConfig
int surfaceGroupId; int surfaceGroupId;
String physicalCameraId; String physicalCameraId;
List<CameraOutputConfig> sharedSurfaceConfigs; List<CameraOutputConfig> sharedSurfaceConfigs;
boolean isMultiResolutionOutput;
} }

View File

@@ -226,6 +226,9 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
OutputConfiguration cameraOutput = new OutputConfiguration(output.surfaceGroupId, OutputConfiguration cameraOutput = new OutputConfiguration(output.surfaceGroupId,
outputSurface); outputSurface);
if (output.isMultiResolutionOutput) {
cameraOutput.setMultiResolutionOutput();
}
if ((output.sharedSurfaceConfigs != null) && !output.sharedSurfaceConfigs.isEmpty()) { if ((output.sharedSurfaceConfigs != null) && !output.sharedSurfaceConfigs.isEmpty()) {
cameraOutput.enableSurfaceSharing(); cameraOutput.enableSurfaceSharing();
for (CameraOutputConfig sharedOutputConfig : output.sharedSurfaceConfigs) { for (CameraOutputConfig sharedOutputConfig : output.sharedSurfaceConfigs) {

View File

@@ -421,7 +421,7 @@ public final class OutputConfiguration implements Parcelable {
* call, or no non-negative group ID has been set. * call, or no non-negative group ID has been set.
* @hide * @hide
*/ */
void setMultiResolutionOutput() { public void setMultiResolutionOutput() {
if (mIsShared) { if (mIsShared) {
throw new IllegalStateException("Multi-resolution output flag must not be set for " + throw new IllegalStateException("Multi-resolution output flag must not be set for " +
"configuration with surface sharing"); "configuration with surface sharing");

View File

@@ -19,7 +19,6 @@ import android.app.Service;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.Camera;
import android.graphics.GraphicBuffer; import android.graphics.GraphicBuffer;
import android.graphics.Rect; import android.graphics.Rect;
import android.hardware.HardwareBuffer; import android.hardware.HardwareBuffer;
@@ -1855,6 +1854,7 @@ public class CameraExtensionsProxyService extends Service {
ret.outputId.id = output.getId(); ret.outputId.id = output.getId();
ret.physicalCameraId = output.getPhysicalCameraId(); ret.physicalCameraId = output.getPhysicalCameraId();
ret.surfaceGroupId = output.getSurfaceGroupId(); ret.surfaceGroupId = output.getSurfaceGroupId();
ret.isMultiResolutionOutput = false;
if (output instanceof SurfaceOutputConfigImpl) { if (output instanceof SurfaceOutputConfigImpl) {
SurfaceOutputConfigImpl surfaceConfig = (SurfaceOutputConfigImpl) output; SurfaceOutputConfigImpl surfaceConfig = (SurfaceOutputConfigImpl) output;
ret.type = CameraOutputConfig.TYPE_SURFACE; ret.type = CameraOutputConfig.TYPE_SURFACE;
@@ -1874,6 +1874,7 @@ public class CameraExtensionsProxyService extends Service {
ret.type = CameraOutputConfig.TYPE_MULTIRES_IMAGEREADER; ret.type = CameraOutputConfig.TYPE_MULTIRES_IMAGEREADER;
ret.imageFormat = multiResReaderConfig.getImageFormat(); ret.imageFormat = multiResReaderConfig.getImageFormat();
ret.capacity = multiResReaderConfig.getMaxImages(); ret.capacity = multiResReaderConfig.getMaxImages();
ret.isMultiResolutionOutput = true;
} else { } else {
throw new IllegalStateException("Unknown output config type!"); throw new IllegalStateException("Unknown output config type!");
} }