feat(ads/seo/release): v1.2.0 with live Google Ads, isolated ad profile, ads.txt, and SEO/AEO/GEO optimization
This commit is contained in:
parent
a88aafa1e5
commit
0e568f1f0a
975 changed files with 130593 additions and 16783 deletions
85
tests/Paca.Tests/Core/VideoTonemapEnhancerGateTests.cs
Normal file
85
tests/Paca.Tests/Core/VideoTonemapEnhancerGateTests.cs
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
using System;
|
||||
using Paca.Core;
|
||||
using Xunit;
|
||||
|
||||
namespace Paca.Tests.Core;
|
||||
|
||||
public class VideoTonemapEnhancerGateTests
|
||||
{
|
||||
[Fact]
|
||||
public void Gate413_VideoTonemapEnhancer_BuildsHdrToSdrFilter_WithSelectedAlgorithm()
|
||||
{
|
||||
var filterMobius = VideoTonemapEnhancer.BuildHdrToSdrFilter(TonemapAlgorithm.Mobius);
|
||||
Assert.Contains("tonemap=mobius", filterMobius);
|
||||
Assert.Contains("zscale=transfer=bt709", filterMobius);
|
||||
|
||||
var filterHable = VideoTonemapEnhancer.BuildHdrToSdrFilter(TonemapAlgorithm.Hable);
|
||||
Assert.Contains("tonemap=hable", filterHable);
|
||||
|
||||
var filterReinhard = VideoTonemapEnhancer.BuildHdrToSdrFilter(TonemapAlgorithm.Reinhard);
|
||||
Assert.Contains("tonemap=reinhard", filterReinhard);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Gate414_VideoTonemapEnhancer_BuildsColorGradeFilter_WithCustomPreset()
|
||||
{
|
||||
var cinematic = VideoTonemapEnhancer.BuildColorGradeFilter(ColorGradePreset.CinematicWarm);
|
||||
Assert.Contains("eq=contrast=1.10", cinematic);
|
||||
Assert.Contains("saturation=1.15", cinematic);
|
||||
Assert.Contains("colorbalance=rs=0.05", cinematic);
|
||||
|
||||
var oled = VideoTonemapEnhancer.BuildColorGradeFilter(ColorGradePreset.OledDeepBlack);
|
||||
Assert.Contains("contrast=1.05", oled);
|
||||
Assert.Contains("gamma=0.95", oled);
|
||||
|
||||
var none = VideoTonemapEnhancer.BuildColorGradeFilter(ColorGradePreset.None);
|
||||
Assert.Empty(none);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Gate415_VideoTonemapEnhancer_CombinesTonemapAndColorGrade_Properly()
|
||||
{
|
||||
var combined = VideoTonemapEnhancer.BuildCombinedFilter(TonemapAlgorithm.Hable, ColorGradePreset.CinematicWarm);
|
||||
Assert.Contains("tonemap=hable", combined);
|
||||
Assert.Contains("colorbalance=rs=0.05", combined);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Gate416_VideoTonemapEnhancer_BuildsFfmpegCliArgs_WithPixelFormat()
|
||||
{
|
||||
var args = VideoTonemapEnhancer.BuildFfmpegArgs("hdr.mp4", "sdr.mp4", TonemapAlgorithm.Mobius, ColorGradePreset.OledDeepBlack, crf: 20);
|
||||
|
||||
Assert.Contains("-i \"hdr.mp4\"", args);
|
||||
Assert.Contains("-vf \"", args);
|
||||
Assert.Contains("tonemap=mobius", args);
|
||||
Assert.Contains("-c:v libx264 -crf 20", args);
|
||||
Assert.Contains("-pix_fmt yuv420p", args);
|
||||
Assert.Contains("-c:a copy", args);
|
||||
Assert.Contains("\"sdr.mp4\"", args);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Gate417_VideoTonemapEnhancer_SupportsHardwareAcceleratedGpuEncoding()
|
||||
{
|
||||
var nvencArgs = VideoTonemapEnhancer.BuildFfmpegArgs(
|
||||
"hdr.mp4", "sdr.mp4",
|
||||
TonemapAlgorithm.Hable, ColorGradePreset.CinematicWarm,
|
||||
crf: 22,
|
||||
videoEncoder: "hevc_nvenc",
|
||||
presetSpeed: "p4");
|
||||
|
||||
Assert.Contains("-c:v hevc_nvenc", nvencArgs);
|
||||
Assert.Contains("-cq 22", nvencArgs);
|
||||
Assert.Contains("-preset p4", nvencArgs);
|
||||
Assert.DoesNotContain("libx264", nvencArgs);
|
||||
|
||||
var qsvArgs = VideoTonemapEnhancer.BuildFfmpegArgs(
|
||||
"hdr.mp4", "sdr.mp4",
|
||||
TonemapAlgorithm.Mobius, ColorGradePreset.Vibrant,
|
||||
crf: 24,
|
||||
videoEncoder: "av1_qsv");
|
||||
|
||||
Assert.Contains("-c:v av1_qsv", qsvArgs);
|
||||
Assert.Contains("-global_quality 24", qsvArgs);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue