From b6eb52ffc51cec78c3adc2e5b25c4c3214344983 Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Thu, 16 Apr 2015 16:39:45 -0700 Subject: Camera2: Fix auto-gen documentation crossreferences. Also update a few outdated notes. Bug: 20085848 Change-Id: I1aace2152ee937c6c6a4701af999722fdc2e3da7 --- .../hardware/camera2/CameraCharacteristics.java | 122 ++++++++++----------- .../android/hardware/camera2/CameraMetadata.java | 82 +++++++------- .../android/hardware/camera2/CaptureRequest.java | 26 ++--- .../android/hardware/camera2/CaptureResult.java | 37 +++---- 4 files changed, 129 insertions(+), 138 deletions(-) (limited to 'core') diff --git a/core/java/android/hardware/camera2/CameraCharacteristics.java b/core/java/android/hardware/camera2/CameraCharacteristics.java index 341fb18..19e821c 100644 --- a/core/java/android/hardware/camera2/CameraCharacteristics.java +++ b/core/java/android/hardware/camera2/CameraCharacteristics.java @@ -603,10 +603,9 @@ public final class CameraCharacteristics extends CameraMetadataList of available high speed video size and fps range configurations * supported by the camera device, in the format of (width, height, fps_min, fps_max).

- *

When HIGH_SPEED_VIDEO is supported in {@link CameraCharacteristics#CONTROL_AVAILABLE_SCENE_MODES android.control.availableSceneModes}, - * this metadata will list the supported high speed video size and fps range - * configurations. All the sizes listed in this configuration will be a subset - * of the sizes reported by StreamConfigurationMap#getOutputSizes for processed + *

When HIGH_SPEED_VIDEO is supported in {@link CameraCharacteristics#CONTROL_AVAILABLE_SCENE_MODES android.control.availableSceneModes}, this metadata + * will list the supported high speed video size and fps range configurations. All the sizes + * listed in this configuration will be a subset of the sizes reported by {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes } for processed * non-stalling formats.

*

For the high speed video use case, where the application will set * {@link CaptureRequest#CONTROL_SCENE_MODE android.control.sceneMode} to HIGH_SPEED_VIDEO in capture requests, the application must @@ -1116,11 +1115,12 @@ public final class CameraCharacteristics extends CameraMetadata *

*

Range of valid values:

*

For processed (and stalling) format streams, >= 1.

@@ -1148,10 +1148,9 @@ public final class CameraCharacteristics extends CameraMetadataRAW and supported format provided by {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap}.

*

In particular, a RAW format is typically one of:

*
    - *
  • ImageFormat#RAW_SENSOR
  • - *
  • ImageFormat#RAW10
  • - *
  • ImageFormat#RAW12
  • - *
  • Opaque RAW
  • + *
  • {@link android.graphics.ImageFormat#RAW_SENSOR RAW_SENSOR}
  • + *
  • {@link android.graphics.ImageFormat#RAW10 RAW10}
  • + *
  • {@link android.graphics.ImageFormat#RAW12 RAW12}
  • *
*

LEGACY mode devices ({@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL android.info.supportedHardwareLevel} == LEGACY) * never support raw streams.

@@ -1180,13 +1179,13 @@ public final class CameraCharacteristics extends CameraMetadataProcessed (but not-stalling) is defined as any non-RAW format without a stall duration. * Typically:

*
    - *
  • ImageFormat#YUV_420_888
  • - *
  • ImageFormat#NV21
  • - *
  • ImageFormat#YV12
  • - *
  • Implementation-defined formats, i.e. StreamConfiguration#isOutputSupportedFor(Class)
  • + *
  • {@link android.graphics.ImageFormat#YUV_420_888 YUV_420_888}
  • + *
  • {@link android.graphics.ImageFormat#NV21 NV21}
  • + *
  • {@link android.graphics.ImageFormat#YV12 YV12}
  • + *
  • Implementation-defined formats, i.e. {@link android.hardware.camera2.params.StreamConfigurationMap#isOutputSupportedFor(Class) }
  • *
- *

For full guarantees, query StreamConfigurationMap#getOutputStallDuration with - * a processed format -- it will return 0 for a non-stalling stream.

+ *

For full guarantees, query {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration } with a + * processed format -- it will return 0 for a non-stalling stream.

*

LEGACY devices will support at least 2 processing/non-stalling streams.

*

Range of valid values:

*

>= 3 @@ -1212,10 +1211,11 @@ public final class CameraCharacteristics extends CameraMetadataRAW and supported format provided by {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap}.

- *

A processed and stalling format is defined as any non-RAW format with a stallDurations > 0. - * Typically only the JPEG format (ImageFormat#JPEG) is a stalling format.

- *

For full guarantees, query StreamConfigurationMap#getOutputStallDuration with - * a processed format -- it will return a non-0 value for a stalling stream.

+ *

A processed and stalling format is defined as any non-RAW format with a stallDurations + * > 0. Typically only the {@link android.graphics.ImageFormat#JPEG JPEG format} is a + * stalling format.

+ *

For full guarantees, query {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration } with a + * processed format -- it will return a non-0 value for a stalling stream.

*

LEGACY devices will support up to 1 processing/stalling stream.

*

Range of valid values:

*

>= 1

@@ -1232,10 +1232,9 @@ public final class CameraCharacteristics extends CameraMetadataThe maximum numbers of any type of input streams * that can be configured and used simultaneously by a camera device.

*

When set to 0, it means no input stream is supported.

- *

The image format for a input stream can be any supported - * format returned by StreamConfigurationMap#getInputFormats. When using an - * input stream, there must be at least one output stream - * configured to to receive the reprocessed images.

+ *

The image format for a input stream can be any supported format returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputFormats }. When using an + * input stream, there must be at least one output stream configured to to receive the + * reprocessed images.

*

When an input stream and some output streams are used in a reprocessing request, * only the input buffer will be used to produce these output stream buffers, and a * new sensor image will not be captured.

@@ -1352,7 +1351,7 @@ public final class CameraCharacteristics extends CameraMetadataA list of all keys that the camera device has available - * to use with CaptureRequest.

+ * to use with {@link android.hardware.camera2.CaptureRequest }.

*

Attempting to set a key into a CaptureRequest that is not * listed here will result in an invalid request and will be rejected * by the camera device.

@@ -1370,7 +1369,7 @@ public final class CameraCharacteristics extends CameraMetadataA list of all keys that the camera device has available - * to use with CaptureResult.

+ * to use with {@link android.hardware.camera2.CaptureResult }.

*

Attempting to get a key from a CaptureResult that is not * listed here will always return a null value. Getting a key from * a CaptureResult that is listed here will generally never return a null @@ -1396,7 +1395,7 @@ public final class CameraCharacteristics extends CameraMetadataA list of all keys that the camera device has available - * to use with CameraCharacteristics.

+ * to use with {@link android.hardware.camera2.CameraCharacteristics }.

*

This entry follows the same rules as * android.request.availableResultKeys (except that it applies for * CameraCharacteristics instead of CaptureResult). See above for more @@ -1535,34 +1534,31 @@ public final class CameraCharacteristics extends CameraMetadata * * - * PRIVATE (ImageFormat#PRIVATE) - * JPEG + * {@link android.graphics.ImageFormat#PRIVATE } + * {@link android.graphics.ImageFormat#JPEG } * OPAQUE_REPROCESSING * * - * PRIVATE - * YUV_420_888 + * {@link android.graphics.ImageFormat#PRIVATE } + * {@link android.graphics.ImageFormat#YUV_420_888 } * OPAQUE_REPROCESSING * * - * YUV_420_888 - * JPEG + * {@link android.graphics.ImageFormat#YUV_420_888 } + * {@link android.graphics.ImageFormat#JPEG } * YUV_REPROCESSING * * - * YUV_420_888 - * YUV_420_888 + * {@link android.graphics.ImageFormat#YUV_420_888 } + * {@link android.graphics.ImageFormat#YUV_420_888 } * YUV_REPROCESSING * * * - *

PRIVATE refers to a device-internal format that is not directly application-visible. - * A PRIVATE input surface can be acquired by - * ImageReader.newOpaqueInstance(width, height, maxImages). - * For a OPAQUE_REPROCESSING-capable camera device, using the PRIVATE format - * as either input or output will never hurt maximum frame rate (i.e. - * StreamConfigurationMap#getOutputStallDuration(format, size) is always 0), - * where format is ImageFormat#PRIVATE.

+ *

PRIVATE refers to a device-internal format that is not directly application-visible. A + * PRIVATE input surface can be acquired by {@link android.media.ImageReader#newOpaqueInstance }.

+ *

For a OPAQUE_REPROCESSING-capable camera device, using the PRIVATE format as either input + * or output will never hurt maximum frame rate (i.e. {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration getOutputStallDuration(ImageFormat.PRIVATE, size)} is always 0),

*

Attempting to configure an input stream with output streams not * listed as available in this map is not valid.

*

Optional - This value may be {@code null} on some devices.

@@ -1680,7 +1676,7 @@ public final class CameraCharacteristics extends CameraMetadata *

(Keep in sync with - * StreamConfigurationMap#getOutputMinFrameDuration)

+ * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration })

*

Units: (format, width, height, ns) x n

*

This key is available on all devices.

* @@ -1734,12 +1730,13 @@ public final class CameraCharacteristics extends CameraMetadata *

The following formats may always have a stall duration:

*
    - *
  • ImageFormat#JPEG
  • - *
  • ImageFormat#RAW_SENSOR
  • + *
  • {@link android.graphics.ImageFormat#JPEG }
  • + *
  • {@link android.graphics.ImageFormat#RAW_SENSOR }
  • *
*

The following formats will never have a stall duration:

*
    - *
  • ImageFormat#YUV_420_888
  • + *
  • {@link android.graphics.ImageFormat#YUV_420_888 }
  • + *
  • {@link android.graphics.ImageFormat#RAW10 }
  • *
*

All other formats may or may not have an allowed stall duration on * a per-capability basis; refer to {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} @@ -1747,7 +1744,7 @@ public final class CameraCharacteristics extends CameraMetadataSee {@link CaptureRequest#SENSOR_FRAME_DURATION android.sensor.frameDuration} for more information about * calculating the max frame rate (absent stalls).

*

(Keep up to date with - * StreamConfigurationMap#getOutputStallDuration(int, Size) )

+ * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration } )

*

Units: (format, width, height, ns) x n

*

This key is available on all devices.

* @@ -1786,57 +1783,57 @@ public final class CameraCharacteristics extends CameraMetadata * * - * JPEG + * {@link android.graphics.ImageFormat#JPEG } * {@link CameraCharacteristics#SENSOR_INFO_ACTIVE_ARRAY_SIZE android.sensor.info.activeArraySize} * Any * * * - * JPEG + * {@link android.graphics.ImageFormat#JPEG } * 1920x1080 (1080p) * Any * if 1080p <= activeArraySize * * - * JPEG + * {@link android.graphics.ImageFormat#JPEG } * 1280x720 (720) * Any * if 720p <= activeArraySize * * - * JPEG + * {@link android.graphics.ImageFormat#JPEG } * 640x480 (480p) * Any * if 480p <= activeArraySize * * - * JPEG + * {@link android.graphics.ImageFormat#JPEG } * 320x240 (240p) * Any * if 240p <= activeArraySize * * - * YUV_420_888 + * {@link android.graphics.ImageFormat#YUV_420_888 } * all output sizes available for JPEG * FULL * * * - * YUV_420_888 + * {@link android.graphics.ImageFormat#YUV_420_888 } * all output sizes available for JPEG, up to the maximum video size * LIMITED * * * - * IMPLEMENTATION_DEFINED + * {@link android.graphics.ImageFormat#PRIVATE } * same as YUV_420_888 * Any * * * * - *

Refer to {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} for additional - * mandatory stream configurations on a per-capability basis.

+ *

Refer to {@link CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES android.request.availableCapabilities} and {@link android.hardware.camera2.CameraDevice#createCaptureSession } for additional mandatory + * stream configurations on a per-capability basis.

*

This key is available on all devices.

* * @see CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL @@ -1973,8 +1970,8 @@ public final class CameraCharacteristics extends CameraMetadataAttempting to use frame durations beyond the maximum will result in the frame * duration being clipped to the maximum. See that control for a full definition of frame * durations.

- *

Refer to StreamConfigurationMap#getOutputMinFrameDuration(int,Size) for the minimum - * frame duration values.

+ *

Refer to {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration } + * for the minimum frame duration values.

*

Units: Nanoseconds

*

Range of valid values:
* For FULL capability devices @@ -2707,8 +2704,7 @@ public final class CameraCharacteristics extends CameraMetadataSee {@link CaptureRequest#SENSOR_FRAME_DURATION android.sensor.frameDuration} and * android.scaler.availableStallDurations for more details about * calculating the max frame rate.

- *

(Keep in sync with - * StreamConfigurationMap#getOutputMinFrameDuration)

+ *

(Keep in sync with {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration })

*

Units: (format, width, height, ns) x n

*

Optional - This value may be {@code null} on some devices.

*

Limited capability - diff --git a/core/java/android/hardware/camera2/CameraMetadata.java b/core/java/android/hardware/camera2/CameraMetadata.java index 2d9f61d..ca9439b 100644 --- a/core/java/android/hardware/camera2/CameraMetadata.java +++ b/core/java/android/hardware/camera2/CameraMetadata.java @@ -461,19 +461,17 @@ public abstract class CameraMetadata { *

The camera device supports the Zero Shutter Lag reprocessing use case.

*
    *
  • One input stream is supported, that is, {@link CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS android.request.maxNumInputStreams} == 1.
  • - *
  • ImageFormat#PRIVATE is supported as an output/input format, that is, - * ImageFormat#PRIVATE is included in the lists of formats returned by - * StreamConfigurationMap#getInputFormats and - * StreamConfigurationMap#getOutputFormats.
  • - *
  • StreamConfigurationMap#getValidOutputFormatsForInput returns non empty int[] for - * each supported input format returned by StreamConfigurationMap#getInputFormats.
  • - *
  • Each size returned by StreamConfigurationMap#getInputSizes(ImageFormat#PRIVATE) - * is also included in StreamConfigurationMap#getOutputSizes(ImageFormat#PRIVATE)
  • - *
  • Using ImageFormat#PRIVATE does not cause a frame rate drop - * relative to the sensor's maximum capture rate (at that - * resolution).
  • - *
  • ImageFormat#PRIVATE will be reprocessable into both YUV_420_888 - * and JPEG formats.
  • + *
  • {@link android.graphics.ImageFormat#PRIVATE } is supported as an output/input format, + * that is, {@link android.graphics.ImageFormat#PRIVATE } is included in the lists of + * formats returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputFormats } and {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputFormats }.
  • + *
  • {@link android.hardware.camera2.params.StreamConfigurationMap#getValidOutputFormatsForInput } + * returns non empty int[] for each supported input format returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputFormats }.
  • + *
  • Each size returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputSizes getInputSizes(ImageFormat.PRIVATE)} is also included in {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes getOutputSizes(ImageFormat.PRIVATE)}
  • + *
  • Using {@link android.graphics.ImageFormat#PRIVATE } does not cause a frame rate drop + * relative to the sensor's maximum capture rate (at that resolution).
  • + *
  • {@link android.graphics.ImageFormat#PRIVATE } will be reprocessable into both + * {@link android.graphics.ImageFormat#YUV_420_888 } and + * {@link android.graphics.ImageFormat#JPEG } formats.
  • *
  • The maximum available resolution for OPAQUE streams * (both input/output) will match the maximum available * resolution of JPEG streams.
  • @@ -571,26 +569,25 @@ public abstract class CameraMetadata { * following:

    *
      *
    • One input stream is supported, that is, {@link CameraCharacteristics#REQUEST_MAX_NUM_INPUT_STREAMS android.request.maxNumInputStreams} == 1.
    • - *
    • YUV_420_888 is supported as an output/input format, that is, + *
    • {@link android.graphics.ImageFormat#YUV_420_888 } is supported as an output/input format, that is, * YUV_420_888 is included in the lists of formats returned by - * StreamConfigurationMap#getInputFormats and - * StreamConfigurationMap#getOutputFormats.
    • - *
    • StreamConfigurationMap#getValidOutputFormatsForInput returns non empty int[] for - * each supported input format returned by StreamConfigurationMap#getInputFormats.
    • - *
    • Each size returned by StreamConfigurationMap#getInputSizes(YUV_420_888) - * is also included in StreamConfigurationMap#getOutputSizes(YUV_420_888)
    • - *
    • Using YUV_420_888 does not cause a frame rate drop + * {@link android.hardware.camera2.params.StreamConfigurationMap#getInputFormats } and + * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputFormats }.
    • + *
    • {@link android.hardware.camera2.params.StreamConfigurationMap#getValidOutputFormatsForInput } + * returns non-empty int[] for each supported input format returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputFormats }.
    • + *
    • Each size returned by {@link android.hardware.camera2.params.StreamConfigurationMap#getInputSizes getInputSizes(YUV_420_888)} is also included in {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputSizes getOutputSizes(YUV_420_888)}
    • + *
    • Using {@link android.graphics.ImageFormat#YUV_420_888 } does not cause a frame rate drop * relative to the sensor's maximum capture rate (at that resolution).
    • - *
    • YUV_420_888 will be reprocessable into both YUV_420_888 - * and JPEG formats.
    • - *
    • The maximum available resolution for YUV_420_888 streams - * (both input/output) will match the maximum available - * resolution of JPEG streams.
    • + *
    • {@link android.graphics.ImageFormat#YUV_420_888 } will be reprocessable into both + * {@link android.graphics.ImageFormat#YUV_420_888 } and {@link android.graphics.ImageFormat#JPEG } formats.
    • + *
    • The maximum available resolution for {@link android.graphics.ImageFormat#YUV_420_888 } streams (both input/output) will match the + * maximum available resolution of {@link android.graphics.ImageFormat#JPEG } streams.
    • *
    • Static metadata {@link CameraCharacteristics#REPROCESS_MAX_CAPTURE_STALL android.reprocess.maxCaptureStall}.
    • - *
    • Only the below controls are effective for reprocessing requests and will be - * present in capture results. The reprocess requests are from the original capture - * results that are assocaited with the intermidate YUV_420_888 output buffers. - * All other controls in the reprocess requests will be ignored by the camera device.
        + *
      • Only the below controls are effective for reprocessing requests and will be present + * in capture results. The reprocess requests are from the original capture results that + * are associated with the intermediate {@link android.graphics.ImageFormat#YUV_420_888 } + * output buffers. All other controls in the reprocess requests will be ignored by the + * camera device.
          *
        • android.jpeg.*
        • *
        • {@link CaptureRequest#NOISE_REDUCTION_MODE android.noiseReduction.mode}
        • *
        • {@link CaptureRequest#EDGE_MODE android.edge.mode}
        • @@ -612,11 +609,13 @@ public abstract class CameraMetadata { *

          The camera device can produce depth measurements from its field of view.

          *

          This capability requires the camera device to support the following:

          *
            - *
          • DEPTH16 is supported as an output format.
          • - *
          • DEPTH_POINT_CLOUD is optionally supported as an output format.
          • - *
          • This camera device, and all camera devices with the same android.lens.info.facing, - * will list the following calibration entries in both CameraCharacteristics and - * CaptureResults:
              + *
            • {@link android.graphics.ImageFormat#DEPTH16 } is supported as an output format.
            • + *
            • {@link android.graphics.ImageFormat#DEPTH_POINT_CLOUD } is optionally supported as an + * output format.
            • + *
            • This camera device, and all camera devices with the same {@link CameraCharacteristics#LENS_FACING android.lens.facing}, + * will list the following calibration entries in both + * {@link android.hardware.camera2.CameraCharacteristics } and + * {@link android.hardware.camera2.CaptureResult }:
                *
              • {@link CameraCharacteristics#LENS_POSE_TRANSLATION android.lens.poseTranslation}
              • *
              • {@link CameraCharacteristics#LENS_POSE_ROTATION android.lens.poseRotation}
              • *
              • android.lens.intrinsicCalibration
              • @@ -631,13 +630,14 @@ public abstract class CameraMetadata { *

                Generally, depth output operates at a slower frame rate than standard color capture, * so the DEPTH16 and DEPTH_POINT_CLOUD formats will commonly have a stall duration that * should be accounted for (see - * android.hardware.camera2.StreamConfigurationMap#getOutputStallDuration). On a device - * that supports both depth and color-based output, to enable smooth preview, using a - * repeating burst is recommended, where a depth-output target is only included once - * every N frames, where N is the ratio between preview output rate and depth output + * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration }). + * On a device that supports both depth and color-based output, to enable smooth preview, + * using a repeating burst is recommended, where a depth-output target is only included + * once every N frames, where N is the ratio between preview output rate and depth output * rate, including depth stall time.

                * * @see CameraCharacteristics#DEPTH_DEPTH_IS_EXCLUSIVE + * @see CameraCharacteristics#LENS_FACING * @see CameraCharacteristics#LENS_POSE_ROTATION * @see CameraCharacteristics#LENS_POSE_TRANSLATION * @see CameraCharacteristics#REQUEST_AVAILABLE_CAPABILITIES @@ -711,7 +711,7 @@ public abstract class CameraMetadata { /** *

                Timestamps from {@link CaptureResult#SENSOR_TIMESTAMP android.sensor.timestamp} are in the same timebase as - * android.os.SystemClock#elapsedRealtimeNanos(), + * {@link android.os.SystemClock#elapsedRealtimeNanos }, * and they can be compared to other timestamps using that base.

                * * @see CaptureResult#SENSOR_TIMESTAMP @@ -870,7 +870,7 @@ public abstract class CameraMetadata { /** *

                Every frame has the requests immediately applied.

                *

                Furthermore for all results, - * android.sync.frameNumber == CaptureResult#getFrameNumber()

                + * android.sync.frameNumber == {@link android.hardware.camera2.CaptureResult#getFrameNumber }

                *

                Changing controls over multiple requests one after another will * produce results that have those controls applied atomically * each frame.

                diff --git a/core/java/android/hardware/camera2/CaptureRequest.java b/core/java/android/hardware/camera2/CaptureRequest.java index 9106060..ab6ce91 100644 --- a/core/java/android/hardware/camera2/CaptureRequest.java +++ b/core/java/android/hardware/camera2/CaptureRequest.java @@ -2040,8 +2040,8 @@ public final class CaptureRequest extends CameraMetadata> * cannot process more than 1 capture at a time. *
              *

              The necessary information for the application, given the model above, - * is provided via the {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} field - * using StreamConfigurationMap#getOutputMinFrameDuration(int, Size). + * is provided via the {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} field using + * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration }. * These are used to determine the maximum frame rate / minimum frame * duration that is possible for a given stream configuration.

              *

              Specifically, the application can use the following rules to @@ -2050,21 +2050,19 @@ public final class CaptureRequest extends CameraMetadata> *

                *
              1. Let the set of currently configured input/output streams * be called S.
              2. - *
              3. Find the minimum frame durations for each stream in S, by - * looking it up in {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} using - * StreamConfigurationMap#getOutputMinFrameDuration(int, Size) (with - * its respective size/format). Let this set of frame durations be called - * F.
              4. + *
              5. Find the minimum frame durations for each stream in S, by looking + * it up in {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} using {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration } + * (with its respective size/format). Let this set of frame durations be + * called F.
              6. *
              7. For any given request R, the minimum frame duration allowed * for R is the maximum out of all values in F. Let the streams * used in R be called S_r.
              8. *
              - *

              If none of the streams in S_r have a stall time (listed in - * StreamConfigurationMap#getOutputStallDuration(int,Size) using its - * respective size/format), then the frame duration in - * F determines the steady state frame rate that the application will - * get if it uses R as a repeating request. Let this special kind - * of request be called Rsimple.

              + *

              If none of the streams in S_r have a stall time (listed in {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration } + * using its respective size/format), then the frame duration in F + * determines the steady state frame rate that the application will get + * if it uses R as a repeating request. Let this special kind of + * request be called Rsimple.

              *

              A repeating request Rsimple can be occasionally interleaved * by a single capture of a new request Rstall (which has at least * one in-use stream with a non-0 stall time) and if Rstall has the @@ -2072,7 +2070,7 @@ public final class CaptureRequest extends CameraMetadata> * if all buffers from the previous Rstall have already been * delivered.

              *

              For more details about stalling, see - * StreamConfigurationMap#getOutputStallDuration(int,Size).

              + * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration }.

              *

              This control is only effective if {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} or {@link CaptureRequest#CONTROL_MODE android.control.mode} is set to * OFF; otherwise the auto-exposure algorithm will override this value.

              *

              Units: Nanoseconds

              diff --git a/core/java/android/hardware/camera2/CaptureResult.java b/core/java/android/hardware/camera2/CaptureResult.java index 8c8f0dc..3dc8970 100644 --- a/core/java/android/hardware/camera2/CaptureResult.java +++ b/core/java/android/hardware/camera2/CaptureResult.java @@ -2886,8 +2886,8 @@ public class CaptureResult extends CameraMetadata> { * cannot process more than 1 capture at a time.
            • *
            *

            The necessary information for the application, given the model above, - * is provided via the {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} field - * using StreamConfigurationMap#getOutputMinFrameDuration(int, Size). + * is provided via the {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} field using + * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration }. * These are used to determine the maximum frame rate / minimum frame * duration that is possible for a given stream configuration.

            *

            Specifically, the application can use the following rules to @@ -2896,21 +2896,19 @@ public class CaptureResult extends CameraMetadata> { *

              *
            1. Let the set of currently configured input/output streams * be called S.
            2. - *
            3. Find the minimum frame durations for each stream in S, by - * looking it up in {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} using - * StreamConfigurationMap#getOutputMinFrameDuration(int, Size) (with - * its respective size/format). Let this set of frame durations be called - * F.
            4. + *
            5. Find the minimum frame durations for each stream in S, by looking + * it up in {@link CameraCharacteristics#SCALER_STREAM_CONFIGURATION_MAP android.scaler.streamConfigurationMap} using {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration } + * (with its respective size/format). Let this set of frame durations be + * called F.
            6. *
            7. For any given request R, the minimum frame duration allowed * for R is the maximum out of all values in F. Let the streams * used in R be called S_r.
            8. *
            - *

            If none of the streams in S_r have a stall time (listed in - * StreamConfigurationMap#getOutputStallDuration(int,Size) using its - * respective size/format), then the frame duration in - * F determines the steady state frame rate that the application will - * get if it uses R as a repeating request. Let this special kind - * of request be called Rsimple.

            + *

            If none of the streams in S_r have a stall time (listed in {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration } + * using its respective size/format), then the frame duration in F + * determines the steady state frame rate that the application will get + * if it uses R as a repeating request. Let this special kind of + * request be called Rsimple.

            *

            A repeating request Rsimple can be occasionally interleaved * by a single capture of a new request Rstall (which has at least * one in-use stream with a non-0 stall time) and if Rstall has the @@ -2918,7 +2916,7 @@ public class CaptureResult extends CameraMetadata> { * if all buffers from the previous Rstall have already been * delivered.

            *

            For more details about stalling, see - * StreamConfigurationMap#getOutputStallDuration(int,Size).

            + * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration }.

            *

            This control is only effective if {@link CaptureRequest#CONTROL_AE_MODE android.control.aeMode} or {@link CaptureRequest#CONTROL_MODE android.control.mode} is set to * OFF; otherwise the auto-exposure algorithm will override this value.

            *

            Units: Nanoseconds

            @@ -2980,11 +2978,10 @@ public class CaptureResult extends CameraMetadata> { * and are monotonically increasing. They can be compared with the * timestamps for other captures from the same camera device, but are * not guaranteed to be comparable to any other time source.

            - *

            When {@link CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE android.sensor.info.timestampSource} == REALTIME, - * the timestamps measure time in the same timebase as - * android.os.SystemClock#elapsedRealtimeNanos(), and they can be - * compared to other timestamps from other subsystems that are using - * that base.

            + *

            When {@link CameraCharacteristics#SENSOR_INFO_TIMESTAMP_SOURCE android.sensor.info.timestampSource} == REALTIME, the + * timestamps measure time in the same timebase as {@link android.os.SystemClock#elapsedRealtimeNanos }, and they can + * be compared to other timestamps from other subsystems that + * are using that base.

            *

            Units: Nanoseconds

            *

            Range of valid values:
            * > 0

            @@ -3142,7 +3139,7 @@ public class CaptureResult extends CameraMetadata> { *

            Units: Nanoseconds

            *

            Range of valid values:
            * >= 0 and < - * StreamConfigurationMap#getOutputMinFrameDuration(int, Size).

            + * {@link android.hardware.camera2.params.StreamConfigurationMap#getOutputMinFrameDuration }.

            *

            Optional - This value may be {@code null} on some devices.

            *

            Limited capability - * Present on all camera devices that report being at least {@link CameraCharacteristics#INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED HARDWARE_LEVEL_LIMITED} devices in the -- cgit v1.1