Files
2026-07-13 13:13:17 +08:00

39 lines
1.2 KiB
C#

using Sdcb.FFmpeg.Utils;
using T3.Core.Logging;
using Xunit;
using SdcbLogLevel = Sdcb.FFmpeg.Raw.LogLevel;
namespace T3.VideoServices.Tests;
public class FfmpegLibraryTests
{
[Fact]
public void Initialize_RoutesFfmpegLoggingThroughTheLogger()
{
Assert.True(FfmpegLibrary.EnsureInitialized());
// ConfigureLogging installs a LogWriter so libav* messages flow through TiXL's Log (prefixed "FFmpeg:")
// instead of FFmpeg's raw-stderr default. Emitting via FFmpegLogger exercises that same callback path.
var sink = new CapturingLogWriter();
Log.AddWriter(sink);
try
{
FFmpegLogger.Log(SdcbLogLevel.Error, "tixl-routing-probe");
}
finally
{
Log.RemoveWriter(sink);
}
Assert.Contains(sink.Messages, m => m.Contains("tixl-routing-probe"));
}
private sealed class CapturingLogWriter : ILogWriter
{
public ILogEntry.EntryLevel Filter { get; set; } = ILogEntry.EntryLevel.All;
public readonly List<string> Messages = new();
public void ProcessEntry(ILogEntry entry) => Messages.Add(entry.Message);
public void Dispose() { }
}
}