# androidx.camera.video

*** ** * ** ***

## Interfaces

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapabilities` | VideoCapabilities is used to query video recording capabilities on the device. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoOutput` | A class that will produce video data from a `https://developer.android.com/reference/android/view/Surface.html`. |

## Classes

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/camera/video/AudioStats` | The audio information about an `https://developer.android.com/reference/kotlin/androidx/camera/video/Recording` at a point in time. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/FallbackStrategy` | A class represents the strategy that will be adopted when the device does not support all the desired `https://developer.android.com/reference/kotlin/androidx/camera/video/Quality` in `https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector` in order to select the quality as possible. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/FileDescriptorOutputOptions` | A class providing options for storing the result to a given file descriptor. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/FileDescriptorOutputOptions.Builder` | The builder of the `https://developer.android.com/reference/kotlin/androidx/camera/video/FileDescriptorOutputOptions` object. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/FileOutputOptions` | A class providing options for storing the result to a given file. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/FileOutputOptions.Builder` | The builder of the `https://developer.android.com/reference/kotlin/androidx/camera/video/FileOutputOptions` object. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/HighSpeedVideoSessionConfig` | A `https://developer.android.com/reference/kotlin/androidx/camera/core/SessionConfig` for high-speed video recording sessions. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/HighSpeedVideoSessionConfig.Builder` | Builder for `https://developer.android.com/reference/kotlin/androidx/camera/video/HighSpeedVideoSessionConfig` |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/HighSpeedVideoSessionConfigScope` | Scope class for `https://developer.android.com/reference/kotlin/androidx/camera/video/HighSpeedVideoSessionConfig` configuration DSL. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/MediaStoreOutputOptions` | A class providing options for storing output to MediaStore. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/MediaStoreOutputOptions.Builder` | The builder of the `https://developer.android.com/reference/kotlin/androidx/camera/video/MediaStoreOutputOptions` object. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/OutputOptions` | Options for configuring output destination for generating a recording. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/OutputResults` | Class to provide the information of the output. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/PendingRecording` | A recording that can be started at a future time. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/Quality` | A class representing video quality constraints that will be used by `https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector` to choose video resolution and appropriate encoding parameters. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/QualitySelector` | QualitySelector defines a desired quality setting that can be used to configure components with quality setting requirements such as creating a `https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder.Builder#setQualitySelector(androidx.camera.video.QualitySelector)`. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder` | An implementation of `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoOutput` for starting video recordings that are saved to a `https://developer.android.com/reference/java/io/File.html`, `https://developer.android.com/reference/android/os/ParcelFileDescriptor.html`, or `https://developer.android.com/reference/android/provider/MediaStore.html`. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder.Builder` | Builder class for `https://developer.android.com/reference/kotlin/androidx/camera/video/Recorder` objects. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/Recording` | Provides controls for the currently active recording. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/RecordingStats` | A snapshot of statistics about an `https://developer.android.com/reference/kotlin/androidx/camera/video/Recording` at a point in time. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture` | A use case that provides camera stream suitable for video application. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture.Builder` | Builder for a `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture`. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCaptureScope` | Scope class for `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture` configuration DSL. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoRecordEvent` | VideoRecordEvent is used to report video recording events and status. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoRecordEvent.Finalize` | Indicates the finalization of recording. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoRecordEvent.Pause` | Indicates the pause event of recording. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoRecordEvent.Resume` | Indicates the resume event of recording. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoRecordEvent.Start` | Indicates the start of recording. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoRecordEvent.Status` | The status report of the recording in progress. |

## Objects

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/camera/video/GroupableFeatures` | A collection of `https://developer.android.com/reference/kotlin/androidx/camera/core/featuregroup/GroupableFeature` instances that are specific to video recording. |

