Loading core/java/android/hardware/camera2/extension/IOutputSurfaceConfiguration.aidl 0 → 100644 +26 −0 Original line number Diff line number Diff line /** * Copyright (c) 2022, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.camera2.extension; import android.hardware.camera2.extension.OutputSurface; /** @hide */ interface IOutputSurfaceConfiguration { OutputSurface getPreviewOutputSurface(); OutputSurface getImageCaptureOutputSurface(); OutputSurface getImageAnalysisOutputSurface(); } packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java +47 −6 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ import androidx.camera.extensions.impl.advanced.ImageProcessorImpl; import androidx.camera.extensions.impl.advanced.ImageReaderOutputConfigImpl; import androidx.camera.extensions.impl.advanced.MultiResolutionImageReaderOutputConfigImpl; import androidx.camera.extensions.impl.advanced.NightAdvancedExtenderImpl; import androidx.camera.extensions.impl.advanced.OutputSurfaceConfigurationImpl; import androidx.camera.extensions.impl.advanced.OutputSurfaceImpl; import androidx.camera.extensions.impl.advanced.RequestProcessorImpl; import androidx.camera.extensions.impl.advanced.SessionProcessorImpl; Loading Loading @@ -1165,15 +1166,27 @@ public class CameraExtensionsProxyService extends Service { @Override public CameraSessionConfig initSession(String cameraId, OutputSurface previewSurface, OutputSurface burstSurface) { OutputSurface imageCaptureSurface) { OutputSurfaceImplStub outputPreviewSurfaceImpl = new OutputSurfaceImplStub(previewSurface); OutputSurfaceImplStub outputBurstSurfaceImpl = new OutputSurfaceImplStub(burstSurface); OutputSurfaceImplStub outputImageCaptureSurfaceImpl = new OutputSurfaceImplStub(imageCaptureSurface); Camera2SessionConfigImpl sessionConfig = mSessionProcessor.initSession(cameraId, Camera2SessionConfigImpl sessionConfig; if (LATENCY_IMPROVEMENTS_SUPPORTED) { OutputSurfaceConfigurationImplStub outputSurfaceConfigs = new OutputSurfaceConfigurationImplStub(outputPreviewSurfaceImpl, // Image Analysis Output is currently only supported in CameraX outputImageCaptureSurfaceImpl, null /*imageAnalysisSurfaceConfig*/); sessionConfig = mSessionProcessor.initSession(cameraId, mCharacteristicsHashMap, getApplicationContext(), outputSurfaceConfigs); } else { sessionConfig = mSessionProcessor.initSession(cameraId, mCharacteristicsHashMap, getApplicationContext(), outputPreviewSurfaceImpl, outputBurstSurfaceImpl, null /*imageAnalysisSurfaceConfig*/); outputImageCaptureSurfaceImpl, null /*imageAnalysisSurfaceConfig*/); } List<Camera2OutputConfigImpl> outputConfigs = sessionConfig.getOutputConfigs(); CameraSessionConfig ret = new CameraSessionConfig(); Loading Loading @@ -1255,6 +1268,34 @@ public class CameraExtensionsProxyService extends Service { } } private class OutputSurfaceConfigurationImplStub implements OutputSurfaceConfigurationImpl { private OutputSurfaceImpl mOutputPreviewSurfaceImpl; private OutputSurfaceImpl mOutputImageCaptureSurfaceImpl; private OutputSurfaceImpl mOutputImageAnalysisSurfaceImpl; public OutputSurfaceConfigurationImplStub(OutputSurfaceImpl previewOutput, OutputSurfaceImpl imageCaptureOutput, OutputSurfaceImpl imageAnalysisOutput) { mOutputPreviewSurfaceImpl = previewOutput; mOutputImageCaptureSurfaceImpl = imageCaptureOutput; mOutputImageAnalysisSurfaceImpl = imageAnalysisOutput; } @Override public OutputSurfaceImpl getPreviewOutputSurface() { return mOutputPreviewSurfaceImpl; } @Override public OutputSurfaceImpl getImageCaptureOutputSurface() { return mOutputImageCaptureSurfaceImpl; } @Override public OutputSurfaceImpl getImageAnalysisOutputSurface() { return mOutputImageAnalysisSurfaceImpl; } } private class OutputSurfaceImplStub implements OutputSurfaceImpl { private final Surface mSurface; private final Size mSize; Loading Loading
core/java/android/hardware/camera2/extension/IOutputSurfaceConfiguration.aidl 0 → 100644 +26 −0 Original line number Diff line number Diff line /** * Copyright (c) 2022, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.hardware.camera2.extension; import android.hardware.camera2.extension.OutputSurface; /** @hide */ interface IOutputSurfaceConfiguration { OutputSurface getPreviewOutputSurface(); OutputSurface getImageCaptureOutputSurface(); OutputSurface getImageAnalysisOutputSurface(); }
packages/services/CameraExtensionsProxy/src/com/android/cameraextensions/CameraExtensionsProxyService.java +47 −6 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ import androidx.camera.extensions.impl.advanced.ImageProcessorImpl; import androidx.camera.extensions.impl.advanced.ImageReaderOutputConfigImpl; import androidx.camera.extensions.impl.advanced.MultiResolutionImageReaderOutputConfigImpl; import androidx.camera.extensions.impl.advanced.NightAdvancedExtenderImpl; import androidx.camera.extensions.impl.advanced.OutputSurfaceConfigurationImpl; import androidx.camera.extensions.impl.advanced.OutputSurfaceImpl; import androidx.camera.extensions.impl.advanced.RequestProcessorImpl; import androidx.camera.extensions.impl.advanced.SessionProcessorImpl; Loading Loading @@ -1165,15 +1166,27 @@ public class CameraExtensionsProxyService extends Service { @Override public CameraSessionConfig initSession(String cameraId, OutputSurface previewSurface, OutputSurface burstSurface) { OutputSurface imageCaptureSurface) { OutputSurfaceImplStub outputPreviewSurfaceImpl = new OutputSurfaceImplStub(previewSurface); OutputSurfaceImplStub outputBurstSurfaceImpl = new OutputSurfaceImplStub(burstSurface); OutputSurfaceImplStub outputImageCaptureSurfaceImpl = new OutputSurfaceImplStub(imageCaptureSurface); Camera2SessionConfigImpl sessionConfig = mSessionProcessor.initSession(cameraId, Camera2SessionConfigImpl sessionConfig; if (LATENCY_IMPROVEMENTS_SUPPORTED) { OutputSurfaceConfigurationImplStub outputSurfaceConfigs = new OutputSurfaceConfigurationImplStub(outputPreviewSurfaceImpl, // Image Analysis Output is currently only supported in CameraX outputImageCaptureSurfaceImpl, null /*imageAnalysisSurfaceConfig*/); sessionConfig = mSessionProcessor.initSession(cameraId, mCharacteristicsHashMap, getApplicationContext(), outputSurfaceConfigs); } else { sessionConfig = mSessionProcessor.initSession(cameraId, mCharacteristicsHashMap, getApplicationContext(), outputPreviewSurfaceImpl, outputBurstSurfaceImpl, null /*imageAnalysisSurfaceConfig*/); outputImageCaptureSurfaceImpl, null /*imageAnalysisSurfaceConfig*/); } List<Camera2OutputConfigImpl> outputConfigs = sessionConfig.getOutputConfigs(); CameraSessionConfig ret = new CameraSessionConfig(); Loading Loading @@ -1255,6 +1268,34 @@ public class CameraExtensionsProxyService extends Service { } } private class OutputSurfaceConfigurationImplStub implements OutputSurfaceConfigurationImpl { private OutputSurfaceImpl mOutputPreviewSurfaceImpl; private OutputSurfaceImpl mOutputImageCaptureSurfaceImpl; private OutputSurfaceImpl mOutputImageAnalysisSurfaceImpl; public OutputSurfaceConfigurationImplStub(OutputSurfaceImpl previewOutput, OutputSurfaceImpl imageCaptureOutput, OutputSurfaceImpl imageAnalysisOutput) { mOutputPreviewSurfaceImpl = previewOutput; mOutputImageCaptureSurfaceImpl = imageCaptureOutput; mOutputImageAnalysisSurfaceImpl = imageAnalysisOutput; } @Override public OutputSurfaceImpl getPreviewOutputSurface() { return mOutputPreviewSurfaceImpl; } @Override public OutputSurfaceImpl getImageCaptureOutputSurface() { return mOutputImageCaptureSurfaceImpl; } @Override public OutputSurfaceImpl getImageAnalysisOutputSurface() { return mOutputImageAnalysisSurfaceImpl; } } private class OutputSurfaceImplStub implements OutputSurfaceImpl { private final Surface mSurface; private final Size mSize; Loading