# androidx.media3.decoder

*** ** * ** ***

## Interfaces

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/CryptoConfig` | Configuration for a decoder to allow it to decode encrypted media data. |
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/Decoder` | A media decoder. |
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/Decoder.Callback` | Callback for asynchronous events. |
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/DecoderOutputBuffer.Owner` | Buffer owner. |

## Classes

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/Buffer` | Base class for buffers with flags. |
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/CryptoInfo` | Metadata describing the structure of an encrypted input sample. |
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/DecoderInputBuffer` | Holds input for a decoder. |
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/DecoderOutputBuffer` | Output buffer decoded by a `https://developer.android.com/reference/kotlin/androidx/media3/decoder/Decoder`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/SimpleDecoder` | Base class for `https://developer.android.com/reference/kotlin/androidx/media3/decoder/Decoder`s that use their own decode thread and decode each input buffer immediately into a corresponding output buffer. |
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/SimpleDecoderOutputBuffer` | Buffer for `https://developer.android.com/reference/kotlin/androidx/media3/decoder/SimpleDecoder` output. |
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/VideoDecoderOutputBuffer` | Video decoder output buffer containing video frame data. |

## Exceptions

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/CryptoException` | Thrown when a non-platform component fails to decrypt data. |
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/DecoderException` | Thrown when a `https://developer.android.com/reference/kotlin/androidx/media3/decoder/Decoder` error occurs. |
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/DecoderInputBuffer.InsufficientCapacityException` | Thrown when an attempt is made to write into a `https://developer.android.com/reference/kotlin/androidx/media3/decoder/DecoderInputBuffer` whose `https://developer.android.com/reference/kotlin/androidx/media3/decoder/DecoderInputBuffer#bufferReplacementMode()` is `https://developer.android.com/reference/kotlin/androidx/media3/decoder/DecoderInputBuffer#BUFFER_REPLACEMENT_MODE_DISABLED()` and who `https://developer.android.com/reference/kotlin/androidx/media3/decoder/DecoderInputBuffer#data()` capacity is smaller than required. |

## Annotations

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/decoder/DecoderInputBuffer.BufferReplacementMode` | The buffer replacement mode. |