# 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)

*** ** * ** ***


```
class GlTextureFrame.Builder
```

<br />

*** ** * ** ***

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

## Summary

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

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

## Public constructors

### Builder

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

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

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

## Public functions

### build

```
fun build(): GlTextureFrame!
```

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

### setFenceSync

```
@CanIgnoreReturnValue
fun setFenceSync(fenceSync: Long): GlTextureFrame.Builder!
```

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

The default value is `https://developer.android.com/reference/kotlin/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 |
|---|---|
| `fenceSync: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The OpenGL fence sync object. |

### setFormat

```
@CanIgnoreReturnValue
fun setFormat(format: Format!): GlTextureFrame.Builder!
```

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

### setMetadata

```
@CanIgnoreReturnValue
fun setMetadata(metadata: (Mutable)Map<String!, Any!>!): GlTextureFrame.Builder!
```

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

### setPresentationTimeUs

```
@CanIgnoreReturnValue
fun setPresentationTimeUs(presentationTimeUs: Long): GlTextureFrame.Builder!
```

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

### setReleaseTimeNs

```
@CanIgnoreReturnValue
fun setReleaseTimeNs(releaseTimeNs: Long): GlTextureFrame.Builder!
```

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