# RecordingPacketConsumer

Artifact: [androidx.media3:media3-test-utils](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/test/utils/RecordingPacketConsumer.kt+class:androidx.media3.test.utils.RecordingPacketConsumer)

*** ** * ** ***


```
@ExperimentalApi
public final class RecordingPacketConsumer<T extends Object> implements PacketConsumer<@NonNull T>
```

<br />

*** ** * ** ***

A `https://developer.android.com/reference/androidx/media3/effect/PacketConsumer` implementation that holds a reference to all queued packets, and optionally releases the underlying frames.

## Summary

| ### Public constructors |
|---|
| `<T extends https://developer.android.com/reference/java/lang/Object.html> https://developer.android.com/reference/androidx/media3/test/utils/RecordingPacketConsumer#RecordingPacketConsumer()()` |

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull T, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html>` | `https://developer.android.com/reference/androidx/media3/test/utils/RecordingPacketConsumer#getOnQueue()()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/media3/effect/PacketConsumer.Packet<@https://developer.android.com/reference/androidx/annotation/NonNull T>>` | `https://developer.android.com/reference/androidx/media3/test/utils/RecordingPacketConsumer#getQueuedPackets()()` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull T>` | `https://developer.android.com/reference/androidx/media3/test/utils/RecordingPacketConsumer#getQueuedPayloads()()` |
| `void` | `https://developer.android.com/reference/androidx/media3/test/utils/RecordingPacketConsumer#queuePacket(androidx.media3.effect.PacketConsumer.Packet)(@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/media3/effect/PacketConsumer.Packet<@https://developer.android.com/reference/androidx/annotation/NonNull T> packet)` Queues a `https://developer.android.com/reference/androidx/media3/effect/PacketConsumer.Packet` for processing, suspending the caller if the consumer is at capacity. |
| `void` | `https://developer.android.com/reference/androidx/media3/test/utils/RecordingPacketConsumer#release()()` Releases all resources. |
| `final void` | `https://developer.android.com/reference/androidx/media3/test/utils/RecordingPacketConsumer#setOnQueue(kotlin.Function1)(@https://developer.android.com/reference/androidx/annotation/NonNull Function1<@https://developer.android.com/reference/androidx/annotation/NonNull T, https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html> value)` |

## Public constructors

### RecordingPacketConsumer

```
public <T extends Object> RecordingPacketConsumer()
```

## Public methods

### getOnQueue

```
public final @NonNull Function1<@NonNull T, Unit> getOnQueue()
```

### getQueuedPackets

```
public final @NonNull List<@NonNull PacketConsumer.Packet<@NonNull T>> getQueuedPackets()
```

### getQueuedPayloads

```
public final @NonNull List<@NonNull T> getQueuedPayloads()
```

### queuePacket

```
public void queuePacket(@NonNull PacketConsumer.Packet<@NonNull T> packet)
```

Queues a `https://developer.android.com/reference/androidx/media3/effect/PacketConsumer.Packet` for processing, suspending the caller if the consumer is at capacity.

Once this method returns, the ownership of the `https://developer.android.com/reference/androidx/media3/effect/PacketConsumer#queuePacket(androidx.media3.effect.PacketConsumer.Packet)` is transferred to this `https://developer.android.com/reference/androidx/media3/effect/PacketConsumer`, and the caller should not modify the `https://developer.android.com/reference/androidx/media3/effect/PacketConsumer#queuePacket(androidx.media3.effect.PacketConsumer.Packet)`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull https://developer.android.com/reference/androidx/media3/effect/PacketConsumer.Packet<@https://developer.android.com/reference/androidx/annotation/NonNull T> packet` | The `https://developer.android.com/reference/androidx/media3/effect/PacketConsumer.Packet` to process. |

### release

```
public void release()
```

Releases all resources.

### setOnQueue

```
public final void setOnQueue(@NonNull Function1<@NonNull T, Unit> value)
```