## Annotations

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/camera/video/ExperimentalAudioApi` | Denotes that the annotated element relates to an experimental audio feature and may change in a future release. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/ExperimentalMimeTypeApi` | Denotes that the annotated element relates to experimental MIME type query features and may change in a future release. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/ExperimentalPersistentRecording` | Denotes that the annotated method uses the experimental methods which allows a recording to be persistent. |

## Top-level functions summary

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/camera/video/HighSpeedVideoSessionConfig` | `https://developer.android.com/reference/kotlin/androidx/camera/video/package-summary#highSpeedVideoSessionConfig(androidx.camera.video.VideoCapture,kotlin.Function1)( videoCapture: https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture<*>, block: https://developer.android.com/reference/kotlin/androidx/camera/video/HighSpeedVideoSessionConfigScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html )` Creates a `https://developer.android.com/reference/kotlin/androidx/camera/video/HighSpeedVideoSessionConfig` using a Kotlin DSL. |
| `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture<T>` | `<T : https://developer.android.com/reference/kotlin/androidx/camera/video/VideoOutput> https://developer.android.com/reference/kotlin/androidx/camera/video/package-summary#videoCapture(androidx.camera.video.VideoOutput,kotlin.Function1)(videoOutput: T, block: https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCaptureScope<T>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)` Creates a `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture` using a Kotlin DSL block. |

## Top-level functions

### highSpeedVideoSessionConfig

Artifact: [androidx.camera:camera-video](https://developer.android.com/jetpack/androidx/releases/camera) [View Source](https://cs.android.com/search?q=file:androidx/camera/video/HighSpeedVideoSessionConfig.kt+function:highSpeedVideoSessionConfig) Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
fun highSpeedVideoSessionConfig(
    videoCapture: VideoCapture<*>,
    block: HighSpeedVideoSessionConfigScope.() -> Unit
): HighSpeedVideoSessionConfig
```

Creates a `https://developer.android.com/reference/kotlin/androidx/camera/video/HighSpeedVideoSessionConfig` using a Kotlin DSL.

Example usage:

```kotlin
val highSpeedConfig = highSpeedVideoSessionConfig(videoCapture) {
    isAutoRotationEnabled = true
    preview = preview
}
```

| Parameters |
|---|---|
| `videoCapture: https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture<*>` | The `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture` use case for video recording. |
| `block: https://developer.android.com/reference/kotlin/androidx/camera/video/HighSpeedVideoSessionConfigScope.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A lambda to configure the `https://developer.android.com/reference/kotlin/androidx/camera/video/HighSpeedVideoSessionConfigScope`. |

### videoCapture

Artifact: [androidx.camera:camera-video](https://developer.android.com/jetpack/androidx/releases/camera) [View Source](https://cs.android.com/search?q=file:androidx/camera/video/VideoCaptureDsl.kt+function:videoCapture) Added in [1.7.0-rc02](https://developer.android.com/jetpack/androidx/releases/camera#1.7.0-rc02)

```
fun <T : VideoOutput> videoCapture(videoOutput: T, block: VideoCaptureScope<T>.() -> Unit): VideoCapture<T>
```

Creates a `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCapture` using a Kotlin DSL block.

```kotlin
import androidx.camera.core.DynamicRange
import androidx.camera.core.MirrorMode
import androidx.camera.video.videoCapture

// Using the new Kotlin DSL to configure VideoCapture in a clean and idiomatic way
val videoCaptureUseCase =
    videoCapture(videoOutput) {
        targetName = "video_capture_dsl"
        targetRotation = Surface.ROTATION_90
        dynamicRange = DynamicRange.SDR
        mirrorMode = MirrorMode.MIRROR_MODE_ON
        isVideoStabilizationEnabled = true
        targetFrameRate = Range(30, 30)
    }
```

| Parameters |
|---|---|
| `videoOutput: T` | The `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoOutput` to associate with the VideoCapture. |
| `block: https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCaptureScope<T>.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | A receiver lambda on `https://developer.android.com/reference/kotlin/androidx/camera/video/VideoCaptureScope` to configure the VideoCapture. |