PlayerConfig
Everything that is decided when the player is created.
Config is immutable and passed once. Anything genuinely changeable while playing is a method on KitePlayer instead. This removes a whole class of bug that libmpv has and documents: an option set after initialisation that is silently ignored.
The engine's session core reads these values: the sync mode, the frame drop policy, every buffering threshold, the audio language preference, the two publication intervals, and the backends. The members nothing reads are marked one by one below, each with a pointer to where they are decided.
Constructors
Properties
Whether interlaced video is deinterlaced. See DeinterlacePolicy. A deinterlaced stream decodes in software, like any stream with a video filter.
How playback follows a clock set with KitePlayer.setExternalClock. See ExternalClock.
Emit PlayerEvent.FramePresented per frame. Off by default: sixty events a second is a cost nobody should pay unasked.
What to do about hardware decoding.
How HDR video reaches the screen. Change it live with KitePlayer.setHdrPolicy; this is only the value a fresh player starts at.
Which keyframe a SeekMode.Keyframe seek lands on. Change it live with KitePlayer.setKeyframeChoice; this is only the value a fresh player starts at.
Network byte supply and the engine's byte cache. The resolver turns URIs into MediaIoResolver-supplied readers at open; the cache wraps every MediaIo-fed open with a forward window and a RAM seek-back window.
How often KitePlayer.progress is sampled while playing.
How a queue moves from one item to the next, including the gapless handoff. See QueueConfig.
How much work renderers spend on the picture beyond decoding it correctly.
How often KitePlayer.stats is sampled.
Subtitle selection, timing and styling. The session core reads the language preferences and the forced-track rule when it picks a track, applies SubtitleConfig.delay when it times cues, and passes SubtitleConfig.fontScale to the platform rasterizer.
False opens media with video decoding parked: audio plays, no video frame is decoded.