diff --git a/CLAUDE.md b/CLAUDE.md index a2782a3..6bb9471 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -62,6 +62,8 @@ The split between host projects (`DeepDrftPublic`, `DeepDrftManager`, `DeepDrftC If step 1 succeeds and step 2 fails, audio is orphaned in the vault (no rollback today). +The Opus transcode derived-artifact path (`OpusTranscodeService.TranscodeAndStoreAsync`) also streams its entire pipeline: extension and duration are read from the vault index (no body load); the source bytes are opened via `TrackContentService.OpenAudioMediaStreamAsync` and bounded-copied to a staging file; the encoded Ogg output is walked from a `FileStream` via `OggOpusParser.WalkAsync(Stream)` (bounded one-page-at-a-time buffer; byte-identical to the retained whole-buffer oracle `Walk(ReadOnlySpan)`); and stored via `RegisterResourceStreamingAsync`. The sidecar (a few KB, inherently bounded) retains the whole-buffer write. Completes the store-path OOM-fix arc. + ### Streaming-first audio playback The player is not fetch-then-play: diff --git a/DeepDrftContent/CLAUDE.md b/DeepDrftContent/CLAUDE.md index 14f9e5d..8230aab 100644 --- a/DeepDrftContent/CLAUDE.md +++ b/DeepDrftContent/CLAUDE.md @@ -147,6 +147,10 @@ Reads audio from the `tracks` vault via `FileDatabase.LoadResourceAsync