# PacketProcessor

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/PacketProcessor.kt+class:androidx.media3.effect.PacketProcessor)

*** ** * ** ***


```
@ExperimentalApi
interface PacketProcessor<I : Any?, O : Any?> : PacketConsumer<I>
```

<br />

*** ** * ** ***

A `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer` that processes `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet`s and forwards them to a downstream `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer`.

This interface is experimental and will be renamed or removed in a future release.

| Parameters |
|---|---|
| `<I : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?>` | The type of the input packets. |
| `<O : https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-any/index.html?>` | The type of the output packets. |

## Summary

| ### Public functions |
|---|---|
| `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` | `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketProcessor#setOutput(androidx.media3.effect.PacketConsumer)(output: https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer<O>)` Sets the output `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer` that will receive the processed packets. |

### Inherited functions

From [androidx.media3.effect.PacketConsumer](https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer) `suspend https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer#queuePacket(androidx.media3.effect.PacketConsumer.Packet)(packet: https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet<I>)`

Queues a `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer.Packet` for processing, suspending the caller if the consumer is at capacity.
`suspend https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html` `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer#release()()`

Releases all resources.

## Public functions

### setOutput

```
fun setOutput(output: PacketConsumer<O>): Unit
```

Sets the output `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer` that will receive the processed packets.

| Parameters |
|---|---|
| `output: https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer<O>` | The `https://developer.android.com/reference/kotlin/androidx/media3/effect/PacketConsumer` for the output packets. |