52 lines
1.7 KiB
C#
52 lines
1.7 KiB
C#
using System;
|
|
using Paca.Core;
|
|
using Xunit;
|
|
|
|
namespace Paca.Tests.Core;
|
|
|
|
public class VideoAspectAutoCropperGateTests
|
|
{
|
|
[Fact]
|
|
public void Gate337_VideoAspectAutoCropper_BuildsCenterCropFilter()
|
|
{
|
|
var filter = VideoAspectAutoCropper.BuildReframingFilterArgs(ReframingMode.CenterCrop, 1080, 1920);
|
|
|
|
Assert.Contains("crop=ih*9/16:ih", filter);
|
|
Assert.Contains("scale=1080:1920", filter);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate338_VideoAspectAutoCropper_BuildsBlurredBackgroundFilter()
|
|
{
|
|
var filter = VideoAspectAutoCropper.BuildReframingFilterArgs(ReframingMode.BlurredBackground, 1080, 1920);
|
|
|
|
Assert.Contains("split[bg][fg]", filter);
|
|
Assert.Contains("boxblur", filter);
|
|
Assert.Contains("overlay=(W-w)/2:(H-h)/2", filter);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate339_VideoAspectAutoCropper_BuildsBlackPadFilter()
|
|
{
|
|
var filter = VideoAspectAutoCropper.BuildReframingFilterArgs(ReframingMode.BlackPad, 1080, 1920);
|
|
|
|
Assert.Contains("pad=1080:1920:(ow-iw)/2:(oh-ih)/2:black", filter);
|
|
}
|
|
|
|
[Fact]
|
|
public void Gate340_VideoAspectAutoCropper_BuildsFullCommandLine_WithAudioCopy()
|
|
{
|
|
var cmd = VideoAspectAutoCropper.BuildReframingCommandLine(
|
|
inputPath: "C:\\videos\\horizontal.mp4",
|
|
outputPath: "C:\\videos\\vertical_shorts.mp4",
|
|
mode: ReframingMode.CenterCrop,
|
|
targetWidth: 1080,
|
|
targetHeight: 1920
|
|
);
|
|
|
|
Assert.Contains("-i \"C:\\videos\\horizontal.mp4\"", cmd);
|
|
Assert.Contains("-c:v libx264 -crf 20 -preset fast", cmd);
|
|
Assert.Contains("-c:a copy", cmd);
|
|
Assert.EndsWith("\"C:\\videos\\vertical_shorts.mp4\" -y", cmd);
|
|
}
|
|
}
|