diff --git a/DeepDrftContent/CLAUDE.md b/DeepDrftContent/CLAUDE.md index 80b3604..be31395 100644 --- a/DeepDrftContent/CLAUDE.md +++ b/DeepDrftContent/CLAUDE.md @@ -78,13 +78,15 @@ public async Task RegisterResourceAsync(string vaultId, string entryId, Fi `AudioProcessor.ProcessWavFileAsync(filePath)`: -1. Validates the RIFF/WAVE/PCM structure. -2. Parses the fmt and data chunks. -3. Extracts duration (sample count / sample rate) and bitrate (file size / duration). -4. Returns `AudioBinary` with all metadata. -5. **Fallback**: If parsing fails, logs a warning and returns defaults (180s / 1411 kbps / 44.1 kHz / 16-bit stereo). +1. Validates the RIFF/WAVE structure and format code. +2. Accepts standard PCM (audioFormat=1) and WAVE_FORMAT_EXTENSIBLE (audioFormat=0xFFFE) when the SubFormat GUID indicates PCM. +3. Normalizes EXTENSIBLE-PCM uploads to standard 44-byte PCM WAV before storing in the vault. +4. Parses the fmt and data chunks. +5. Extracts duration (sample count / sample rate) and bitrate (file size / duration). +6. Returns `AudioBinary` with all metadata. +7. **Fallback**: If parsing fails, logs a warning and returns defaults (180s / 1411 kbps / 44.1 kHz / 16-bit stereo). -PCM-only today. Other formats (mp3, flac, aac, ogg, m4a) are listed in `MimeTypeExtensions` but not implemented. The processor validates RIFF/WAVE/PCM format — anything else is rejected. +PCM-only (both standard and EXTENSIBLE variants). Other formats (mp3, flac, aac, ogg, m4a) are listed in `MimeTypeExtensions` but not implemented. EXTENSIBLE with non-PCM SubFormats are rejected. The processor validates RIFF/WAVE/PCM structure — anything else is rejected. ## Image processor