# DefaultDecoderFactory

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

*** ** * ** ***


```
@UnstableApi
class DefaultDecoderFactory : Codec.DecoderFactory
```

<br />

*** ** * ** ***

Default implementation of `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec.DecoderFactory` that uses `https://developer.android.com/reference/android/media/MediaCodec.html` for decoding.

## Summary

| ### Nested types |
|---|
| `class https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory.Builder` A builder for `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory` instances. |
| `interface https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory.Listener` Listener for decoder factory events. |

| ### Public constructors |
|---|
| `[DefaultDecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory#DefaultDecoderFactory(android.content.Context))(context: https://developer.android.com/reference/android/content/Context.html!)` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory.Builder` instead. <br /> |
| `[DefaultDecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory#DefaultDecoderFactory(android.content.Context,boolean,androidx.media3.transformer.DefaultDecoderFactory.Listener))( context: https://developer.android.com/reference/android/content/Context.html!, enableDecoderFallback: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, listener: https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory.Listener! )` **This function is deprecated.** Use `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory.Builder` instead. <br /> |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultCodec!` | `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory#createForAudioDecoding(androidx.media3.common.Format,android.media.metrics.LogSessionId)(format: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!, logSessionId: https://developer.android.com/reference/android/media/metrics/LogSessionId.html?)` Returns a `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec` for audio decoding. |
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultCodec!` | `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory#createForVideoDecoding(androidx.media3.common.Format,android.view.Surface,boolean,android.media.metrics.LogSessionId)( format: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!, outputSurface: https://developer.android.com/reference/android/view/Surface.html!, requestSdrToneMapping: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html, logSessionId: https://developer.android.com/reference/android/media/metrics/LogSessionId.html? )` Returns a `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec` for video decoding. |

## Public constructors

### DefaultDecoderFactory

```
[DefaultDecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory#DefaultDecoderFactory(android.content.Context))(context: Context!)
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory.Builder` instead.

### DefaultDecoderFactory

```
[DefaultDecoderFactory](https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory#DefaultDecoderFactory(android.content.Context,boolean,androidx.media3.transformer.DefaultDecoderFactory.Listener))(
    context: Context!,
    enableDecoderFallback: Boolean,
    listener: DefaultDecoderFactory.Listener!
)
```

> [!CAUTION]
> **This function is deprecated.**   
>
> Use `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory.Builder` instead.

Creates a new factory that selects the most preferred decoder, optionally falling back to less preferred decoders if initialization fails.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html!` | The context. |
| `enableDecoderFallback: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to enable fallback to lower-priority decoders if decoder initialization fails. This may result in using a decoder that is less efficient or slower than the primary decoder. |
| `listener: https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultDecoderFactory.Listener!` | Listener for codec initialization errors. |

## Public functions

### createForAudioDecoding

```
fun createForAudioDecoding(format: Format!, logSessionId: LogSessionId?): DefaultCodec!
```

Returns a `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec` for audio decoding.

| Parameters |
|---|---|
| `format: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/Format` (of the input data) used to determine the underlying decoder and its configuration values. |
| `logSessionId: https://developer.android.com/reference/android/media/metrics/LogSessionId.html?` | The optional `https://developer.android.com/reference/android/media/metrics/LogSessionId.html` of the `https://developer.android.com/reference/android/media/metrics/EditingSession.html`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultCodec!` | A `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec` for audio decoding. |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/ExportException` | If no suitable `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec` can be created. |

### createForVideoDecoding

```
fun createForVideoDecoding(
    format: Format!,
    outputSurface: Surface!,
    requestSdrToneMapping: Boolean,
    logSessionId: LogSessionId?
): DefaultCodec!
```

Returns a `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec` for video decoding.

| Parameters |
|---|---|
| `format: https://developer.android.com/reference/kotlin/androidx/media3/common/Format!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/Format` (of the input data) used to determine the underlying decoder and its configuration values. |
| `outputSurface: https://developer.android.com/reference/android/view/Surface.html!` | The `https://developer.android.com/reference/android/view/Surface.html` to which the decoder output is rendered. |
| `requestSdrToneMapping: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to request tone-mapping to SDR. |
| `logSessionId: https://developer.android.com/reference/android/media/metrics/LogSessionId.html?` | The optional `https://developer.android.com/reference/android/media/metrics/LogSessionId.html` of the `https://developer.android.com/reference/android/media/metrics/EditingSession.html`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/DefaultCodec!` | A `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec` for video decoding. |

| Throws |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/transformer/ExportException` | If no suitable `https://developer.android.com/reference/kotlin/androidx/media3/transformer/Codec` can be created. |