SurfaceRequest.Result

@AutoValue
public abstract class SurfaceRequest.Result


Result of providing a surface to a SurfaceRequest via provideSurface.

Summary

Constants

static final int

Provided surface could not be used by the camera.

static final int

Provided surface was never attached to the camera due to the SurfaceRequest being cancelled by the camera.

static final int

Surface was not attached to the camera through this invocation of provideSurface due to the SurfaceRequest already being complete with a surface.

static final int

Provided surface was successfully used by the camera and eventually detached once no longer needed by the camera.

static final int

Surface was not attached to the camera through this invocation of provideSurface due to the SurfaceRequest already being marked as "will not provide surface".

Public methods

abstract int

Returns the result of invoking provideSurface with the surface from getSurface.

abstract @NonNull Surface

The surface used to complete a SurfaceRequest with provideSurface.

Constants

RESULT_INVALID_SURFACE

Added in 1.0.0
public static final int RESULT_INVALID_SURFACE = 2

Provided surface could not be used by the camera.

This is likely due to the Surface being closed prematurely or the resolution of the surface not matching the resolution specified by getResolution.

RESULT_REQUEST_CANCELLED

Added in 1.0.0
public static final int RESULT_REQUEST_CANCELLED = 1

Provided surface was never attached to the camera due to the SurfaceRequest being cancelled by the camera.

It is safe to release or reuse Surface, assuming it was not previously attached to a camera via provideSurface. If reusing the surface for a future surface request, it should be verified that the surface still matches the resolution specified by getResolution.

RESULT_SURFACE_ALREADY_PROVIDED

Added in 1.0.0
public static final int RESULT_SURFACE_ALREADY_PROVIDED = 3

Surface was not attached to the camera through this invocation of provideSurface due to the SurfaceRequest already being complete with a surface.

The SurfaceRequest has already been completed by a previous invocation of provideSurface.

It is safe to release or reuse the Surface, assuming it was not previously attached to a camera via provideSurface.

RESULT_SURFACE_USED_SUCCESSFULLY

Added in 1.0.0
public static final int RESULT_SURFACE_USED_SUCCESSFULLY = 0

Provided surface was successfully used by the camera and eventually detached once no longer needed by the camera.

This result denotes that it is safe to release the Surface and any underlying resources.

For compatibility reasons, the Surface object should not be reused by future SurfaceRequests, and a new surface should be created instead.

RESULT_WILL_NOT_PROVIDE_SURFACE

Added in 1.0.0
public static final int RESULT_WILL_NOT_PROVIDE_SURFACE = 4

Surface was not attached to the camera through this invocation of provideSurface due to the SurfaceRequest already being marked as "will not provide surface".

The SurfaceRequest has already been marked as 'will not provide surface' by a previous invocation of willNotProvideSurface.

It is safe to release or reuse the Surface, assuming it was not previously attached to a camera via provideSurface.

Public methods

getResultCode

Added in 1.0.0
public abstract int getResultCode()

Returns the result of invoking provideSurface with the surface from getSurface.

getSurface

Added in 1.0.0
public abstract @NonNull Surface getSurface()

The surface used to complete a SurfaceRequest with provideSurface.

Returns
@NonNull Surface

the surface.