Package-level declarations
Types
Measurements over a whole file, decoded here rather than played.
Creates audio decoders.
The FFmpeg backend, as one session-shaped object.
Converts sample rates with FFmpeg's libswresample, through the aresample filter of the KiteFFmpeg filter graph. Set it in AudioConfig.resampler.
The engine's source and decoders, over KiteFFmpeg.
Creates the platform-selected decoder and, where policy allows, its replay-safe software fallback.
A decoded video frame, still in native memory.
Paints this backend's video frames into a web destination as RGBA, inside the codec module.
The standalone image formats a snapshot can take. Both encoders are in every KiteFFmpeg build.
Turns a decoded CPU-readable frame into tightly packed RGBA on JVM and Android.
Turns a decoded frame into RGBA, on the CPU.
Seek previews and library grids: images at positions, scaled and encoded in one call.
What a GPU renderer needs from a frame, in the backend's own words. The output module defines the renderer seam and never sees this backend; a consumer that owns both maps these two answers onto it in a handful of lines. The memcpy discipline lives HERE, once: a hardware frame crosses as its CVPixelBuffer with no copy at all, and a software frame crosses as its planes copied out whole (stride times rows, one memcpy each) still in their native pixel format, which is the law: YUV until the GPU, never RGBA on the CPU.
A file drawn as peaks and rms, one entry per bucket of bucketDuration, both in 0..1 and mono-mixed. A bucket nothing was decoded into reads zero in both. Two waveforms are equal when every field is, the contents of both arrays included.
Functions
The CVPixelBuffer of a VideoToolbox frame, or null when the frame is not that kind.
Encodes a frame with readable planes as a standalone image: a CapturedFrame from KitePlayer.captureFrame, or any software frame a backend produced.
The buffer's samples as interleaved float, which is what the engine's ring and every audio device want.
The frame's planes for texture upload, or null when the frame lives in hardware memory (use corePixelBufferOrNull there instead; downloading to feed a GPU that could wrap the surface directly would be the exact copy this path exists to avoid).
The typed route to MediaItem.videoFilter: a chain built with KiteFFmpeg's videoFilters { } lands on the item as the string the graph builder reads. No opt-in needed, because the DSL is not raw FFmpeg syntax; the raw field stays behind KitePlayerLowLevelApi for chains the typed set lacks.