📄 src/Infrastructure/Ffmpeg/Tracing.cs
using System;
using System.Diagnostics;

namespace Slopper.Infrastructure.Ffmpeg;

internal static class Tracing
{
    internal static ActivitySource FfmpegActivity { get; } = new("Slopper.Infrastructure.Ffmpeg");

    public static Activity? StartCropAreaAnalysis(string path, TimeSpan start, TimeSpan duration) =>
        FfmpegActivity
            .StartActivity("CropAreaAnalysis", ActivityKind.Internal)
            ?.SetTag("Path", path)
            ?.SetTag("Start", start)
            ?.SetTag("Duration", duration);

    public static Activity? StartCreateClip(string path, TimeSpan start, TimeSpan duration) =>
        FfmpegActivity
            .StartActivity("CreateClip", ActivityKind.Internal)
            ?.SetTag("Path", path)
            ?.SetTag("Start", start)
            ?.SetTag("Duration", duration);

    public static Activity? StartReadSubtitles(string path, int index) =>
        FfmpegActivity
            .StartActivity("ReadSubtitles", ActivityKind.Internal)
            ?.SetTag("Path", path)
            ?.SetTag("Index", index);
}