- format
- an image format from Android.Graphics.ImageFormat or Android.Graphics.PixelFormat
- size
- an output-compatible size
Documentation for this section has not yet been entered.
Type Reason Java.Lang.IllegalArgumentException if format or size was not supported Java.Lang.NullPointerException if size was null
Get the stall duration for the format/size combination (in nanoseconds).
format should be one of the ones returned by StreamConfigurationMap.GetOutputFormats.
size should be one of the ones returned by StreamConfigurationMap.GetOutputSizes(int).
A stall duration is how much extra time would get added to the normal minimum frame duration for a repeating request that has streams with non-zero stall.
For example, consider JPEG captures which have the following characteristics:
In other words, using a repeating YUV request would result in a steady frame rate (let's say it's 30 FPS). If a single JPEG request is submitted periodically, the frame rate will stay at 30 FPS (as long as we wait for the previous JPEG to return each time). If we try to submit a repeating YUV + JPEG request, then the frame rate will drop from 30 FPS.
In general, submitting a new request with a non-0 stall time stream will not cause a frame rate drop unless there are still outstanding buffers for that stream from previous requests.
Submitting a repeating request with streams (call this S) is the same as setting the minimum frame duration from the normal minimum frame duration corresponding to S, added with the maximum stall duration for S.
If interleaving requests with and without a stall duration, a request will stall by the maximum of the remaining times for each can-stall stream with outstanding buffers.
This means that a stalling request will not have an exposure start until the stall has completed.
This should correspond to the stall duration when only that stream is active, with all processing (typically in android.*.mode) set to FAST or OFF. Setting any of the processing modes to HIGH_QUALITY effectively results in an indeterminate stall duration for all streams in a request (the regular stall calculation rules are ignored).
The following formats may always have a stall duration:
The following formats will never have a stall duration:
All other formats may or may not have an allowed stall duration on a per-capability basis; refer to Android.Hardware.Camera2.CameraCharacteristics.RequestAvailableCapabilities for more details.
See Android.Hardware.Camera2.CaptureRequest.SensorFrameDuration for more information about calculating the max frame rate (absent stalls).