Package-level declarations

Types

Link copied to clipboard
class AVPlayerVideoTexture(val player: AVPlayer, width: Int, height: Int) : Texture

iOS Texture that pipes AVPlayer frames into a GL_TEXTURE_2D. Real iOS devices honour our 32BGRA + IOSurface request and the buffer uploads directly via the packed path. Hosts that ignore the request (notably Mac "Designed for iPad" Simulator, which returns a Lossy GPU-resident planar buffer) take the CoreImage path: a GPU readback into a CPU BGRA8 bitmap that uploads through the same texSubImage2D call.

Link copied to clipboard
abstract class CallbackVideoTexture(width: Int, height: Int, uploadFormat: Int, usePbo: Boolean = false) : Texture

Shared base for JVM-side video textures whose source pushes decoded frames from a worker thread (libVLC, FFmpeg, JavaCV, JavaFX MediaView-snapshot, …):

Link copied to clipboard
class FFmpegVideoTexture(val mediaUrl: String, width: Int, height: Int, tryHardwareDecode: Boolean = true) : CallbackVideoTexture, VideoPlayback

JVM video texture driven by direct javacpp-presets FFmpeg — no JavaCV wrapper. A worker thread runs the demux→decode→scale loop by hand:

Link copied to clipboard
class HtmlVideoTexture(val video: HTMLVideoElement, width: Int, height: Int) : Texture

Web (js + wasmJs) earth.worldwind.render.Texture that mirrors a playing HTMLVideoElement onto a GL_TEXTURE_2D sampler. Each bindTexture call uploads the latest decoded frame via the native WebGL texImage2D(target, level, internalFormat, format, type, HTMLVideoElement) overload — the browser handles decoding and color-space conversion; no CPU pixel copy.

Link copied to clipboard
class JavaCvVideoTexture(val mediaUrl: String, width: Int, height: Int) : CallbackVideoTexture, VideoPlayback

JVM video texture driven by JavaCV's high-level FFmpegFrameGrabber. A worker thread loops on grabImage(), copies the BGRA frame bytes out, and pushes them to the CallbackVideoTexture base for GL-thread upload.

Link copied to clipboard
class JavaFxVideoTexture(val mediaUrl: String, width: Int, height: Int) : CallbackVideoTexture, VideoPlayback

JVM video texture driven by JavaFX MediaPlayer. JavaFX has no per-frame callback API, so we host the MediaView in an off-screen Scene (no javafx.stage.Stage attached) and snapshot the view on every JavaFX AnimationTimer pulse — that's the standard idiom for "give me the current video frame as pixels".

Link copied to clipboard
open class MediaSurfaceTexture(width: Int, height: Int) : OesExternalTexture

Android-specific OesExternalTexture that bridges a SurfaceTexture / Surface consumer (typically MediaPlayer, MediaCodec, or Camera2) to the WorldWind GL pipeline. The lifecycle is GL-thread-driven:

Link copied to clipboard
interface VideoPlayback

Common playback contract for the JVM video textures (VLCJ, JavaCV, FFmpeg, JavaFX). Every JVM *VideoTexture exposes the same minimal API; this interface formalizes that so tutorial / app code can target one type instead of carrying a per-backend adapter.

Link copied to clipboard
class VlcjVideoTexture(val mediaUrl: String, width: Int, height: Int) : CallbackVideoTexture, VideoPlayback

JVM video texture driven by VLCJ (libVLC bindings). VLCJ's CallbackVideoSurface decodes frames in BGRA (RV32) into a native ByteBuffer; on every render callback we copy them into the CallbackVideoTexture base and the GL thread uploads on bind.