Adding boolean to determine whether a surface is MultiResolution
Test: Ran through CTS Camera Extensions test cases Bug: 274035443 Change-Id: I07b4a7eb14ea7452f27eb4f4480585df730ba7cd
This commit is contained in:
@@ -36,4 +36,5 @@ parcelable CameraOutputConfig
|
||||
int surfaceGroupId;
|
||||
String physicalCameraId;
|
||||
List<CameraOutputConfig> sharedSurfaceConfigs;
|
||||
boolean isMultiResolutionOutput;
|
||||
}
|
||||
|
||||
@@ -226,6 +226,9 @@ public final class CameraAdvancedExtensionSessionImpl extends CameraExtensionSes
|
||||
OutputConfiguration cameraOutput = new OutputConfiguration(output.surfaceGroupId,
|
||||
outputSurface);
|
||||
|
||||
if (output.isMultiResolutionOutput) {
|
||||
cameraOutput.setMultiResolutionOutput();
|
||||
}
|
||||
if ((output.sharedSurfaceConfigs != null) && !output.sharedSurfaceConfigs.isEmpty()) {
|
||||
cameraOutput.enableSurfaceSharing();
|
||||
for (CameraOutputConfig sharedOutputConfig : output.sharedSurfaceConfigs) {
|
||||
|
||||
@@ -421,7 +421,7 @@ public final class OutputConfiguration implements Parcelable {
|
||||
* call, or no non-negative group ID has been set.
|
||||
* @hide
|
||||
*/
|
||||
void setMultiResolutionOutput() {
|
||||
public void setMultiResolutionOutput() {
|
||||
if (mIsShared) {
|
||||
throw new IllegalStateException("Multi-resolution output flag must not be set for " +
|
||||
"configuration with surface sharing");
|
||||
|
||||
@@ -19,7 +19,6 @@ import android.app.Service;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Camera;
|
||||
import android.graphics.GraphicBuffer;
|
||||
import android.graphics.Rect;
|
||||
import android.hardware.HardwareBuffer;
|
||||
@@ -1855,6 +1854,7 @@ public class CameraExtensionsProxyService extends Service {
|
||||
ret.outputId.id = output.getId();
|
||||
ret.physicalCameraId = output.getPhysicalCameraId();
|
||||
ret.surfaceGroupId = output.getSurfaceGroupId();
|
||||
ret.isMultiResolutionOutput = false;
|
||||
if (output instanceof SurfaceOutputConfigImpl) {
|
||||
SurfaceOutputConfigImpl surfaceConfig = (SurfaceOutputConfigImpl) output;
|
||||
ret.type = CameraOutputConfig.TYPE_SURFACE;
|
||||
@@ -1874,6 +1874,7 @@ public class CameraExtensionsProxyService extends Service {
|
||||
ret.type = CameraOutputConfig.TYPE_MULTIRES_IMAGEREADER;
|
||||
ret.imageFormat = multiResReaderConfig.getImageFormat();
|
||||
ret.capacity = multiResReaderConfig.getMaxImages();
|
||||
ret.isMultiResolutionOutput = true;
|
||||
} else {
|
||||
throw new IllegalStateException("Unknown output config type!");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user