namespace PrivaPub.Domain.Media { public class MediaOptions { public string Root { get; set; } public long MaxImageBytes { get; set; } = 16 * 1024 * 1024; public long MaxVideoBytes { get; set; } = 99 * 1024 * 1024; public long MaxProxiedBytes { get; set; } = 40 * 1024 * 1024; public long ProxyCacheBytes { get; set; } = 5L * 1024 * 1024 * 1024; public int MaxImageSide { get; set; } = 4096; public int PreviewSide { get; set; } = 640; public long MaxPixels { get; set; } = 40_000_000;//an image (or a GIF's frames together) may not decode to more public int MaxFrames { get; set; } = 500; public int MaxGifSide { get; set; } = 1280;//a GIF becomes an mp4 at most this wide public int Concurrency { get; set; } = 2;//uploads processed at once public long MaxVideoPixels { get; set; } = 2_304_000;//a larger video is made smaller (as Mastodon's video_matrix_limit) public double MaxFrameRate { get; set; } = 60; public int MaxSeconds { get; set; } = 3600;//audio or video may not last longer } }