# FrameExtractor.Builder

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

*** ** * ** ***


```
public final class FrameExtractor.Builder
```

<br />

*** ** * ** ***

A builder for `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder#Builder(android.content.Context,androidx.media3.common.MediaItem)(https://developer.android.com/reference/android/content/Context.html context, https://developer.android.com/reference/androidx/media3/common/MediaItem mediaItem)` Creates a new instance. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor` | `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder#build()()` Builds a new `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor` instance. |
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder#setEffects(java.util.List<androidx.media3.common.Effect>)(https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Effect> effects)` Sets the `https://developer.android.com/reference/androidx/media3/common/Effect` to apply to the extracted video frames. |
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/annotation/RequiresApi(value = 34) @https://developer.android.com/reference/androidx/media3/common/util/ExperimentalApi https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder#setEnableUltraHdr(boolean)(boolean enableUltraHdr)` Sets whether to enable UltraHDR extraction. |
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/androidx/annotation/RequiresApi(value = 34) https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder#setExtractHdrFrames(boolean)(boolean extractHdrFrames)` Sets whether to extract HDR video frames as HLG Bitmaps. |
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder#setGlObjectsProvider(androidx.media3.common.GlObjectsProvider)(https://developer.android.com/reference/androidx/media3/common/GlObjectsProvider glObjectsProvider)` Sets the `https://developer.android.com/reference/androidx/media3/common/GlObjectsProvider` to be used by the effect processing pipeline. |
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.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` of `https://developer.android.com/reference/android/media/MediaCodec.html` instances. |
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder#setMediaSourceFactory(androidx.media3.exoplayer.source.MediaSource.Factory)(https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory mediaSourceFactory)` Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory` to be used to create the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource` for the given `https://developer.android.com/reference/androidx/media3/common/MediaItem`. |
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder#setSeekParameters(androidx.media3.exoplayer.SeekParameters)(https://developer.android.com/reference/androidx/media3/exoplayer/SeekParameters seekParameters)` Sets the parameters that control how seek operations are performed. |

## Public constructors

### Builder

```
public Builder(Context context, MediaItem mediaItem)
```

Creates a new instance.

| Parameters |
|---|---|
| `https://developer.android.com/reference/android/content/Context.html context` | The `https://developer.android.com/reference/android/content/Context.html`. |
| `https://developer.android.com/reference/androidx/media3/common/MediaItem mediaItem` | The `https://developer.android.com/reference/androidx/media3/common/MediaItem` from which to extract frames. |

## Public methods

### build

```
public FrameExtractor build()
```

Builds a new `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor` instance.

### setEffects

```
@CanIgnoreReturnValue
public FrameExtractor.Builder setEffects(List<Effect> effects)
```

Sets the `https://developer.android.com/reference/androidx/media3/common/Effect` to apply to the extracted video frames.

| Parameters |
|---|---|
| `https://developer.android.com/reference/java/util/List.html<https://developer.android.com/reference/androidx/media3/common/Effect> effects` | The `https://developer.android.com/reference/java/util/List.html` of `https://developer.android.com/reference/androidx/media3/common/Effect`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | This builder. |

### setEnableUltraHdr

```
@CanIgnoreReturnValue
@RequiresApi(value = 34)
@ExperimentalApi
public FrameExtractor.Builder setEnableUltraHdr(boolean enableUltraHdr)
```

Sets whether to enable UltraHDR extraction.

When set to `true` and `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder#setExtractHdrFrames(boolean)` is `false`, extracting from an HDR source on API 34+ will produce an UltraHDR image (SDR base + Gainmap).

When set to `false`, extracting from an HDR source will always produce a tone-mapped SDR image, even on API 34+.

Defaults to `false`.

| Parameters |
|---|---|
| `boolean enableUltraHdr` | Whether to enable UltraHDR extraction. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | This builder. |

### setExtractHdrFrames

```
@CanIgnoreReturnValue
@RequiresApi(value = 34)
public FrameExtractor.Builder setExtractHdrFrames(boolean extractHdrFrames)
```

Sets whether to extract HDR video frames as HLG Bitmaps.

When set to `true`, extracted HDR frames will have a high bit depth `https://developer.android.com/reference/android/graphics/Bitmap.Config.html` and `https://developer.android.com/reference/android/graphics/ColorSpace.Named.html#BT2020_HLG`. Extracting HDR frames is only supported on API 34+.

When set to `false`, extracted HDR frames will be tone-mapped to SDR (BT.709).

`https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder#setEnableUltraHdr(boolean)` controls whether to generate a `https://developer.android.com/reference/android/graphics/Bitmap.html#getGainmap()`.

Defaults to `false`.

| Parameters |
|---|---|
| `boolean extractHdrFrames` | Whether to extract HDR frames as HLG. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | This builder. |

### setGlObjectsProvider

```
@CanIgnoreReturnValue
public FrameExtractor.Builder setGlObjectsProvider(GlObjectsProvider glObjectsProvider)
```

Sets the `https://developer.android.com/reference/androidx/media3/common/GlObjectsProvider` to be used by the effect processing pipeline.

By default, a `https://developer.android.com/reference/androidx/media3/effect/DefaultGlObjectsProvider` is used.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/GlObjectsProvider glObjectsProvider` | The `https://developer.android.com/reference/androidx/media3/common/GlObjectsProvider`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | This builder. |

### setMediaCodecSelector

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

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecSelector` of `https://developer.android.com/reference/android/media/MediaCodec.html` instances. Defaults to `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecSelector#PREFER_SOFTWARE()`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecSelector mediaCodecSelector` | The `https://developer.android.com/reference/androidx/media3/exoplayer/mediacodec/MediaCodecSelector`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | This builder. |

### setMediaSourceFactory

```
@CanIgnoreReturnValue
public FrameExtractor.Builder setMediaSourceFactory(MediaSource.Factory mediaSourceFactory)
```

Sets the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory` to be used to create the `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource` for the given `https://developer.android.com/reference/androidx/media3/common/MediaItem`. If not set, a `https://developer.android.com/reference/androidx/media3/exoplayer/source/DefaultMediaSourceFactory` will be used.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory mediaSourceFactory` | The `https://developer.android.com/reference/androidx/media3/exoplayer/source/MediaSource.Factory`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | This builder. |

### setSeekParameters

```
@CanIgnoreReturnValue
public FrameExtractor.Builder setSeekParameters(SeekParameters seekParameters)
```

Sets the parameters that control how seek operations are performed. Defaults to `https://developer.android.com/reference/androidx/media3/exoplayer/SeekParameters#DEFAULT()`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/SeekParameters seekParameters` | The `https://developer.android.com/reference/androidx/media3/exoplayer/SeekParameters`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/androidx/media3/inspector/frame/FrameExtractor.Builder` | This builder. |