# GlTextureFrame.Builder

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

*** ** * ** ***


```
public final class GlTextureFrame.Builder
```

<br />

*** ** * ** ***

A builder for `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame` instances.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder#Builder(androidx.media3.common.GlTextureInfo,java.util.concurrent.Executor,java.util.function.Consumer<androidx.media3.common.GlTextureInfo>)( https://developer.android.com/reference/androidx/media3/common/GlTextureInfo glTextureInfo, https://developer.android.com/reference/java/util/concurrent/Executor.html releaseTextureExecutor, https://developer.android.com/reference/java/util/function/Consumer.html<https://developer.android.com/reference/androidx/media3/common/GlTextureInfo> releaseTextureCallback )` Creates a new `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder`. |

| ### Public methods |
|---|---|
| `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame` | `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder#build()()` Builds the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame` instance. |
| `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder#setFenceSync(long)(long fenceSync)` Sets the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame#fenceSync()`. |
| `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder#setFormat(androidx.media3.common.Format)(https://developer.android.com/reference/androidx/media3/common/Format format)` Sets the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame#format()`. |
| `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder#setMetadata(java.util.Map<java.lang.String,java.lang.Object>)(https://developer.android.com/reference/java/util/Map.html<https://developer.android.com/reference/java/lang/String.html, https://developer.android.com/reference/java/lang/Object.html> metadata)` Sets the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame#metadata()`. |
| `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder#setPresentationTimeUs(long)(long presentationTimeUs)` Sets the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame#presentationTimeUs()`. |
| `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder#setReleaseTimeNs(long)(long releaseTimeNs)` Sets the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame#releaseTimeNs()`. |

## Public constructors

### Builder

```
public Builder(
    GlTextureInfo glTextureInfo,
    Executor releaseTextureExecutor,
    Consumer<GlTextureInfo> releaseTextureCallback
)
```

Creates a new `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame.Builder`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/GlTextureInfo glTextureInfo` | The `https://developer.android.com/reference/androidx/media3/common/GlTextureInfo` to wrap. |
| `https://developer.android.com/reference/java/util/concurrent/Executor.html releaseTextureExecutor` | The `https://developer.android.com/reference/java/util/concurrent/Executor.html` on which the ` releaseTextureCallback` is called. |
| `https://developer.android.com/reference/java/util/function/Consumer.html<https://developer.android.com/reference/androidx/media3/common/GlTextureInfo> releaseTextureCallback` | The `https://developer.android.com/reference/java/util/function/Consumer.html` to call to release the texture. |

## Public methods

### build

```
public GlTextureFrame build()
```

Builds the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame` instance.

### setFenceSync

```
@CanIgnoreReturnValue
public GlTextureFrame.Builder setFenceSync(long fenceSync)
```

Sets the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame#fenceSync()`.

The default value is `https://developer.android.com/reference/androidx/media3/common/util/GlUtil#GL_FENCE_SYNC_UNSET()`.

The consumer of the frame is expected to wait on this fence (e.g. using `glWaitSync` or `glClientWaitSync`) to ensure the texture content is fully written before reading it.

| Parameters |
|---|---|
| `long fenceSync` | The OpenGL fence sync object. |

### setFormat

```
@CanIgnoreReturnValue
public GlTextureFrame.Builder setFormat(Format format)
```

Sets the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame#format()`.

### setMetadata

```
@CanIgnoreReturnValue
public GlTextureFrame.Builder setMetadata(Map<String, Object> metadata)
```

Sets the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame#metadata()`.

### setPresentationTimeUs

```
@CanIgnoreReturnValue
public GlTextureFrame.Builder setPresentationTimeUs(long presentationTimeUs)
```

Sets the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame#presentationTimeUs()`.

### setReleaseTimeNs

```
@CanIgnoreReturnValue
public GlTextureFrame.Builder setReleaseTimeNs(long releaseTimeNs)
```

Sets the `https://developer.android.com/reference/androidx/media3/effect/GlTextureFrame#releaseTimeNs()`.