49 lines
1.6 KiB
C#
49 lines
1.6 KiB
C#
using System;
|
|
using Paca.Core;
|
|
using Xunit;
|
|
|
|
namespace Paca.Tests.Core;
|
|
|
|
public class VideoDenoiseEnhancerGateTests
|
|
{
|
|
[Fact]
|
|
public void Gate401_VideoDenoiseEnhancer_BuildsFastHqdn3dFilter()
|
|
{
|
|
var filter = VideoDenoiseEnhancer.BuildEnhanceFilterChain(denoise: true, sharpen: false, DenoisePreset.FastTemporalSpatial);
|
|
|
|
Assert.Equal("hqdn3d=4:3:6:4.5", filter);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate402_VideoDenoiseEnhancer_BuildsHighQualityNlmeansFilter()
|
|
{
|
|
var filter = VideoDenoiseEnhancer.BuildEnhanceFilterChain(denoise: true, sharpen: false, DenoisePreset.HighQualityNonLocalMeans);
|
|
|
|
Assert.Contains("nlmeans=s=1.0:p=7:r=15", filter);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate403_VideoDenoiseEnhancer_ChainsDenoiseAndSharpenFilters()
|
|
{
|
|
var filter = VideoDenoiseEnhancer.BuildEnhanceFilterChain(denoise: true, sharpen: true, DenoisePreset.FastTemporalSpatial);
|
|
|
|
Assert.Contains("hqdn3d=4:3:6:4.5", filter);
|
|
Assert.Contains("unsharp=5:5:0.8:5:5:0.4", filter);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate404_VideoDenoiseEnhancer_BuildsFullCommandLine_WithAudioCopy()
|
|
{
|
|
var cmd = VideoDenoiseEnhancer.BuildDenoiseCommandLine(
|
|
inputPath: "C:\\videos\\grainy.mp4",
|
|
outputPath: "C:\\videos\\enhanced.mp4",
|
|
denoise: true,
|
|
sharpen: true
|
|
);
|
|
|
|
Assert.Contains("-i \"C:\\videos\\grainy.mp4\"", cmd);
|
|
Assert.Contains("-vf \"hqdn3d=4:3:6:4.5,unsharp=5:5:0.8:5:5:0.4\"", cmd);
|
|
Assert.Contains("-c:v libx264 -crf 20 -preset fast -c:a copy", cmd);
|
|
Assert.EndsWith("\"C:\\videos\\enhanced.mp4\" -y", cmd);
|
|
}
|
|
}
|