• version-0.4.26 45dc7a1288

    version-0.4.26
    All checks were successful
    Release / create-release (push) Successful in 11s
    Release / apk (push) Successful in 4m57s
    Stable

    eric released this 2026-09-21 06:17:03 +02:00 | 61 commits to main since this release

    • Refactored media playback and sharing logic

    • Improved sharing mechanisms

    • Implemented new audio MIME type handling and shared content playback logic

    • Added new JNI APIs for shared playback

    • Enhanced server authentication

    • Improved URL handling features

    • Resolved WebView rendering issues

    • Updated build configuration

    Downloads
  • version-0.4.25 ee1624a5a3

    version-0.4.25
    All checks were successful
    Release / create-release (push) Successful in 10s
    Release / apk (push) Successful in 5m12s
    Stable

    eric released this 2026-09-20 21:07:15 +02:00 | 63 commits to main since this release

    • Implemented OAuth2/OIDC client with automatic token refresh, JWT validation, and type-safe extractors

    • Added pluggable SQL and Redis caching using a Two-Tier caching pattern

    • Integrated Android Keystore for secure token storage

    • Added SSO redirection support and Android Auto client security compliance

    • Refactored player module with connection management, HTTP client integration, and authentication checks

    • Updated native API for player lifecycle management

    • Implemented dynamic UI logic to handle authentication states and SSO flows

    • Bumped project version

    • Improved release process and merge workflow

    Downloads
  • version-0.4.24 eaf8c28336

    version-0.4.24
    All checks were successful
    Release / create-release (push) Successful in 9s
    Release / apk (push) Successful in 5m1s
    Stable

    eric released this 2026-09-20 16:59:33 +02:00 | 66 commits to main since this release

    • Implemented Android APK build and release workflow (#136)

    • Refactored release process to handle APK checksums and license extraction

    • Updated Makefile to enforce APK signature verification

    • Bumped package version to 0.4.24

    Downloads
  • version-0.4.23 1c3093d49d

    version-0.4.23
    Some checks failed
    Release / create-release (push) Successful in 10s
    Release / apk (push) Failing after 37s
    Stable

    eric released this 2026-09-20 16:47:43 +02:00 | 68 commits to main since this release

    • Implemented Android APK build and release workflow, including build parameter configuration, conditional signing logic, and automated release publishing pipeline.

    • Merged PR #135 (push-sworymyzorlv) into main.

    Downloads
  • version-0.4.22 6757160f31

    version-0.4.22
    All checks were successful
    Release / create-release (push) Successful in 12s
    Stable

    eric released this 2026-09-20 16:05:35 +02:00 | 70 commits to main since this release

    • Introduced pmoandroid crate for audio output abstraction, Oboe-based non-blocking streaming, and core audio sink logic.

    • Implemented JNI bridging for native player lifecycle management and test tone playback.

    • Added foreground service with connection monitoring, volume control, and dynamic audio output management.

    • Implemented core player service with device identity handling and configuration settings management.

    • Integrated Server-Sent Events (SSE) for real-time progress and snapshot data.

    • Refined event processing to explicitly exclude position and duration updates.

    • Introduced renderer privacy/visibility logic, synchronizing visibility with Android Auto connection status.

    • Updated native registration API to support private renderer flags.

    • Enhanced media rendering pipeline with improved DIDL parsing for track metadata.

    • Added transport resilience via a new reconnection policy and refined renderer setup logic.

    • Implemented secure Bearer token validation for Android SSO/OIDC clients.

    • Added JWT claim validation, refresh token rotation, and session middleware.

    • Enforced strict routing whitelisting and configuration management.

    • Expanded Android build targets and added required permissions.

    • Refactored platform integration with robust error handling across player services and Android Auto components.

    • Refined User Agent parsing for accurate device identification.

    • Added comprehensive unit and integration tests covering navigation, playback flow, output handling, rate changes, and failure scenarios.

    Downloads
  • version-0.4.21 d9c1910b04

    version-0.4.21
    All checks were successful
    Release / create-release (push) Successful in 10s
    Stable

    eric released this 2026-09-20 00:45:13 +02:00 | 79 commits to main since this release

    • Added previous track playback from renderer queue with dedicated API endpoint

    • Implemented Volume, Seek, and Mute control commands

    • Added purge command to reset queue state; redefined stop as a backend sequence of pause + purge

    • Introduced flow control with client-side back-pressure, epoch/grant signals, and explicit state management

    • Corrected playback position calculation after seek; progress bar now resets accurately based on epoch start times

    • Resolved epoch management issues ensuring unique initialization and preventing expired epochs from discarding audio frames

    • Fixed missing sample rate handling during encoder setup

    • Eliminated deadlocks and track continuation limitations in control point queue management

    • Improved underrun frame tracking and buffering to prevent startup glitches

    • Aligned client-side state enumeration with PlaybackState::Stopped removal

    • Refactored playback pipeline with epoch-aware transition gating for gapless playback status

    • Migrated track announcement logic to the renderer; implemented async queue management with prefetching

    • Introduced DeviceAdapter trait defining stop/seek/load handlers and device contracts

    • Decoupled client logic into a platform-agnostic player core for WebPlayer

    • Enhanced transport layer: handles client reconnections, discards stale streams, and manages restarts via Session struct

    • Renderer now handles thread-safe command dispatch and PCM chunk processing

    • Updated protocol serialization for position reporting with new start_sec field

    • Synchronized UI with actual audio playback events; refined natural vs. user-initiated track transition handling

    • Implemented broadcast pacing/cancellation via stop_token; added intelligent backpressure to skip frames on timing failures

    • Enforced interruptible auxiliary task requirements to fix pacing issues and allow direct task abortion

    • Refined position event pipeline to ignore unreliable general data; PlayerEvent::TrackEnded now transitions state to PlaybackState::Transitioning

    Downloads
  • version-0.4.20 07abf88d29

    version-0.4.20
    All checks were successful
    Release / create-release (push) Successful in 11s
    Stable

    eric released this 2026-09-13 15:42:31 +02:00 | 97 commits to main since this release

    • Multi-look UI System: Support for E-Ink, Large, and Narrow display modes with responsive layouts and CSS variables.

    • WebAssembly Playback: Enabled WASM audio playback and web-based FLAC streaming demo using Web Audio API.

    • Real-time Decoding: Frame-by-frame FLAC decoding via Claxon; incremental decoding support in pmoplayercore.

    • WebSocket Renderer: Media renderer client with BrowserAdapter for device interaction; bidirectional WS protocol for streaming and control.

    • Server Architecture: Instance management APIs, pipeline setup, and state reporting endpoints.

    • Controls: Volume and mute command support across client and server.

    • Tab Sync: Synchronization of tabs with renderers based on URL parameters.

    • Track Management: Registration using permanent IDs with lazy loading; unified route for audio URLs.

    • Cover Images: Conditional cover URL transformation (local to absolute) gated by pmoserver feature flag.

    • Pagination: Support for pagination and total count in listings.

    • Playback State: Fixed TrackBoundary signaling during Idle to Playing transitions.

    • Encoder Stability: Robust error handling and flux discontinuity checks during encoder restarts.

    • Security: Blocked device protocols on SSO port.

    • Host Validation: Correct handling of host header mismatches; warnings for reverse proxy misconfigurations.

    • Build: Multi-stage Docker build for minimal runtime image; web app scripts with WASM compilation support.

    • Dependencies: Updated Axum, reqwest, multimedia, async, and serialization crates; applied version locking.

    • Streaming Sinks: New WebSocket, direct FLAC, and Ogg/FLAC sinks; enforced single-client model.

    • PCM Processing: PcmQueueProcessor for chunk management, control commands, and underflow handling.

    • Examples: Toy server examples for WS FLAC pipeline and binary protocol validation.

    Downloads
  • version-0.4.19 a6c34a2633

    version-0.4.19
    All checks were successful
    Release / create-release (push) Successful in 9s
    Stable

    eric released this 2026-09-11 19:40:10 +02:00 | 120 commits to main since this release

    • Implemented comprehensive pagination logic across the system.

    • Fetching operations (browsing, searching, catalog retrieval) now return total result counts alongside data.

    • API clients updated to accept offset and limit parameters.

    • Refined result slicing and counting mechanisms.

    • Refactored cache initialization to require a database root path (#131).

    Downloads
  • version-0.4.18 8cdbdda419

    version-0.4.18
    All checks were successful
    Release / create-release (push) Successful in 9s
    Stable

    eric released this 2026-09-11 07:52:48 +02:00 | 122 commits to main since this release

    • Cache Initialization Refactor: Enforced mandatory database root path configuration across AudioCache, CoversCache, and Qobuz Cache.

    • API & Constructor Updates: Updated API signatures and introduced new cache creation functions. Constructors now require a path argument.

    • Server Initialization Logic: Added strict validation to halt startup if the configured database path cannot be resolved.

    • Tests: Updated test suite to align with the new required arguments.

    • Merged PR #130 (push-rkntzmqtrpko) into main.

    Downloads
  • version-0.4.16 f65de0c082

    version-0.4.16
    All checks were successful
    Release / create-release (push) Successful in 9s
    Stable

    eric released this 2026-09-10 22:21:12 +02:00 | 124 commits to main since this release

    • Client Synchronization: Added synchronization primitives and cleanup logic for materialization gates in the client.

    • Cache Improvements: Implemented cache hit tracking and lazy key handling; added methods to record lazy hits and flush deferred entries during graceful shutdown.

    • Metadata Updates: Introduced batched metadata updates supporting ingestion and client-side track seeding.

    • Transcoding & FLAC: Added FLAC cache types; refined media serving to handle transcode downloads, differentiating between complete and progressive streams.

    • Playlist Locking: Refactored playlist locking with structured write handling and state-dependent lock acquisition.

    • Cache Logic: Refactored cache logic to manage conditional paths and lazy entries.

    Downloads