# SurfaceHolderFrameWriter.Listener

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/SurfaceHolderFrameWriter.java+class:androidx.media3.common.video.SurfaceHolderFrameWriter.Listener)

*** ** * ** ***


```
public interface SurfaceHolderFrameWriter.Listener
```

<br />

*** ** * ** ***

A listener for `https://developer.android.com/reference/androidx/media3/common/video/SurfaceHolderFrameWriter` events.

## Summary

| ### Public methods |
|---|---|
| `abstract void` | `https://developer.android.com/reference/androidx/media3/common/video/SurfaceHolderFrameWriter.Listener#onEnded()()` Called when video output ends. |
| `abstract void` | `https://developer.android.com/reference/androidx/media3/common/video/SurfaceHolderFrameWriter.Listener#onError(androidx.media3.common.VideoFrameProcessingException)(https://developer.android.com/reference/androidx/media3/common/VideoFrameProcessingException videoFrameProcessingException)` Called when an error occurs. |
| `abstract void` | `https://developer.android.com/reference/androidx/media3/common/video/SurfaceHolderFrameWriter.Listener#onFrameAboutToBeRendered(long,long,androidx.media3.common.Format)( long presentationTimeUs, long releaseTimeNs, https://developer.android.com/reference/androidx/media3/common/Format format )` Called when a video frame is about to be rendered. |

## Public methods

### onEnded

```
abstract void onEnded()
```

Called when video output ends.

### onError

```
abstract void onError(VideoFrameProcessingException videoFrameProcessingException)
```

Called when an error occurs.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/VideoFrameProcessingException videoFrameProcessingException` | The error. |

### onFrameAboutToBeRendered

```
abstract void onFrameAboutToBeRendered(
    long presentationTimeUs,
    long releaseTimeNs,
    Format format
)
```

Called when a video frame is about to be rendered.

| Parameters |
|---|---|
| `long presentationTimeUs` | The presentation time of the frame, in microseconds. |
| `long releaseTimeNs` | The system time at which the frame should be displayed, in nanoseconds. Can be compared to `https://developer.android.com/reference/java/lang/System.html#nanoTime()`. It will be `https://developer.android.com/reference/androidx/media3/common/C#TIME_UNSET()`, if the frame is rendered immediately. |
| `https://developer.android.com/reference/androidx/media3/common/Format format` | The format associated with the frame. |