Skip to content

Releases: Bogdan7c/fastiplayer

Fastiplayer v0.2.0

Fastiplayer v0.2.0 Pre-release
Pre-release

Choose a tag to compare

@Bogdan7c Bogdan7c released this 19 Oct 22:47

Fastiplayer v0.2.0 — release notes

Second public development release: Linux-first · source-only · active development before 1.0. It is a GitHub prerelease with generated source archives only. No portable binaries, AppImage, Flatpak, or Windows installer are provided. It is not a stable-API or production-readiness announcement.

Highlights

  • Subtitles. A native Rust subtitle engine with its own GPU pass between the video and the interface (issue #1).
    • Formats: SRT, WebVTT, ASS/SSA (a port of libass 0.17.5 behaviour checked against libass reference images), PGS inside MKV, MP4 mov_text, YouTube srv3, and TTML/IMSC.
    • Sources: sidecar and dropped files, embedded MKV/MP4 tracks with attached fonts, YouTube manual, automatic, and auto-translated captions through yt-dlp, HLS WebVTT, and DASH text tracks.
    • The exact limits are in the subtitle compatibility matrix, and the user guide covers the controls.
  • Bundled software decoder. The build downloads FFmpeg 8.1.3 and dav1d 1.5.4, checks them against pinned SHA-256 sums, and builds a minimal LGPL copy next to the player in target/<profile>/lib/.
    • The system FFmpeg no longer matters. Machines without VA-API, NVIDIA among them, can always play H.264, H.265, VP8, VP9, and AV1 in software.
    • When VA-API can decode a stream, the default auto backend still prefers hardware.
  • Drag-and-drop of files, folders, playlists, and links on Wayland and X11 (issue #7).
  • Single instance. Opening a file while Fastiplayer is running forwards it to the open window.
  • Audio tracks and dubbed audio. An audio-track menu; YouTube videos with dubbed audio list their languages.
  • A/V sync for ffmpeg-made MP4 files. Edit lists are honoured in local MP4, HLS fMP4, and DASH, so audio no longer runs up to ~0.3 s ahead of the picture.
  • Clearer behaviour on errors. Plain-text error causes, skipped broken queue items with a reason, recovery from a broken config, and fallback when the audio device disappears.

The full list is in the changelog.

Build from source

Follow the README quick start. It lists packages for Arch/CachyOS, Ubuntu/Debian, and Fedora/RHEL.

The pinned toolchain is Rust 1.99.0. Building now needs meson, nasm, ninja, and curl instead of FFmpeg development packages. The first build spends about a minute on FFmpeg and dav1d.

  • Offline builds: set FASTIPLAYER_FFMPEG_ARCHIVE and FASTIPLAYER_DAV1D_ARCHIVE to local archives. Their sums are still checked.
  • Distribution packagers: build with --no-default-features --features system-ffmpeg to link the system FFmpeg 8.1+ instead.

Licenses

  • First-party code is MIT.
  • The bundled FFmpeg is LGPL-2.1-or-later and dav1d is BSD-2-Clause. Their license texts are copied next to the libraries, and both libraries can be replaced with your own build.
  • Patched upstream crates keep their own licenses; see the patch inventory.

Security

  • rustls is updated to 0.23.46 (RUSTSEC-2026-0285, -0346, -0348, -0349).
  • ringbuf is updated to 0.5.3 (RUSTSEC-2026-0293). The audio ring holds f32, so that path was not reachable.
  • Media files and network manifests are untrusted input. The bundled FFmpeg is now updated by the project rather than by your distribution, so FFmpeg and dav1d security fixes ship with Fastiplayer releases. See the security policy.

Known limitations

  • Platforms. Linux only. Windows is planned before 1.0; macOS is outside the roadmap through 1.0.
  • Hardware and output.
    • Vulkan rendering is required even with software decoding.
    • Hardware decoding depends on the GPU, driver, codec/profile, and frame-import path.
    • Native HDR display output is not implemented; HDR is tone-mapped to SDR.
  • Bundled FFmpeg build.
    • It builds only for the host architecture: no cross-compilation.
    • If you copy the player elsewhere, copy the lib/ folder next to it.
  • Subtitles. VobSub, DVB, and standalone .sup subtitles are not supported; the subtitle matrix lists the rest.
  • Streaming. DRM, RTSP/RTP/MMS, and RTMP playback are unsupported. Streaming support is limited to the accepted profiles. Web-page playback depends on system yt-dlp and the site.
  • Interface. It is unfinished and partly in Russian; a redesign and translations are planned.
  • Performance. CPU, RAM, and GPU parity with VLC (issue #10) is in progress and not part of this release.

Fastiplayer v0.1.0-alpha.1

Pre-release

Choose a tag to compare

@Bogdan7c Bogdan7c released this 05 Sep 12:12

Fastiplayer v0.1.0-alpha.1 — release notes

Fastiplayer's first public development release: Linux-first · source-only · active development / pre-alpha. It is not a production-readiness or stable-API announcement.

Release scope

Fastiplayer is a Rust-first native media player focused on hardware decoding, GPU rendering, and explicit ownership across media pipelines. It integrates native libraries and drivers; it does not claim an entirely Rust multimedia stack.

Verified capabilities, within the recorded media and hardware profiles:

  • Local video playback through VA-API hardware decoding or FFmpeg software decoding and WGPU/Vulkan rendering.
  • GPU HDR → SDR tone mapping, including the recorded AV1 10-bit P010 to SDR BT.709 path. This is not native HDR display output.
  • Native progressive HTTP(S)/FTP(S), HLS VOD/live/DVR, DASH VOD/live/DVR, and static Smooth Streaming/HDS profiles. Web-page extraction can use optional system yt-dlp.
  • Audio playback, seeking, stream selection, source reopen/recovery, playlist import/export and persistence, and playback-position restore within accepted profiles.
  • Runtime settings application and diagnostics, with explicit owner boundaries and controlled reconfiguration.

The N15 acceptance report records 11 successful source rows reaching the presentation/audio startup gate and two profile exclusions. Its real-hardware evidence and hermetic consumer tests have different scopes. The compatibility matrix defines the accepted profiles; these are not universal codec, website, or GPU guarantees.

Recorded playback evidence

The T480s report and raw samples record source 9165200c772e33785a2d47c3ca886cc6145054a1, its release binary checksum, real surface submission and active muted audio. The actual screenshot has movie attribution.

On i5-8350U / UHD 620, five 60-second runs after three warm-ups gave Fastiplayer process CPU medians of 16.88% for H.264 1080p60 hardware and 30.42% for HEVC 4K60 hardware, with mean-RSS medians of 87.21 and 87.90 MiB. CPU 100% means one logical CPU. See the report for ranges, synthetic-workload limits and the scoped hardware VLC control. AV1 4K60 SDR used software decoding: CPU median 356.70%, mean RSS median 269.32 MiB. No equivalent-output AV1 VLC comparison or perfect-60-FPS claim is made.

These are historical S08 measurements, not a remeasurement of the alpha version. N15 ingress latency/RSS has separate provenance and does not characterize T480s playback. Startup/seek distributions, power and battery life were not measured here.

Build from source

This is a GitHub prerelease with generated source archives only. No portable binaries, AppImage, Flatpak, or Windows installer are promised. Download the autogenerated ZIP or tar.gz source archive from the release page.

Use the clone/build and contributor checks and README quick start. The pinned primary toolchain is Rust 1.96.0; MSRV is checked separately at 1.92.0. Linux builds need the documented native development dependencies; playback requires Vulkan and the appropriate runtime drivers.

Read the architecture, documentation index, and changelog. Documentation links are pinned to the release tag.

Known limitations

  • Linux is the primary platform. Windows native application support is planned; macOS is outside the roadmap through 1.0.
  • Vulkan rendering is required even with software decoding. No production CPU rendering fallback exists. VA-API support depends on the exact device, driver, codec/profile, and frame-import path.
  • Native HDR display output is not implemented; HDR-monitor acceptance has not run.
  • A native subtitle engine and published subtitle compatibility matrix remain roadmap work. Manifest subtitle descriptors do not prove playback.
  • DRM, RTSP/RTP/MMS, RTMP wire playback, and private live extractor state are outside the supported profile. Smooth Streaming/HDS are static VOD only.
  • N15 excludes its avc3/HE-AAC/TTML HLS row and a DASH row with unrepresentable aspect metadata. Page extraction depends on compatible system yt-dlp, its environment, upstream extractors, and server behavior.
  • The UI remains under development and contains Russian text; redesign and localization are planned.
  • Cross-source queue evidence does not qualify every windowed UI Next transition. See N15 for the exact consumer boundary.
  • T480s frame handoffs do not establish physical scanout or cross-player dropped-frame equivalence. Its AV1 fixture has no established byte-identical public reacquisition recipe.

Media and network manifests are untrusted input. Review the security policy before reporting suspected vulnerabilities. Support separates bugs, proposals, questions, and security reports. Discussions and Private Vulnerability Reporting are enabled.

Product name after this release

The product is now Fastiplayer. The preserved v0.1.0-alpha.1 tag predates the rename; its source, package names and historical captures retain the identity used at publication. This is a presentation update, not a new version. The current demo is a separate capture of the current application; see its capture provenance.