Types

Link copied to clipboard
data class ColorApproximated(val detail: String) : RendererEvent

This renderer showed a frame's colour only approximately, because of a limit of its own conversion: HDR without tone mapping, or a matrix it cannot apply. detail says which.

Link copied to clipboard
data class Failed(val detail: String) : RendererEvent

The renderer failed in a way it cannot recover from.

Link copied to clipboard
data class FramePresented(val pts: Pts, val atNanos: Long, val exact: Boolean) : RendererEvent

A frame reached the display, or the closest thing this renderer can observe; exact says which. Exact comes from the platform's own report (Metal's presented handler, MediaCodec's rendered listener); best effort is the renderer's clock right after its blit.

Link copied to clipboard
data class HdrShown(val transfer: String, val headroom: Float) : RendererEvent

This renderer showed HDR as HDR, with the source transfer transfer, on a display that can show headroom times the brightness of standard range white. The engine turns it into io.github.yuroyami.kiteplayer.VideoDynamicRange.High. A renderer repeats it while it lasts, as it repeats ToneMapEngaged.

Link copied to clipboard

A surface is available again.

Link copied to clipboard
data class SurfaceLost(val detail: String) : RendererEvent

The surface went away. Playback continues without picture.

Link copied to clipboard
data class ToneMapEngaged(val transfer: String, val streamIndex: Int = -1) : RendererEvent

This renderer rolled HDR off to standard dynamic range to show it.

Link copied to clipboard
data class VsyncChanged(val intervalNanos: Long) : RendererEvent

The display's refresh interval changed, for example the window moved to another monitor.