Add server-side waveform loudness profiling on track upload

ILoudnessAlgorithm strategy (RmsLoudnessAlgorithm first impl), WaveformProfileService
stores quantized byte[] sidecar in new MediaFileVault (profiles vault), wired into
UnifiedTrackService.UploadAsync; failure is logged and swallowed. WaveformProfileDto
and WaveformProfileOptions in shared projects.
This commit is contained in:
daniel-c-harvey
2026-06-05 16:38:02 -04:00
parent eed99df0dd
commit fa57861dbf
16 changed files with 544 additions and 10 deletions
+5 -5
View File
@@ -71,16 +71,16 @@ public class MediaVaultFactoryTests
}
[Test]
public async Task From_MediaVaultType_ReturnsNull()
public async Task From_MediaVaultType_CreatesMediaFileVault()
{
// Note: MediaVaultType.Media doesn't have a concrete vault implementation
// This tests the factory's handling of unsupported types
// MediaVaultType.Media resolves to MediaFileVault — the concrete vault for plain
// MediaBinary entries (e.g. waveform loudness profile sidecars).
// Act
var vault = await MediaVaultFactory.From(TestDirectory, MediaVaultType.Media);
// Assert
Assert.That(vault, Is.Null, "Should return null for unsupported Media vault type");
AssertVaultCreated<MediaFileVault>(vault, "Media vault creation");
}
[Test]