# EncoderFrameWriter.Listener

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

*** ** * ** ***


```
public interface EncoderFrameWriter.Listener
```

<br />

*** ** * ** ***

Listener for `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter` events.

## Summary

| ### Public methods |
|---|---|
| `default https://developer.android.com/reference/androidx/media3/common/Format` | `[onConfigure](https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter.Listener#onConfigure(androidx.media3.common.Format))(https://developer.android.com/reference/androidx/media3/common/Format requestedFormat)` **This method is deprecated.** Prepare the `https://developer.android.com/reference/androidx/media3/common/Format` in the `https://developer.android.com/reference/androidx/media3/transformer/Codec.EncoderFactory` passed to the `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter` constructor instead, so `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter#getInfo()` and `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter#configure(androidx.media3.common.Format,long)` use the same `https://developer.android.com/reference/androidx/media3/common/Format`. <br /> |
| `default void` | `[onEncoderCreated](https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter.Listener#onEncoderCreated(androidx.media3.transformer.Codec))(https://developer.android.com/reference/androidx/media3/transformer/Codec encoder)` **This method is deprecated.** Obtain the created `https://developer.android.com/reference/androidx/media3/transformer/Codec` in `https://developer.android.com/reference/androidx/media3/transformer/Codec.EncoderFactory#createForVideoEncoding(androidx.media3.common.Format,android.media.metrics.LogSessionId)` on the factory passed to the `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter` constructor instead. <br /> |
| `abstract void` | `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter.Listener#onEndOfStream()()` Called when the end of stream has been reached and is about to be signaled downstream. |
| `abstract void` | `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter.Listener#onError(androidx.media3.common.VideoFrameProcessingException)(https://developer.android.com/reference/androidx/media3/common/VideoFrameProcessingException e)` Called when an asynchronous error occurs. |

## Public methods

### onConfigure

```
default Format [onConfigure](https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter.Listener#onConfigure(androidx.media3.common.Format))(Format requestedFormat)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Prepare the `https://developer.android.com/reference/androidx/media3/common/Format` in the `https://developer.android.com/reference/androidx/media3/transformer/Codec.EncoderFactory` passed to the `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter` constructor instead, so `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter#getInfo()` and `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter#configure(androidx.media3.common.Format,long)` use the same `https://developer.android.com/reference/androidx/media3/common/Format`.

Called synchronously when `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter#configure(androidx.media3.common.Format,long)` is called. The returned `https://developer.android.com/reference/androidx/media3/common/Format` is used to create the encoder.

### onEncoderCreated

```
default void [onEncoderCreated](https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter.Listener#onEncoderCreated(androidx.media3.transformer.Codec))(Codec encoder)
```

> [!CAUTION]
> **This method is deprecated.**   
>
> Obtain the created `https://developer.android.com/reference/androidx/media3/transformer/Codec` in `https://developer.android.com/reference/androidx/media3/transformer/Codec.EncoderFactory#createForVideoEncoding(androidx.media3.common.Format,android.media.metrics.LogSessionId)` on the factory passed to the `https://developer.android.com/reference/androidx/media3/transformer/EncoderFrameWriter` constructor instead.

Called when the encoder is created so downstream components can receive its output.

### onEndOfStream

```
abstract void onEndOfStream()
```

Called when the end of stream has been reached and is about to be signaled downstream.

### onError

```
abstract void onError(VideoFrameProcessingException e)
```

Called when an asynchronous error occurs.