Commit Graph

13 Commits

Author SHA1 Message Date
Daniel Harvey 4420975cd2 Fix streaming minors: isActive_ sentinel, WAV error message, TextDecoder hoist, MIME 400, fmt first-match, processedBytes comment 2026-05-17 18:55:05 -04:00
Daniel Harvey 02d146ce02 Fix streaming majors: PCM-only validation, stream-from-disk, ConcatStream offset, AsyncDisposable, HTTP cancellation, await ensureReady, seekBeyondBuffer offset-0 guard, negative WAV chunk guard 2026-05-17 16:57:20 -04:00
Daniel Harvey dd96caa709 Fix Critical: streaming race, dirty buffer, dropped tail, fragmented header
- SeekBeyondBuffer and LoadTrackStreaming assign _activeStreamingTask before
  awaiting; DrainActiveStreamingTaskAsync awaits previous task before new
  stream starts, closing the concurrent-seek race on the JS StreamDecoder
- Always slice ArrayPool buffer to currentBytes before sending to JS interop;
  eliminates stale bytes from prior rentals reaching the audio decoder
- getSampleAlignedChunkSize accepts streamComplete flag; bypasses minimum
  chunk guard on final tail so trailing bytes are decoded, not dropped
- StreamDecoder accumulates headerSearchChunks until parseHeader succeeds,
  with 256 KB MAX_HEADER_SEARCH_BYTES bound; handles fragmented first chunks
  and extended WAV headers with LIST/INFO/JUNK chunks
- markStreamComplete early-returns when streamComplete already set to prevent
  double-drain and incorrect streamingCompleted flag after partial failure
- processedBytes advances only after successful decode; failed segments leave
  cursor in place rather than permanently skipping audio
- AudioInteropService.MarkStreamCompleteAsync wires C# loop exit to JS decoder
  ensuring tail drain fires even when Content-Length header is absent
2026-05-17 11:28:53 -04:00
daniel-c-harvey 75456a59ce Spectrum Visualizer for player & Layout 2025-12-07 11:18:32 -05:00
daniel-c-harvey 20db222a0f Streaming Seek Support 2025-12-07 04:44:54 -05:00
daniel-c-harvey 8c58edd5f9 File Database Index watching 2025-12-07 04:40:52 -05:00
daniel-c-harvey 2baf0575bc Streaming Bug Fixes 2025-12-06 06:41:32 -05:00
daniel-c-harvey 605fc94fbb True Streaming Support Draft 2025-09-15 17:03:36 -04:00
daniel-c-harvey 0fa8ac7379 Front End Streaming Playback Improvements 2025-09-13 15:22:26 -04:00
daniel-c-harvey 9ac2c9182a Player Client and Visual Enhancements
- Redesigned audio player bar to be mobile-friendly
 - Added unloading for track switching (needs to be fixed)
 - Added IsLoading status so loading spinner isn't hanging around when it shouldn't be
 - Normalized styles with scoped files (will further reduce)
 - Layout Cleanup
 - EF fixes (migrations now function for deployment)
 - deploy script updates (new dedicated host)
2025-09-12 20:37:17 -04:00
daniel-c-harvey 73d4b0a9c5 Front End Audio Player Always Available 2025-09-08 18:42:07 -04:00
daniel-c-harvey 66d800bd26 Front End Work
- Redesign component wiring for audio playback
 - Removed playback logic from the player control and moved it to injectable audio player engine service
 - Chunked/buffered stream loading from Content API passed to Web Audio API playback in 8K blocks
2025-09-06 13:39:26 -04:00
daniel-c-harvey 7f78545a02 *Audio Playback*
Content API:
 - Enabling CORS for access from Blazor app
Web Server:
 - Content API URL environment config
 - Web Audio API JS Interop layer in TypeScript
 - HttpClient configs
Web Client:
 - Audio Tack player controls
 - Audio Player example page
 - Audio Interop Service Layer
 - Named HttpClients
2025-09-05 10:48:07 -04:00