# MediaCodecAdapter.Configuration

Artifact: [androidx.media3:media3-exoplayer](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.java+class:androidx.media3.exoplayer.mediacodec.MediaCodecAdapter.Configuration)

*** ** * ** ***


```
public final class MediaCodecAdapter.Configuration
```

<br />

*** ** * ** ***

Configuration parameters for a `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter`.

## Summary

| ### Public fields |
|---|---|
| `final https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecInfo` | `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#codecInfo()` Information about the `https://developer.android.com/reference/android/media/MediaCodec.html` being configured. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/media/MediaCrypto.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#crypto()` For DRM protected playbacks, a `https://developer.android.com/reference/android/media/MediaCrypto.html` to use for decryption. |
| `final https://developer.android.com/reference/androidx/media3/common/Format` | `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#format()` The `https://developer.android.com/reference/androidx/media3/common/Format` for which the codec is being configured. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/LoudnessCodecController` | `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#loudnessCodecController()` The `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/LoudnessCodecController` for audio codecs. |
| `final https://developer.android.com/reference/android/media/MediaFormat.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#mediaFormat()` The `https://developer.android.com/reference/android/media/MediaFormat.html` for which the codec is being configured. |
| `final @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/Surface.html` | `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#surface()` For video decoding, the output where the object will render the decoded frames. |

| ### Public methods |
|---|---|
| `static https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration` | `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#createForAudioDecoding(androidx.media3.exoplayer.mediacodec.MediaCodecInfo,android.media.MediaFormat,androidx.media3.common.Format,android.media.MediaCrypto,androidx.media3.exoplayer.mediacodec.LoudnessCodecController)( https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecInfo codecInfo, https://developer.android.com/reference/android/media/MediaFormat.html mediaFormat, https://developer.android.com/reference/androidx/media3/common/Format format, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/media/MediaCrypto.html crypto, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/LoudnessCodecController loudnessCodecController )` Creates a configuration for audio decoding. |
| `static https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration` | `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#createForVideoDecoding(androidx.media3.exoplayer.mediacodec.MediaCodecInfo,android.media.MediaFormat,androidx.media3.common.Format,android.view.Surface,android.media.MediaCrypto)( https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecInfo codecInfo, https://developer.android.com/reference/android/media/MediaFormat.html mediaFormat, https://developer.android.com/reference/androidx/media3/common/Format format, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/Surface.html surface, @https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/media/MediaCrypto.html crypto )` Creates a configuration for video decoding. |

## Public fields

### codecInfo

```
public final MediaCodecInfo codecInfo
```

Information about the `https://developer.android.com/reference/android/media/MediaCodec.html` being configured.

### crypto

```
public final @Nullable MediaCrypto crypto
```

For DRM protected playbacks, a `https://developer.android.com/reference/android/media/MediaCrypto.html` to use for decryption.

### format

```
public final Format format
```

The `https://developer.android.com/reference/androidx/media3/common/Format` for which the codec is being configured.

### loudnessCodecController

```
public final @Nullable LoudnessCodecController loudnessCodecController
```

The `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/LoudnessCodecController` for audio codecs.

### mediaFormat

```
public final MediaFormat mediaFormat
```

The `https://developer.android.com/reference/android/media/MediaFormat.html` for which the codec is being configured.

### surface

```
public final @Nullable Surface surface
```

For video decoding, the output where the object will render the decoded frames. This must be null if the codec is not a video decoder, or if it is configured for `https://developer.android.com/reference/java/nio/ByteBuffer.html` output.

## Public methods

### createForAudioDecoding

```
public static MediaCodecAdapter.Configuration createForAudioDecoding(
    MediaCodecInfo codecInfo,
    MediaFormat mediaFormat,
    Format format,
    @Nullable MediaCrypto crypto,
    @Nullable LoudnessCodecController loudnessCodecController
)
```

Creates a configuration for audio decoding.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecInfo codecInfo` | See `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#codecInfo()`. |
| `https://developer.android.com/reference/android/media/MediaFormat.html mediaFormat` | See `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#mediaFormat()`. |
| `https://developer.android.com/reference/androidx/media3/common/Format format` | See `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#format()`. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/media/MediaCrypto.html crypto` | See `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#crypto()`. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/LoudnessCodecController loudnessCodecController` | See `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#loudnessCodecController()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration` | The created instance. |

### createForVideoDecoding

```
public static MediaCodecAdapter.Configuration createForVideoDecoding(
    MediaCodecInfo codecInfo,
    MediaFormat mediaFormat,
    Format format,
    @Nullable Surface surface,
    @Nullable MediaCrypto crypto
)
```

Creates a configuration for video decoding.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecInfo codecInfo` | See `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#codecInfo()`. |
| `https://developer.android.com/reference/android/media/MediaFormat.html mediaFormat` | See `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#mediaFormat()`. |
| `https://developer.android.com/reference/androidx/media3/common/Format format` | See `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#format()`. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/view/Surface.html surface` | See `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#surface()`. |
| `@https://developer.android.com/reference/androidx/annotation/Nullable https://developer.android.com/reference/android/media/MediaCrypto.html crypto` | See `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration#crypto()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecAdapter.Configuration` | The created instance. |