-
Notifications
You must be signed in to change notification settings - Fork 0
Phase 1.e — HTTP range streaming + browser player #132
Copy link
Copy link
Open
Labels
enhancementNew feature or requestNew feature or requestphase: 1Phase 1 — waveflow-server (RFC-001)Phase 1 — waveflow-server (RFC-001)rustPull requests that update rust codePull requests that update rust codescope: backendRust/Tauri backend (src-tauri/)Rust/Tauri backend (src-tauri/)scope: frontendReact/Vite frontend (src/)React/Vite frontend (src/)
Milestone
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestphase: 1Phase 1 — waveflow-server (RFC-001)Phase 1 — waveflow-server (RFC-001)rustPull requests that update rust codePull requests that update rust codescope: backendRust/Tauri backend (src-tauri/)Rust/Tauri backend (src-tauri/)scope: frontendReact/Vite frontend (src/)React/Vite frontend (src/)
Tracking issue for sub-phase 1.e of RFC-001.
Wire end-to-end audio playback from the server to the web browser: HTTP range requests on flat files, on-demand FFmpeg transcode with LRU cache, Web Audio API player with gapless support.
Scope —
waveflow-serverGET /stream/:track_id?format=autowithAccept+Rangeheader handling.track_id→ file path.Acceptincludes the file's native format → stream raw withRange.(track_id, target_format).$CACHE_DIR/transcode/.waveflow-coreDSD→PCM converter.206 Partial Contentwith correctContent-Range+Accept-Ranges: bytes+Content-Length.Scope —
waveflow-web<audio>elements (preload next track, swap onended).Out of scope (future sub-phases / Phase 2)
Acceptance criteria
audio/mpeg.(track_id, format)is served from cache.Dependencies
Estimate
~3 weeks.