# CameraCaptureSessionInterop

Artifact: [androidx.camera:camera-camera2](https://developer.android.com/jetpack/androidx/releases/camera) [View Source](https://cs.android.com/search?q=file:androidx/camera/camera2/interop/InteropBaseInterfaces.kt+class:androidx.camera.camera2.interop.CameraCaptureSessionInterop) Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

*** ** * ** ***


```
interface CameraCaptureSessionInterop
```

<br />

Known direct subclasses [CameraControlCamera2Interop](https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CameraControlCamera2Interop), [SessionConfigCamera2Interop](https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/SessionConfigCamera2Interop)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CameraControlCamera2Interop` | Configures Camera2 options on a `https://developer.android.com/reference/kotlin/androidx/camera/core/CameraControl`. |
| `https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/SessionConfigCamera2Interop` | Configures Camera2 options on a `https://developer.android.com/reference/kotlin/androidx/camera/core/SessionConfig`. |

*** ** * ** ***

Configures Camera2 `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html` options.

## Summary

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CameraCaptureSessionInterop#clearAllCaptureRequestOptions()()` Clears all `https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html`s previously set on this target. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CameraCaptureSessionInterop#clearCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key)(key: https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html<*>)` Clears a `https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html` previously set on this target. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `<V : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?> https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CameraCaptureSessionInterop#setCaptureRequestOption(android.hardware.camera2.CaptureRequest.Key,kotlin.Any)(key: https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html<V>, value: V)` Sets a `https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html` and value on repeating and one-shot requests. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CameraCaptureSessionInterop#setRepeatingCaptureCallback(java.util.concurrent.Executor,android.hardware.camera2.CameraCaptureSession.CaptureCallback)( executor: https://developer.android.com/reference/java/util/concurrent/Executor.html, callback: https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.CaptureCallback.html )` Sets the callback to receive repeating capture updates with an executor. |

| ### Public properties |
|---|---|
| `open https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CaptureRequestOptionTarget` | `https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CameraCaptureSessionInterop#captureRequest()` Helper target property supporting `captureRequest[key] = value` indexing operator syntax. |
| `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.CaptureCallback.html?` | `https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CameraCaptureSessionInterop#repeatingCaptureCallback()` The callback to receive repeating capture updates on a direct executor. |
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | `https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CameraCaptureSessionInterop#repeatingCaptureRequestTemplate()` The repeating capture request template type (e.g., `https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#TEMPLATE_PREVIEW`). |

## Public functions

### clearAllCaptureRequestOptions

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
fun clearAllCaptureRequestOptions(): Unit
```

Clears all `https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html`s previously set on this target.

### clearCaptureRequestOption

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
fun clearCaptureRequestOption(key: CaptureRequest.Key<*>): Unit
```

Clears a `https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html` previously set on this target.

| Parameters |
|---|---|
| `key: https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html<*>` | capture request option key |

### setCaptureRequestOption

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
fun <V : Any?> setCaptureRequestOption(key: CaptureRequest.Key<V>, value: V): Unit
```

Sets a `https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html` and value on repeating and one-shot requests.

| Parameters |
|---|---|
| `key: https://developer.android.com/reference/android/hardware/camera2/CaptureRequest.Key.html<V>` | capture request option key |
| `value: V` | option value |

### setRepeatingCaptureCallback

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
fun setRepeatingCaptureCallback(
    executor: Executor,
    callback: CameraCaptureSession.CaptureCallback
): Unit
```

Sets the callback to receive repeating capture updates with an executor.

**Warning:** The `https://developer.android.com/reference/kotlin/androidx/camera/camera2/interop/CameraCaptureSessionInterop#setRepeatingCaptureCallback(java.util.concurrent.Executor,android.hardware.camera2.CameraCaptureSession.CaptureCallback)` receives raw `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html` instances. Directly invoking state-altering, lifecycle, or request-submitting methods on these raw objects bypasses CameraX pipeline management and causes state desynchronization, stream freezing, or crashes. Do not invoke:

- Session lifecycle methods: `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#close()`, `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#abortCaptures()`, or `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#stopRepeating()`

- Request submission methods: `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#setRepeatingRequest(android.hardware.camera2.CaptureRequest, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler)`, `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#setRepeatingBurst(java.util.List&lt;android.hardware.camera2.CaptureRequest&gt;, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler)`, `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#capture(android.hardware.camera2.CaptureRequest, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler)`, or `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#captureBurst(java.util.List&lt;android.hardware.camera2.CaptureRequest&gt;, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler)`

- Surface / output configuration methods: `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#updateOutputConfiguration(android.hardware.camera2.params.OutputConfiguration)`, `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#finalizeOutputConfigurations(java.util.List&lt;android.hardware.camera2.params.OutputConfiguration&gt;)`, `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#prepare(android.view.Surface)`, or `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#switchToOffline(java.util.Collection&lt;android.view.Surface&gt;, java.util.concurrent.Executor, android.hardware.camera2.CameraOfflineSession.CameraOfflineSessionCallback)`

| Parameters |
|---|---|
| `executor: https://developer.android.com/reference/java/util/concurrent/Executor.html` | executor to run the callback on |
| `callback: https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.CaptureCallback.html` | repeating capture callback |

## Public properties

### captureRequest

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
open val captureRequest: CaptureRequestOptionTarget
```

Helper target property supporting `captureRequest[key] = value` indexing operator syntax.

### repeatingCaptureCallback

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
var repeatingCaptureCallback: CameraCaptureSession.CaptureCallback?
```

The callback to receive repeating capture updates on a direct executor.

**Warning:** The callback receives raw `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html` instances. Directly invoking state-altering, lifecycle, or request-submitting methods on these raw objects bypasses CameraX pipeline management and causes state desynchronization, stream freezing, or crashes. Do not invoke:

- Session lifecycle methods: `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#close()`, `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#abortCaptures()`, or `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#stopRepeating()`

- Request submission methods: `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#setRepeatingRequest(android.hardware.camera2.CaptureRequest, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler)`, `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#setRepeatingBurst(java.util.List&lt;android.hardware.camera2.CaptureRequest&gt;, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler)`, `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#capture(android.hardware.camera2.CaptureRequest, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler)`, or `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#captureBurst(java.util.List&lt;android.hardware.camera2.CaptureRequest&gt;, android.hardware.camera2.CameraCaptureSession.CaptureCallback, android.os.Handler)`

- Surface / output configuration methods: `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#updateOutputConfiguration(android.hardware.camera2.params.OutputConfiguration)`, `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#finalizeOutputConfigurations(java.util.List&lt;android.hardware.camera2.params.OutputConfiguration&gt;)`, `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#prepare(android.view.Surface)`, or `https://developer.android.com/reference/android/hardware/camera2/CameraCaptureSession.html#switchToOffline(java.util.Collection&lt;android.view.Surface&gt;, java.util.concurrent.Executor, android.hardware.camera2.CameraOfflineSession.CameraOfflineSessionCallback)`

### repeatingCaptureRequestTemplate

Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
var repeatingCaptureRequestTemplate: Int
```

The repeating capture request template type (e.g., `https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#TEMPLATE_PREVIEW`).