# DefaultDecoderFactory.Builder

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.Builder)

*** ** * ** ***


```
public final class DefaultDecoderFactory.Builder
```

<br />

*** ** * ** ***

A builder for `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder#Builder(android.content.Context)(https://developer.android.com/reference/android/content/Context.html context)` Creates a new `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder`. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory` | `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder#build()()` Creates an instance of `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory`, using defaults if values are unset. |
| `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder#setCodecPriority(int)( @https://developer.android.com/reference/androidx/media3/common/C.Priority @https://developer.android.com/reference/androidx/annotation/IntRange(to = https://developer.android.com/reference/androidx/media3/common/C.PRIORITY_MAX) int codecPriority )` Sets the codec priority. |
| `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder#setEnableDecoderFallback(boolean)(boolean enableDecoderFallback)` Sets whether the decoder can fallback. |
| `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder#setListener(androidx.media3.transformer.DefaultDecoderFactory.Listener)(https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Listener listener)` Sets the `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Listener`. |
| `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder#setMediaCodecSelector(androidx.media3.exoplayer.mediacodec.MediaCodecSelector)(https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecSelector mediaCodecSelector)` Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecSelector` used when selecting a decoder. |
| `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder#setShouldConfigureOperatingRate(boolean)(boolean shouldConfigureOperatingRate)` Sets whether a device-specific decoder `https://developer.android.com/reference/android/media/MediaFormat.html#KEY_OPERATING_RATE` should be requested. |

## Public constructors

### Builder

```
public Builder(Context context)
```

Creates a new `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Builder`.

## Public methods

### build

```
public DefaultDecoderFactory build()
```

Creates an instance of `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory`, using defaults if values are unset.

### setCodecPriority

```
@CanIgnoreReturnValue
public DefaultDecoderFactory.Builder setCodecPriority(
    @C.Priority @IntRange(to = C.PRIORITY_MAX) int codecPriority
)
```

Sets the codec priority.

Specifying codec priority allows the resource manager in the platform to reclaim less important codecs before more important codecs.

It is recommended to use predefined `https://developer.android.com/reference/androidx/media3/common/C.Priority` like `https://developer.android.com/reference/androidx/media3/common/C#PRIORITY_PROCESSING_FOREGROUND()`, `https://developer.android.com/reference/androidx/media3/common/C#PRIORITY_PROCESSING_BACKGROUND()` or priority values defined relative to those defaults.

This method is a no-op on API versions before 35.

The default value is `https://developer.android.com/reference/androidx/media3/common/C#PRIORITY_PROCESSING_FOREGROUND()`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/media3/common/C.Priority @https://developer.android.com/reference/androidx/annotation/IntRange(to = https://developer.android.com/reference/androidx/media3/common/C.PRIORITY_MAX) int codecPriority` | The `https://developer.android.com/reference/androidx/media3/common/C.Priority` for the codec. Should be at most `https://developer.android.com/reference/androidx/media3/common/C#PRIORITY_MAX()`. |

### setEnableDecoderFallback

```
@CanIgnoreReturnValue
public DefaultDecoderFactory.Builder setEnableDecoderFallback(boolean enableDecoderFallback)
```

Sets whether the decoder can fallback.

This decides 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.

The default value is `false`.

### setListener

```
@CanIgnoreReturnValue
public DefaultDecoderFactory.Builder setListener(DefaultDecoderFactory.Listener listener)
```

Sets the `https://developer.android.com/reference/androidx/media3/transformer/DefaultDecoderFactory.Listener`.

### setMediaCodecSelector

```
@CanIgnoreReturnValue
public DefaultDecoderFactory.Builder setMediaCodecSelector(MediaCodecSelector mediaCodecSelector)
```

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecSelector` used when selecting a decoder.

The default value is `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecSelector#DEFAULT()`

### setShouldConfigureOperatingRate

```
@CanIgnoreReturnValue
public DefaultDecoderFactory.Builder setShouldConfigureOperatingRate(boolean shouldConfigureOperatingRate)
```

Sets whether a device-specific decoder `https://developer.android.com/reference/android/media/MediaFormat.html#KEY_OPERATING_RATE` should be requested.

This is a best-effort hint to the codec. Setting this to `true` might improve decoding performance.

The effect of this field will be most noticeable when no other `https://developer.android.com/reference/android/media/MediaCodec.html` instances are in use.

Defaults to `false`.

| Parameters |
|---|---|
| `boolean shouldConfigureOperatingRate` | Whether to apply an `https://developer.android.com/reference/android/media/MediaFormat.html#KEY_OPERATING_RATE` configuration to the decoder. |