# VideoGraph.Factory

# VideoGraph.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/VideoGraph.java+class:androidx.media3.common.VideoGraph.Factory)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/common/VideoGraph.Factory "View this page in Java")

<br />

```
interface VideoGraph.Factory
```

<br />

Known direct subclasses  
[MultipleInputVideoGraph.Factory](https://developer.android.com/reference/kotlin/androidx/media3/effect/MultipleInputVideoGraph.Factory),[SingleInputVideoGraph.Factory](https://developer.android.com/reference/kotlin/androidx/media3/effect/SingleInputVideoGraph.Factory)  

|------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [MultipleInputVideoGraph.Factory](https://developer.android.com/reference/kotlin/androidx/media3/effect/MultipleInputVideoGraph.Factory) | A[VideoGraph.Factory](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph.Factory)for[MultipleInputVideoGraph](https://developer.android.com/reference/kotlin/androidx/media3/effect/MultipleInputVideoGraph). |
| [SingleInputVideoGraph.Factory](https://developer.android.com/reference/kotlin/androidx/media3/effect/SingleInputVideoGraph.Factory)     | A[VideoGraph.Factory](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph.Factory)for[SingleInputVideoGraph](https://developer.android.com/reference/kotlin/androidx/media3/effect/SingleInputVideoGraph).     |

*** ** * ** ***

A factory for[VideoGraph](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph)instances.

## Summary

|                                       ### Public functions                                        |
|---------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [VideoGraph](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph)`!` | [create](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph.Factory#create(android.content.Context,androidx.media3.common.ColorInfo,androidx.media3.common.DebugViewProvider,androidx.media3.common.VideoGraph.Listener,java.util.concurrent.Executor,long,boolean))`(` ` context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!,` ` outputColorInfo: `[ColorInfo](https://developer.android.com/reference/kotlin/androidx/media3/common/ColorInfo)`!,` ` debugViewProvider: `[DebugViewProvider](https://developer.android.com/reference/kotlin/androidx/media3/common/DebugViewProvider)`!,` ` listener: `[VideoGraph.Listener](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph.Listener)`!,` ` listenerExecutor: `[Executor](https://developer.android.com/reference/java/util/concurrent/Executor.html)`!,` ` initialTimestampOffsetUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`,` ` renderFramesAutomatically: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) `)` Creates a new[VideoGraph](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph)instance. |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)               | [supportsMultipleInputs](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph.Factory#supportsMultipleInputs())`()` Returns whether the[created](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph.Factory#create(android.content.Context,androidx.media3.common.ColorInfo,androidx.media3.common.DebugViewProvider,androidx.media3.common.VideoGraph.Listener,java.util.concurrent.Executor,long,boolean))[VideoGraph](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph)supports multiple video[inputs](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph#registerInputStream(int,int,androidx.media3.common.Format,java.util.List<androidx.media3.common.Effect>,long)).                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |

## Public functions

### create

```
fun create(
    context: Context!,
    outputColorInfo: ColorInfo!,
    debugViewProvider: DebugViewProvider!,
    listener: VideoGraph.Listener!,
    listenerExecutor: Executor!,
    initialTimestampOffsetUs: Long,
    renderFramesAutomatically: Boolean
): VideoGraph!
```

Creates a new[VideoGraph](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph)instance.  

|                                                              Parameters                                                              |
|--------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `context: `[Context](https://developer.android.com/reference/android/content/Context.html)`!`                                        | A[Context](https://developer.android.com/reference/android/content/Context.html).                                                                                                                                                                                                                                                                                                                         |
| `outputColorInfo: `[ColorInfo](https://developer.android.com/reference/kotlin/androidx/media3/common/ColorInfo)`!`                   | The[ColorInfo](https://developer.android.com/reference/kotlin/androidx/media3/common/ColorInfo)for the output frames.                                                                                                                                                                                                                                                                                     |
| `debugViewProvider: `[DebugViewProvider](https://developer.android.com/reference/kotlin/androidx/media3/common/DebugViewProvider)`!` | A[DebugViewProvider](https://developer.android.com/reference/kotlin/androidx/media3/common/DebugViewProvider).                                                                                                                                                                                                                                                                                            |
| `listener: `[VideoGraph.Listener](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph.Listener)`!`      | A[Listener](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph.Listener).                                                                                                                                                                                                                                                                                                   |
| `listenerExecutor: `[Executor](https://developer.android.com/reference/java/util/concurrent/Executor.html)`!`                        | The[Executor](https://developer.android.com/reference/java/util/concurrent/Executor.html)on which the`listener`is invoked.                                                                                                                                                                                                                                                                                |
| `initialTimestampOffsetUs: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)                            | The timestamp offset for the first frame, in microseconds.                                                                                                                                                                                                                                                                                                                                                |
| `renderFramesAutomatically: `[Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)                     | If`true`, the instance will render output frames to the[output surface](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph#setOutputSurfaceInfo(androidx.media3.common.SurfaceInfo))automatically as the instance is done processing them. If`false`, the instance will block until`VideoGraph#renderOutputFrameWithMediaPresentationTime()`is called, to render the frame. |

|                                              Returns                                              |
|---------------------------------------------------------------------------------------------------|-----------------|
| [VideoGraph](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph)`!` | A new instance. |

### supportsMultipleInputs

```
fun supportsMultipleInputs(): Boolean
```

Returns whether the[created](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph.Factory#create(android.content.Context,androidx.media3.common.ColorInfo,androidx.media3.common.DebugViewProvider,androidx.media3.common.VideoGraph.Listener,java.util.concurrent.Executor,long,boolean))[VideoGraph](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph)supports multiple video[inputs](https://developer.android.com/reference/kotlin/androidx/media3/common/VideoGraph#registerInputStream(int,int,androidx.media3.common.Format,java.util.List<androidx.media3.common.Effect>,long)).