# FrameProcessor.Factory

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

*** ** * ** ***


```
interface FrameProcessor.Factory
```

<br />

Known direct subclasses [CapturingFrameProcessor.Factory](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/CapturingFrameProcessor.Factory), [DefaultGlFrameProcessor.Factory](https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultGlFrameProcessor.Factory), [EnhancementSessionDecorator.Factory](https://developer.android.com/reference/kotlin/androidx/media3/effect/playservices/EnhancementSessionDecorator.Factory), [FakeFrameProcessor.Factory](https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeFrameProcessor.Factory)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/CapturingFrameProcessor.Factory` | A factory for `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/CapturingFrameProcessor` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultGlFrameProcessor.Factory` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor.Factory` that creates `https://developer.android.com/reference/kotlin/androidx/media3/effect/DefaultGlFrameProcessor` instances. |
| `https://developer.android.com/reference/kotlin/androidx/media3/effect/playservices/EnhancementSessionDecorator.Factory` | Factory for `https://developer.android.com/reference/kotlin/androidx/media3/effect/playservices/EnhancementSessionDecorator`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeFrameProcessor.Factory` | A factory for `https://developer.android.com/reference/kotlin/androidx/media3/test/utils/FakeFrameProcessor` implementations. |

*** ** * ** ***

Factory for FrameProcessor instances.

## Summary

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor!` | `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor.Factory#create(androidx.media3.common.video.FrameWriter,java.util.concurrent.Executor,androidx.media3.common.video.FrameProcessor.Listener)( output: https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameWriter!, listenerExecutor: https://developer.android.com/reference/java/util/concurrent/Executor.html!, listener: https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor.Listener! )` Creates a `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor` that sends frames to the given `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameWriter`. |

## Public functions

### create

```
fun create(
    output: FrameWriter!,
    listenerExecutor: Executor!,
    listener: FrameProcessor.Listener!
): FrameProcessor!
```

Creates a `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor` that sends frames to the given `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameWriter`.

The created `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor` does not `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameWriter#close()` the passed in `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameWriter`.

| Parameters |
|---|---|
| `output: https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameWriter!` | The `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameWriter` to which the `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor` outputs. |
| `listenerExecutor: https://developer.android.com/reference/java/util/concurrent/Executor.html!` | The `https://developer.android.com/reference/java/util/concurrent/Executor.html` on which the `listener` is invoked. |
| `listener: https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor.Listener!` | A `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor.Listener` to be invoked for `https://developer.android.com/reference/kotlin/androidx/media3/common/video/FrameProcessor` events. |