diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-21 12:36:16 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-21 12:36:16 +0000 |
commit | 3bdc55dc7cbed41af68685a0ab57eaad52644d01 (patch) | |
tree | 57f0811a370694699aefdb26bcee49e91e75aaad | |
parent | 9e75783b078344d8060c8450a7f26c1bd7730204 (diff) | |
parent | 241289d2faacf0a3fd6bf023e594b6aaaa6e104c (diff) | |
download | ex-android13-mainline-go-adservices-release.tar.gz |
Snap for 8626064 from 241289d2faacf0a3fd6bf023e594b6aaaa6e104c to mainline-go-adservices-releaseaml_go_ads_330915100aml_go_ads_330915000aml_go_ads_330913000android13-mainline-go-adservices-release
Change-Id: I3c55e289306f302c6db28f70c2c7d74e3bedfdc9
14 files changed, 112 insertions, 80 deletions
diff --git a/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java b/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java index 1ffd485a..8844461e 100755 --- a/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java +++ b/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java @@ -244,11 +244,11 @@ public final class AutoImageCaptureExtenderImpl implements ImageCaptureExtenderI @Override public List<CaptureRequest.Key> getAvailableCaptureRequestKeys() { - return null; + return new ArrayList<>(); } @Override public List<CaptureResult.Key> getAvailableCaptureResultKeys() { - return null; + return new ArrayList<>(); } } diff --git a/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/BeautyImageCaptureExtenderImpl.java b/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/BeautyImageCaptureExtenderImpl.java index 1cef1732..21a3646a 100755 --- a/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/BeautyImageCaptureExtenderImpl.java +++ b/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/BeautyImageCaptureExtenderImpl.java @@ -267,11 +267,11 @@ public final class BeautyImageCaptureExtenderImpl implements ImageCaptureExtende @Override public List<CaptureRequest.Key> getAvailableCaptureRequestKeys() { - return null; + return new ArrayList<>(); } @Override public List<CaptureResult.Key> getAvailableCaptureResultKeys() { - return null; + return new ArrayList<>(); } } diff --git a/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/NightImageCaptureExtenderImpl.java b/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/NightImageCaptureExtenderImpl.java index 07648923..f27f48e4 100755 --- a/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/NightImageCaptureExtenderImpl.java +++ b/camera2/extensions/sample/src/java/androidx/camera/extensions/impl/NightImageCaptureExtenderImpl.java @@ -244,11 +244,11 @@ public final class NightImageCaptureExtenderImpl implements ImageCaptureExtender @Override public List<CaptureRequest.Key> getAvailableCaptureRequestKeys() { - return null; + return new ArrayList<>(); } @Override public List<CaptureResult.Key> getAvailableCaptureResultKeys() { - return null; + return new ArrayList<>(); } } diff --git a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java index cbee0295..ccb0dacf 100755 --- a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java +++ b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/AutoImageCaptureExtenderImpl.java @@ -112,4 +112,5 @@ public final class AutoImageCaptureExtenderImpl implements ImageCaptureExtenderI public List<CaptureResult.Key> getAvailableCaptureResultKeys() { throw new RuntimeException("Stub, replace with implementation."); } + } diff --git a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/BokehImageCaptureExtenderImpl.java b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/BokehImageCaptureExtenderImpl.java index 39bf7e5d..66c5839d 100644 --- a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/BokehImageCaptureExtenderImpl.java +++ b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/BokehImageCaptureExtenderImpl.java @@ -112,4 +112,5 @@ public final class BokehImageCaptureExtenderImpl implements ImageCaptureExtender public List<CaptureResult.Key> getAvailableCaptureResultKeys() { throw new RuntimeException("Stub, replace with implementation."); } + } diff --git a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/CaptureProcessorImpl.java b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/CaptureProcessorImpl.java index 1c714736..3eee146a 100644 --- a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/CaptureProcessorImpl.java +++ b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/CaptureProcessorImpl.java @@ -16,23 +16,22 @@ package androidx.camera.extensions.impl; +import android.annotation.SuppressLint; import android.graphics.ImageFormat; import android.hardware.camera2.TotalCaptureResult; import android.media.Image; import android.util.Pair; import android.view.Surface; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import java.util.concurrent.Executor; import java.util.Map; +import java.util.concurrent.Executor; /** * The interface for processing a set of {@link Image}s that have captured. * * @since 1.0 */ +@SuppressLint("UnknownNullness") public interface CaptureProcessorImpl extends ProcessorImpl { /** * Process a set images captured that were requested. @@ -57,11 +56,11 @@ public interface CaptureProcessorImpl extends ProcessorImpl { * become invalid after this method completes, so no references to them * should be kept. * @param resultCallback Capture result callback to be called once the capture result - * values are ready. + * values of the processed image are ready. * @param executor The executor to run the callback on. If null then the callback will * run on any arbitrary executor. * @since 1.3 */ void process(Map<Integer, Pair<Image, TotalCaptureResult>> results, - @NonNull ProcessResultImpl resultCallback, @Nullable Executor executor); + ProcessResultImpl resultCallback, Executor executor); } diff --git a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/ImageCaptureExtenderImpl.java b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/ImageCaptureExtenderImpl.java index 2cf120f5..88bd105a 100644 --- a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/ImageCaptureExtenderImpl.java +++ b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/ImageCaptureExtenderImpl.java @@ -16,6 +16,7 @@ package androidx.camera.extensions.impl; +import android.annotation.SuppressLint; import android.graphics.ImageFormat; import android.hardware.camera2.CameraCharacteristics; import android.hardware.camera2.CaptureRequest; @@ -24,8 +25,6 @@ import android.util.Pair; import android.util.Range; import android.util.Size; -import androidx.annotation.Nullable; - import java.util.List; /** @@ -33,6 +32,7 @@ import java.util.List; * * @since 1.0 */ +@SuppressLint("UnknownNullness") public interface ImageCaptureExtenderImpl extends ExtenderStateListener { /** * Indicates whether the extension is supported on the device. @@ -78,10 +78,10 @@ public interface ImageCaptureExtenderImpl extends ExtenderStateListener { * returned list is not null, it will be used to find the best resolutions combination for * the bound use cases. * - * @return the customized supported resolutions. + * @return the customized supported resolutions, or null to support all sizes retrieved from + * {@link android.hardware.camera2.params.StreamConfigurationMap}. * @since 1.1 */ - @Nullable List<Pair<Integer, Size[]>> getSupportedResolutions(); /** @@ -98,8 +98,7 @@ public interface ImageCaptureExtenderImpl extends ExtenderStateListener { * null if no capture latency info can be provided. * @since 1.2 */ - @Nullable - Range<Long> getEstimatedCaptureLatencyRange(@Nullable Size captureOutputSize); + Range<Long> getEstimatedCaptureLatencyRange(Size captureOutputSize); /** * Return a list of orthogonal capture request keys. @@ -109,11 +108,37 @@ public interface ImageCaptureExtenderImpl extends ExtenderStateListener { * * <p>Do note that the list of keys applies to {@link PreviewExtenderImpl} as well.</p> * - * @return List of supported orthogonal capture keys, or - * null if no capture settings are not supported. + * <p>Also note that the keys {@link CaptureRequest#JPEG_QUALITY} and + * {@link CaptureRequest#JPEG_ORIENTATION} are always supported regardless being added in the + * list or not. To support common camera operations like zoom, tap-to-focus, flash and + * exposure compensation, we recommend supporting the following keys if possible. + * <pre> + * zoom: {@link CaptureRequest#CONTROL_ZOOM_RATIO} + * {@link CaptureRequest#SCALER_CROP_REGION} + * tap-to-focus: + * {@link CaptureRequest#CONTROL_AF_MODE} + * {@link CaptureRequest#CONTROL_AF_TRIGGER} + * {@link CaptureRequest#CONTROL_AF_REGIONS} + * {@link CaptureRequest#CONTROL_AE_REGIONS} + * {@link CaptureRequest#CONTROL_AWB_REGIONS} + * flash: + * {@link CaptureRequest#CONTROL_AE_MODE} + * {@link CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER} + * {@link CaptureRequest#FLASH_MODE} + * exposure compensation: + * {@link CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION} + * </pre> + * On basic extensions that implement 1.2 or prior version, the above keys are all supported + * explicitly. When migrating from 1.2 or prior to 1.3, please note that both CameraX and + * Camera2 will honor the returned list and support only the keys contained in it. For + * example, if OEM decides to return only {@link CaptureRequest#CONTROL_ZOOM_RATIO} and + * {@link CaptureRequest#SCALER_CROP_REGION} in the 1.3 implementation, it means only zoom is + * supported for the app while tap-to-focus , flash and exposure compensation are not allowed. + * + * @return List of supported orthogonal capture keys, or an empty list if no capture settings + * are not supported. * @since 1.3 */ - @Nullable List<CaptureRequest.Key> getAvailableCaptureRequestKeys(); /** @@ -129,10 +154,9 @@ public interface ImageCaptureExtenderImpl extends ExtenderStateListener { * * <p>Do note that the list of keys applies to {@link PreviewExtenderImpl} as well.</p> * - * @return List of supported capture result keys, or - * null if capture results are not supported. + * @return List of supported capture result keys, or an empty list if capture results are not + * supported. * @since 1.3 */ - @Nullable List<CaptureResult.Key> getAvailableCaptureResultKeys(); } diff --git a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/PreviewImageProcessorImpl.java b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/PreviewImageProcessorImpl.java index f9a9777d..f203ebad 100644 --- a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/PreviewImageProcessorImpl.java +++ b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/PreviewImageProcessorImpl.java @@ -16,20 +16,20 @@ package androidx.camera.extensions.impl; +import android.annotation.SuppressLint; import android.graphics.ImageFormat; import android.hardware.camera2.TotalCaptureResult; import android.media.Image; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - import java.util.concurrent.Executor; + /** * Processes a single {@link Image} and {@link TotalCaptureResult} to produce an output to a * stream. * * @since 1.0 */ +@SuppressLint("UnknownNullness") public interface PreviewImageProcessorImpl extends ProcessorImpl { /** * Processes the requested image capture. @@ -54,11 +54,11 @@ public interface PreviewImageProcessorImpl extends ProcessorImpl { * kept. * @param result The metadata associated with the image to process. * @param resultCallback Capture result callback to be called once the capture result - * values are ready. + * values of the processed image are ready. * @param executor The executor to run the callback on. If null then the callback will * run on any arbitrary executor. * @since 1.3 */ - void process(Image image, TotalCaptureResult result, @NonNull ProcessResultImpl resultCallback, - @Nullable Executor executor); + void process(Image image, TotalCaptureResult result, ProcessResultImpl resultCallback, + Executor executor); } diff --git a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/ProcessResultImpl.java b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/ProcessResultImpl.java index d4c2014d..d0e3605d 100644 --- a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/ProcessResultImpl.java +++ b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/ProcessResultImpl.java @@ -16,6 +16,7 @@ package androidx.camera.extensions.impl; +import android.annotation.SuppressLint; import android.hardware.camera2.CaptureResult; import android.util.Pair; @@ -26,6 +27,7 @@ import java.util.List; * * @since 1.3 */ +@SuppressLint("UnknownNullness") public interface ProcessResultImpl { /** * Capture result callback that needs to be called when the process capture results are diff --git a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/AdvancedExtenderImpl.java b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/AdvancedExtenderImpl.java index 97c02c83..465bfe88 100644 --- a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/AdvancedExtenderImpl.java +++ b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/AdvancedExtenderImpl.java @@ -23,7 +23,6 @@ import android.hardware.camera2.CaptureResult; import android.util.Range; import android.util.Size; -import androidx.annotation.NonNull; import androidx.camera.extensions.impl.ExtensionVersionImpl; import java.util.List; @@ -128,7 +127,7 @@ public interface AdvancedExtenderImpl { * Returns supported output sizes for Image Analysis (YUV_420_888 format). * * <p>OEM can optionally support a YUV surface for ImageAnalysis along with Preview/ImageCapture - * output surfaces. If imageAnalysis YUV surface is not supported, OEM will return null or + * output surfaces. If imageAnalysis YUV surface is not supported, OEM should return null or * empty list. */ List<Size> getSupportedYuvAnalysisResolutions(String cameraId); @@ -140,23 +139,40 @@ public interface AdvancedExtenderImpl { SessionProcessorImpl createSessionProcessor(); /** - * Return a list of orthogonal capture request keys. + * Returns a list of orthogonal capture request keys. * * <p>Any keys included in the list will be configurable by clients of the extension and will * affect the extension functionality.</p> * - * <p>If supported, then controls 'android.jpeg.quality' and 'android.jpeg.orientation' must - * always be present in the supported list.</p> + * <p>Please note that the keys {@link CaptureRequest#JPEG_QUALITY} and + * {@link CaptureRequest#JPEG_ORIENTATION} are always supported regardless being added in the + * list or not. To support common camera operations like zoom, tap-to-focus, flash and + * exposure compensation, we recommend supporting the following keys if possible. + * <pre> + * zoom: {@link CaptureRequest#CONTROL_ZOOM_RATIO} + * {@link CaptureRequest#SCALER_CROP_REGION} + * tap-to-focus: + * {@link CaptureRequest#CONTROL_AF_MODE} + * {@link CaptureRequest#CONTROL_AF_TRIGGER} + * {@link CaptureRequest#CONTROL_AF_REGIONS} + * {@link CaptureRequest#CONTROL_AE_REGIONS} + * {@link CaptureRequest#CONTROL_AWB_REGIONS} + * flash: + * {@link CaptureRequest#CONTROL_AE_MODE} + * {@link CaptureRequest#CONTROL_AE_PRECAPTURE_TRIGGER} + * {@link CaptureRequest#FLASH_MODE} + * exposure compensation: + * {@link CaptureRequest#CONTROL_AE_EXPOSURE_COMPENSATION} + * </pre> * - * @return List of supported orthogonal capture keys, or - * an empty list if no capture settings are not supported. + * @return List of supported orthogonal capture keys, or an empty list if no capture settings + * are not supported. * @since 1.3 */ - @NonNull List<CaptureRequest.Key> getAvailableCaptureRequestKeys(); /** - * Return a list of supported capture result keys. + * Returns a list of supported capture result keys. * * <p>Any keys included in this list must be available as part of the registered * {@link SessionProcessorImpl.CaptureCallback#onCaptureCompleted} callback.</p> @@ -168,6 +184,5 @@ public interface AdvancedExtenderImpl { * an empty list if capture results are not supported. * @since 1.3 */ - @NonNull List<CaptureResult.Key> getAvailableCaptureResultKeys(); } diff --git a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/Camera2OutputConfigImplBuilder.java b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/Camera2OutputConfigImplBuilder.java index 1298d804..a66d3ceb 100644 --- a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/Camera2OutputConfigImplBuilder.java +++ b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/Camera2OutputConfigImplBuilder.java @@ -17,6 +17,7 @@ package androidx.camera.extensions.impl.advanced; import android.annotation.SuppressLint; +import android.hardware.camera2.params.OutputConfiguration; import android.util.Size; import android.view.Surface; @@ -26,13 +27,12 @@ import java.util.concurrent.atomic.AtomicInteger; /** * A builder implementation to help OEM build the {@link Camera2OutputConfigImpl} instance. - * Implementation will be provided in the stub. */ @SuppressLint("UnknownNullness") public class Camera2OutputConfigImplBuilder { static AtomicInteger sLastId = new AtomicInteger(0); private OutputConfigImplImpl mOutputConfig; - private int mSurfaceGroupId; + private int mSurfaceGroupId = OutputConfiguration.SURFACE_GROUP_ID_NONE; private String mPhysicalCameraId; private List<Camera2OutputConfigImpl> mSurfaceSharingConfigs; diff --git a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/Camera2SessionConfigImplBuilder.java b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/Camera2SessionConfigImplBuilder.java index 6c052d13..a3011666 100644 --- a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/Camera2SessionConfigImplBuilder.java +++ b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/Camera2SessionConfigImplBuilder.java @@ -28,7 +28,6 @@ import java.util.Map; /** * A builder implementation to help OEM build the {@link Camera2SessionConfigImpl} instance. - * Implementation will be provided in the stub. */ @SuppressLint("UnknownNullness") public class Camera2SessionConfigImplBuilder { diff --git a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/RequestProcessorImpl.java b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/RequestProcessorImpl.java index e70ce37f..51853334 100644 --- a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/RequestProcessorImpl.java +++ b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/RequestProcessorImpl.java @@ -26,7 +26,7 @@ import java.util.List; import java.util.Map; /** - * A Interface to execute requests. + * An Interface to execute Camera2 capture requests. */ @SuppressLint("UnknownNullness") public interface RequestProcessorImpl { @@ -38,24 +38,25 @@ public interface RequestProcessorImpl { /** * Submits a request. * @return the id of the capture sequence or -1 in case the processor encounters a fatal error - * or receives and invalid argument. + * or receives an invalid argument. */ int submit(Request request, Callback callback); /** * Submits a list of requests. * @return the id of the capture sequence or -1 in case the processor encounters a fatal error - * or receives and invalid argument. + * or receives an invalid argument. */ int submit(List<Request> requests, Callback callback); /** * Set repeating requests. * @return the id of the capture sequence or -1 in case the processor encounters a fatal error - * or receives and invalid argument. + * or receives an invalid argument. */ int setRepeating(Request request, Callback callback); + /** * Abort captures. */ diff --git a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/SessionProcessorImpl.java b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/SessionProcessorImpl.java index 4ad05d8d..fabfc2bf 100644 --- a/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/SessionProcessorImpl.java +++ b/camera2/extensions/stub/src/main/java/androidx/camera/extensions/impl/advanced/SessionProcessorImpl.java @@ -19,17 +19,18 @@ package androidx.camera.extensions.impl.advanced; import android.annotation.SuppressLint; import android.content.Context; import android.hardware.camera2.CameraCharacteristics; -import android.hardware.camera2.CaptureResult; import android.hardware.camera2.CaptureRequest; +import android.hardware.camera2.CaptureResult; import android.view.Surface; import java.util.Map; /** - * Interface for activating extension sessions. + * Interface for creating Camera2 CameraCaptureSessions with extension enabled based on + * advanced vendor implementation. * * <p><pre> - * The flow of a extension session. + * The flow of a extension session is shown below: * (1) {@link #initSession}: CameraX prepares streams configuration for creating * CameraCaptureSession. Output surfaces for Preview, ImageCapture and ImageAnalysis are passed * in and vendor is responsible for outputting the results to these surfaces. @@ -39,43 +40,41 @@ import java.util.Map; * single requests. * * (3) {@link #startRepeating}: CameraX will call this method to start the repeating request - * after CameraCaptureSession is called. Vendor should start the repeating request by - * {@link RequestProcessorImpl}. Vendor can also update the repeating request at other - * time other than in this method. + * after CameraCaptureSession is called. Vendor should start the repeating request by + * {@link RequestProcessorImpl}. Vendor can also update the repeating request if needed later. * * (4) {@link #setParameters(Map)}: The passed parameters will be attached to the repeating request * and single requests but vendor can choose to apply some of them only. * * (5) {@link #startCapture(CaptureCallback)}: It is called when apps want to * start a multi-frame image capture. {@link CaptureCallback} will be called - * to report the statue and the output image will be written to the capture output surface + * to report the status and the output image will be written to the capture output surface * specified in {@link #initSession}. * * (5) {@link #onCaptureSessionEnd}: It is called right BEFORE CameraCaptureSession.close() is * called. * - * (6) {@link #deInitSession}: called when CameraCaptureSession is destroyed + * (6) {@link #deInitSession}: called when CameraCaptureSession is closed. * </pre> */ @SuppressLint("UnknownNullness") public interface SessionProcessorImpl { /** - * Notify to start the session for the extension. This is where the use case is started and - * would be able to allocate resources here. After onInit() is called, the camera ID, + * Initializes the session for the extension. This is where the OEMs allocate resources for + * preparing a CameraCaptureSession. After initSession() is called, the camera ID, * cameraCharacteristics and context will not change until deInitSession() has been called. * * <p>CameraX specifies the output surface configurations for preview, image capture and image * analysis[optional]. And OEM returns a {@link Camera2SessionConfigImpl} which consists of a * list of {@link Camera2OutputConfigImpl} and session parameters. The - * {@link Camera2SessionConfigImpl} will be used to configure the - * CameraCaptureSession. + * {@link Camera2SessionConfigImpl} will be used to configure the CameraCaptureSession. * * <p>OEM is responsible for outputting correct camera images output to these output surfaces. * OEM can have the following options to enable the output: * <pre> * (1) Add these output surfaces in CameraCaptureSession directly using - * {@link Camera2OutputConfigImplBuilder#newSurfaceConfig(Surface)} }. Processing - * may be done in HAL. + * {@link Camera2OutputConfigImplBuilder#newSurfaceConfig(Surface)} }. Processing is done in + * HAL. * * (2) Use surface sharing with other surface by calling * {@link Camera2OutputConfigImplBuilder#addSurfaceSharingOutputConfig(Camera2OutputConfigImpl)} @@ -86,13 +85,6 @@ public interface SessionProcessorImpl { * {@link Camera2SessionConfigImpl}. * </pre> * - * <p>To ensure the preview, image capture and image analysis are working properly, OEM is - * responsible for setting corresponding {@link Camera2OutputConfigImpl.UsageType} in the - * {@link Camera2OutputConfigImpl}. CameraX will examine if all usage types - * (USAGE_PREVIEW/USAGE_CAPTURE/USAGE_ANALYSIS) can be found in the returned - * {@link Camera2SessionConfigImpl} and throws an {@link IllegalArgumentException} if some - * usage type is not found. - * * <p>{@link Camera2OutputConfigImplBuilder} and {@link Camera2SessionConfigImplBuilder} * implementations are provided in the stub for OEM to construct the * {@link Camera2OutputConfigImpl} and {@link Camera2SessionConfigImpl} instances. @@ -102,8 +94,7 @@ public interface SessionProcessorImpl { * @param imageAnalysisSurfaceConfig an optional output config for image analysis * (YUV_420_888). * @return a {@link Camera2SessionConfigImpl} consisting of a list of - * {@link Camera2OutputConfigImpl} - * and session parameters which will decide the + * {@link Camera2OutputConfigImpl} and session parameters which will decide the * {@link android.hardware.camera2.params.SessionConfiguration} for configuring the * CameraCaptureSession. Please note that the OutputConfiguration list may not be part of any * supported or mandatory stream combination BUT OEM must ensure this list will always @@ -118,10 +109,10 @@ public interface SessionProcessorImpl { OutputSurfaceImpl imageAnalysisSurfaceConfig); /** - * Notify to de-initialize the extension. This callback will be invoked after unbind. After - * onDeInit() was called, it is expected that the camera ID, cameraCharacteristics will - * no longer hold and tear down any resources allocated for this extension. Aborts all pending - * captures. + * Notify to de-initialize the extension. This callback will be invoked after + * CameraCaptureSession is closed. After onDeInit() was called, it is expected that the + * camera ID, cameraCharacteristics will no longer hold and tear down any resources allocated + * for this extension. Aborts all pending captures. */ void deInitSession(); @@ -166,7 +157,7 @@ public interface SessionProcessorImpl { /** * Starts the repeating request after CameraCaptureSession is called. Vendor should start the * repeating request by {@link RequestProcessorImpl}. Vendor can also update the - * repeating request at time other than in this method. + * repeating request when needed later. * * @param callback a callback to report the status. * @return the id of the capture sequence. @@ -175,10 +166,9 @@ public interface SessionProcessorImpl { /** * Stop the repeating request. To prevent OEM from not calling stopRepeating, CameraX will - * first stop repeating of current CameraCaptureSession and call this API to signal OEM that - * all repeating request should stopped and calling - * {@link RequestProcessorImpl#setRepeating(RequestProcessorImpl.Request)} will simply do - * nothing. + * first stop the repeating request of current CameraCaptureSession and call this API to signal + * OEM that the repeating request was stopped and going forward calling + * {@link RequestProcessorImpl#setRepeating} will simply do nothing. */ void stopRepeating(); @@ -198,7 +188,7 @@ public interface SessionProcessorImpl { int startCapture(CaptureCallback callback); /** - * Abort capture tasks. + * Abort all capture tasks. */ void abortCapture(int captureSequenceId); |