50 lines
1.7 KiB
C#
50 lines
1.7 KiB
C#
using System;
|
|
using Paca.Core;
|
|
using Xunit;
|
|
|
|
namespace Paca.Tests.Core;
|
|
|
|
public class AudioChannelDownmixerGateTests
|
|
{
|
|
[Fact]
|
|
public void Gate329_AudioChannelDownmixer_BuildsStandardItuR775Filter()
|
|
{
|
|
var filter = AudioChannelDownmixer.BuildDownmixFilterArgs(DownmixMode.StandardItuR775);
|
|
|
|
Assert.Contains("pan=stereo|FL=0.7071*FL+0.5*FC+0.7071*BL|FR=0.7071*FR+0.5*FC+0.7071*BR", filter);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate330_AudioChannelDownmixer_BuildsNightDialogBoostFilter()
|
|
{
|
|
var filter = AudioChannelDownmixer.BuildDownmixFilterArgs(DownmixMode.NightDialogBoost);
|
|
|
|
// Center channel (FC) boosted to 1.0, side noise attenuated
|
|
Assert.Contains("pan=stereo|FL=0.5*FL+1.0*FC+0.3*BL|FR=0.5*FR+1.0*FC+0.3*BR", filter);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate331_AudioChannelDownmixer_BuildsMonoCompatibilityFilter()
|
|
{
|
|
var filter = AudioChannelDownmixer.BuildDownmixFilterArgs(DownmixMode.MonoCompatibility);
|
|
|
|
Assert.Contains("pan=mono|c0=0.5*FL+0.5*FR", filter);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate332_AudioChannelDownmixer_BuildsFullCommandLine_WithVideoCopy()
|
|
{
|
|
var cmd = AudioChannelDownmixer.BuildDownmixCommandLine(
|
|
inputPath: "C:\\movies\\surround51.mp4",
|
|
outputPath: "C:\\movies\\stereo_dialog.mp4",
|
|
mode: DownmixMode.NightDialogBoost,
|
|
copyVideo: true
|
|
);
|
|
|
|
Assert.Contains("-i \"C:\\movies\\surround51.mp4\"", cmd);
|
|
Assert.Contains("-c:v copy", cmd);
|
|
Assert.Contains("-filter:a \"pan=stereo|FL=0.5*FL+1.0*FC+0.3*BL|FR=0.5*FR+1.0*FC+0.3*BR\"", cmd);
|
|
Assert.Contains("-c:a aac -b:a 192k", cmd);
|
|
Assert.EndsWith("\"C:\\movies\\stereo_dialog.mp4\" -y", cmd);
|
|
}
|
|
}
|