public class CaptureFailure extends Object
CaptureFailures are produced by a CameraDevice
if processing a
CaptureRequest
fails, either partially or fully. Use getReason()
to determine the specific nature of the failed capture.
Receiving a CaptureFailure means that the metadata associated with that frame number
has been dropped -- no CaptureResult
with the same frame number will be
produced.
Modifier and Type | Class and Description |
---|---|
static interface |
CaptureFailure.FailureReason |
Modifier and Type | Field and Description |
---|---|
static int |
REASON_ERROR
The
CaptureResult has been dropped this frame only due to an error
in the framework. |
static int |
REASON_FLUSHED
The capture has failed due to a
CameraCaptureSession.abortCaptures() call from the
application. |
Constructor and Description |
---|
CaptureFailure(CaptureRequest request,
int reason,
boolean dropped,
int sequenceId,
long frameNumber) |
Modifier and Type | Method and Description |
---|---|
long |
getFrameNumber()
Get the frame number associated with this failed capture.
|
int |
getReason()
Determine why the request was dropped, whether due to an error or to a user
action.
|
CaptureRequest |
getRequest()
Get the request associated with this failed capture.
|
int |
getSequenceId()
The sequence ID for this failed capture that was returned by the
CameraCaptureSession.capture(android.hardware.camera2.CaptureRequest, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler) family of functions. |
boolean |
wasImageCaptured()
Determine if the image was captured from the camera.
|
public static final int REASON_ERROR
CaptureResult
has been dropped this frame only due to an error
in the framework.getReason()
,
Constant Field Valuespublic static final int REASON_FLUSHED
CameraCaptureSession.abortCaptures()
call from the
application.getReason()
,
Constant Field Valuespublic CaptureFailure(CaptureRequest request, int reason, boolean dropped, int sequenceId, long frameNumber)
public CaptureRequest getRequest()
Whenever a request is unsuccessfully captured, with
CameraCaptureSession.CaptureCallback.onCaptureFailed(android.hardware.camera2.CameraCaptureSession, android.hardware.camera2.CaptureRequest, android.hardware.camera2.CaptureFailure)
,
the failed capture
's getRequest()
will return that request
.
In particular,
cameraDevice.capture(someRequest, new CaptureCallback() {
@Override
void onCaptureFailed(CaptureRequest myRequest, CaptureFailure myFailure) {
assert(myFailure.getRequest.equals(myRequest) == true);
}
};
null
.public long getFrameNumber()
Whenever a request has been processed, regardless of failed capture or success, it gets a unique frame number assigned to its future result/failed capture.
This value monotonically increments, starting with 0,
for every new result or failure; and the scope is the lifetime of the
CameraDevice
.
public int getReason()
REASON_*
integer constants.REASON_ERROR
,
REASON_FLUSHED
public boolean wasImageCaptured()
If the image was not captured, no image buffers will be available. If the image was captured, then image buffers may be available.
public int getSequenceId()
CameraCaptureSession.capture(android.hardware.camera2.CaptureRequest, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler)
family of functions.
The sequence ID is a unique monotonically increasing value starting from 0, incremented every time a new group of requests is submitted to the CameraDevice.
CameraDevice.CaptureCallback#onCaptureSequenceCompleted