From 143aa0b891b2f8bf8ffabf8c53966c3cf97e9eb0 Mon Sep 17 00:00:00 2001
From: Igor Murashkin The minimum frame duration that is supported
- * for each resolution in availableJpegSizes. Should
- * correspond to the frame duration when only that JPEG
- * stream is active and captured in a burst, with all
- * processing set to FAST
This corresponds to the minimum steady-state frame duration when only + * that JPEG stream is active and captured in a burst, with all + * processing (typically in android.*.mode) set to FAST.
*When multiple streams are configured, the minimum * frame duration will be >= max(individual stream min * durations)
+ * + * @see CameraCharacteristics#SCALER_AVAILABLE_JPEG_SIZES */ public static final KeyThe minimum frame duration that is supported - * for each resolution in availableProcessedSizes. Should - * correspond to the frame duration when only that processed - * stream is active, with all processing set to - * FAST
- *When multiple streams are configured, the minimum - * frame duration will be >= max(individual stream min - * durations)
+ *For each available processed output size (defined in + * {@link CameraCharacteristics#SCALER_AVAILABLE_PROCESSED_SIZES android.scaler.availableProcessedSizes}), this property lists the + * minimum supportable frame duration for that size.
+ *This should correspond to the frame duration when only that processed + * stream is active, with all processing (typically in android.*.mode) + * set to FAST.
+ *When multiple streams are configured, the minimum frame duration will + * be >= max(individual stream min durations).
+ * + * @see CameraCharacteristics#SCALER_AVAILABLE_PROCESSED_SIZES */ public static final KeyDuration from start of frame exposure to - * start of next frame exposure
- *Exposure time has priority, so duration is set to - * max(duration, exposure time + overhead)
+ * start of next frame exposure. + *The maximum frame rate that can be supported by a camera subsystem is + * a function of many factors:
+ *Since these factors can vary greatly between different ISPs and + * sensors, the camera abstraction tries to represent the bandwidth + * restrictions with as simple a model as possible.
+ *The model presented has the following characteristics:
+ *The necessary information for the application, given the model above, + * is provided via the android.scaler.available*MinDurations fields. + * 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 + * determine the minimum frame duration it can request from the HAL + * device:
+ *S
, divide them into three sets: streams in a JPEG format
+ * SJ
, streams in a raw sensor format SR
, and the rest ('processed')
+ * SP
.RJ
,
+ * RR
, and RP
.RJ
is greater than RP
, set RP
equal to RJ
. If there is
+ * no exact match for RP == RJ
(in particular there isn't an available
+ * processed resolution at the same size as RJ
), then set RP
equal
+ * to the smallest processed resolution that is larger than RJ
. If
+ * there are no processed resolutions larger than RJ
, then set RJ
to
+ * the processed resolution closest to RJ
.RP
is greater than RR
, set RR
equal to RP
. If there is
+ * no exact match for RR == RP
(in particular there isn't an available
+ * raw resolution at the same size as RP
), then set RR
equal to
+ * or to the smallest raw resolution that is larger than RP
. If
+ * there are no raw resolutions larger than RP
, then set RR
to
+ * the raw resolution closest to RP
.FJ
, FR
, and FP
.max(FR, FP)
.max(FR, FP, FJ)
.FJ
ns after a previous JPEG-using request. The minimum
+ * supported frame duration will vary between the values calculated in
+ * #6 and #7.Duration from start of frame exposure to - * start of next frame exposure
- *Exposure time has priority, so duration is set to - * max(duration, exposure time + overhead)
+ * start of next frame exposure. + *The maximum frame rate that can be supported by a camera subsystem is + * a function of many factors:
+ *Since these factors can vary greatly between different ISPs and + * sensors, the camera abstraction tries to represent the bandwidth + * restrictions with as simple a model as possible.
+ *The model presented has the following characteristics:
+ *The necessary information for the application, given the model above, + * is provided via the android.scaler.available*MinDurations fields. + * 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 + * determine the minimum frame duration it can request from the HAL + * device:
+ *S
, divide them into three sets: streams in a JPEG format
+ * SJ
, streams in a raw sensor format SR
, and the rest ('processed')
+ * SP
.RJ
,
+ * RR
, and RP
.RJ
is greater than RP
, set RP
equal to RJ
. If there is
+ * no exact match for RP == RJ
(in particular there isn't an available
+ * processed resolution at the same size as RJ
), then set RP
equal
+ * to the smallest processed resolution that is larger than RJ
. If
+ * there are no processed resolutions larger than RJ
, then set RJ
to
+ * the processed resolution closest to RJ
.RP
is greater than RR
, set RR
equal to RP
. If there is
+ * no exact match for RR == RP
(in particular there isn't an available
+ * raw resolution at the same size as RP
), then set RR
equal to
+ * or to the smallest raw resolution that is larger than RP
. If
+ * there are no raw resolutions larger than RP
, then set RR
to
+ * the raw resolution closest to RP
.FJ
, FR
, and FP
.max(FR, FP)
.max(FR, FP, FJ)
.FJ
ns after a previous JPEG-using request. The minimum
+ * supported frame duration will vary between the values calculated in
+ * #6 and #7.