Video inside Avalonia composition

GPU Media Playback

Keep video, overlays, transforms, and application chrome in one compositor.

Explore source
Parent systemMediaPlayer
StatusActive
Modules1
RepositoryMediaPlayer/Rendering

GpuMediaPlayer renders decoded video through Avalonia-hosted GPU composition with direct texture upload and compatibility copy paths, avoiding NativeControlHost airspace gaps.

  1. 01

    No NativeControlHost airspace

  2. 02

    Direct GPU texture upload

  3. 03

    Compatibility copy-upload fallback

  4. 04

    QuickTime-style overlay and chrome patterns

From intent
to working system.

01

Open

Source and backend policy establish a playback session.

02

Decode

The selected native or fallback provider produces video frames.

03

Upload

Direct or compatibility paths move frames into GPU resources.

04

Compose

Avalonia draws video beside normal controls and overlays.

Adopt this
capability.

Start with the primary module, then add the related packages only when the application needs those layers. Replace VERSION with the current NuGet version.

01 · Install
Terminal
dotnet add package MediaPlayer.Controls
02 · Use · xml
MainWindow.axaml
<media:GpuMediaPlayer
Source="{Binding CurrentSource}"
AutoPlay="True"
LayoutMode="Uniform"
Volume="100"
PreferDirectGpuTextureUpload="True" />

Use one layer.
Compose the rest.

Read the module beside the complete system.

The implementation, samples, issues, and release notes stay in the parent repository so module details remain connected to the product architecture.

MediaPlayer

Search everything.

Loading the index…

move open esc close

Preparing metadata and full-text search…