# ACameraCaptureSession_logicalCamera_captureCallbacks

This has the same functionality as [ACameraCaptureSession_captureCallbacks](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks), with the exception that an onLogicalCameraCaptureCompleted callback is used, instead of onCaptureCompleted, to support logical multi-camera.

## Summary

| ### Public attributes ||
|---|---|
| `https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1a0ccbdca1bff823c2e36b96e5f3545052` | `void *` Same as [ACameraCaptureSession_captureCallbacks](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks). |
| `https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1a6ae812f6a5c7aa2823716c27e1a5db47` | `https://developer.android.com/ndk/reference/group/camera#group___camera_1gabbde817d052f1136704508b5f22c9cd4` Same as [ACameraCaptureSession_captureCallbacks#onCaptureBufferLost](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks_1ac41a72015c11cd154d319c6b2a9857ef). |
| `https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1a981bdc7a44e48e238c15e8cfe487b60d` | `https://developer.android.com/ndk/reference/group/camera#group___camera_1ga4d30cafdc4c076c596d6bf52d1127b39` Same as [ACameraCaptureSession_captureCallbacks#onCaptureProgressed](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks_1a00efbecdef97cf94a460610ed4cccb9b). |
| `https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1ab4b660a5804641a951a236aedb528390` | `https://developer.android.com/ndk/reference/group/camera#group___camera_1ga2e96d23f1ffd1df15173612a28cca45d` Same as [ACameraCaptureSession_captureCallbacks#onCaptureSequenceAborted](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks_1ab33147d98461b80eb5e25ac787ee2302). |
| `https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1a83c2add35261334426e81c4fb6136cae` | `https://developer.android.com/ndk/reference/group/camera#group___camera_1ga1eb8646912da6d1ce798154c13f85b83` Same as [ACameraCaptureSession_captureCallbacks#onCaptureSequenceCompleted](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks_1a9e4ff1fcf08552a5fc7e3149af79a467). |
| `https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1a23ca7102ba9a01fe82316db1977ab3d2` | `https://developer.android.com/ndk/reference/group/camera#group___camera_1gafdf34f2b6c112f3eee57c827d6c13dd0` Same as [ACameraCaptureSession_captureCallbacks#onCaptureStarted](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks_1a559793da925b9d1228784054bdb514b5). |
| `https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1ace85d6f05ff4e1f311b44e1626062819` | `https://developer.android.com/ndk/reference/group/camera#group___camera_1ga09c305ffffdfb068f5493f3e40108f35` This callback is called when an image capture has fully completed and all the result metadata is available. |
| `https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1a1d5348e0664b201a7247904adc3ce6fc` | `https://developer.android.com/ndk/reference/group/camera#group___camera_1gaab31bac88ef25435164328a1871217a0` This callback is called instead of [onLogicalCameraCaptureCompleted](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1ace85d6f05ff4e1f311b44e1626062819) when the camera device failed to produce a capture result for the request. |

## Public attributes

### context

Declared in `camera/NdkCameraCaptureSession.h`

```scdoc
void * ACameraCaptureSession_logicalCamera_captureCallbacks::context
```
Same as [ACameraCaptureSession_captureCallbacks](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks).

### onCaptureBufferLost

Declared in `camera/NdkCameraCaptureSession.h`

```scdoc
ACameraCaptureSession_captureCallback_bufferLost ACameraCaptureSession_logicalCamera_captureCallbacks::onCaptureBufferLost
```
Same as [ACameraCaptureSession_captureCallbacks#onCaptureBufferLost](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks_1ac41a72015c11cd154d319c6b2a9857ef).

### onCaptureProgressed

Declared in `camera/NdkCameraCaptureSession.h`

```scdoc
ACameraCaptureSession_captureCallback_result ACameraCaptureSession_logicalCamera_captureCallbacks::onCaptureProgressed
```
Same as [ACameraCaptureSession_captureCallbacks#onCaptureProgressed](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks_1a00efbecdef97cf94a460610ed4cccb9b).

### onCaptureSequenceAborted

Declared in `camera/NdkCameraCaptureSession.h`

```scdoc
ACameraCaptureSession_captureCallback_sequenceAbort ACameraCaptureSession_logicalCamera_captureCallbacks::onCaptureSequenceAborted
```
Same as [ACameraCaptureSession_captureCallbacks#onCaptureSequenceAborted](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks_1ab33147d98461b80eb5e25ac787ee2302).

### onCaptureSequenceCompleted

Declared in `camera/NdkCameraCaptureSession.h`

```scdoc
ACameraCaptureSession_captureCallback_sequenceEnd ACameraCaptureSession_logicalCamera_captureCallbacks::onCaptureSequenceCompleted
```
Same as [ACameraCaptureSession_captureCallbacks#onCaptureSequenceCompleted](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks_1a9e4ff1fcf08552a5fc7e3149af79a467).

### onCaptureStarted

Declared in `camera/NdkCameraCaptureSession.h`

```scdoc
ACameraCaptureSession_captureCallback_start ACameraCaptureSession_logicalCamera_captureCallbacks::onCaptureStarted
```
Same as [ACameraCaptureSession_captureCallbacks#onCaptureStarted](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-capture-callbacks#struct_a_camera_capture_session__capture_callbacks_1a559793da925b9d1228784054bdb514b5).

### onLogicalCameraCaptureCompleted

Declared in `camera/NdkCameraCaptureSession.h`

```scdoc
ACameraCaptureSession_logicalCamera_captureCallback_result ACameraCaptureSession_logicalCamera_captureCallbacks::onLogicalCameraCaptureCompleted
```
This callback is called when an image capture has fully completed and all the result metadata is available.

For a logical multi-camera, this callback also returns the result metadata for all physical cameras being explicitly requested on.

This callback will always fire after the last [onCaptureProgressed](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1a981bdc7a44e48e238c15e8cfe487b60d); in other words, no more partial results will be delivered once the completed result is available.

For performance-intensive use-cases where latency is a factor, consider using [onCaptureProgressed](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1a981bdc7a44e48e238c15e8cfe487b60d) instead.

Note that the ACaptureRequest pointer in the callback will not match what application has submitted, but the contents the ACaptureRequest will match what application submitted.

### onLogicalCameraCaptureFailed

Declared in `camera/NdkCameraCaptureSession.h`

```scdoc
ACameraCaptureSession_logicalCamera_captureCallback_failed ACameraCaptureSession_logicalCamera_captureCallbacks::onLogicalCameraCaptureFailed
```
This callback is called instead of [onLogicalCameraCaptureCompleted](https://developer.android.com/ndk/reference/struct/a-camera-capture-session-logical-camera-capture-callbacks#struct_a_camera_capture_session__logical_camera__capture_callbacks_1ace85d6f05ff4e1f311b44e1626062819) when the camera device failed to produce a capture result for the request.

Other requests are unaffected, and some or all image buffers from the capture may have been pushed to their respective output streams.

Note that the ACaptureRequest pointer in the callback will not match what application has submitted, but the contents the ACaptureRequest will match what application submitted.


**See also:**
[ALogicalCameraCaptureFailure](https://developer.android.com/ndk/reference/struct/a-logical-camera-capture-failure#struct_a_logical_camera_capture_failure)