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
@@ -485,13 +485,15 @@ public class SimpleMediaTypeRegistryTests
}
[Test]
public async Task CreateVaultAsync_MediaVaultType_ReturnsNull()
public async Task CreateVaultAsync_MediaVaultType_CreatesMediaFileVault()
{
// Act
var vault = await Registry.CreateVaultAsync(MediaVaultType.Media, TestDirectory);
// Assert
Assert.That(vault, Is.Null, "Should return null for unsupported Media vault type");
// Assert — Media now has a concrete vault (MediaFileVault) for plain MediaBinary
// sidecars such as waveform loudness profiles.
Assert.That(vault, Is.Not.Null);
Assert.That(vault, Is.InstanceOf<MediaFileVault>());
}
}