using Microsoft.Extensions.Options;
using TeleWave.Application.Common.Interfaces;

namespace TeleWave.Infrastructure.Media;

/// <summary>
/// Читает параллельность транскода из настроек. Значение то же, по которому
/// <see cref="MediaProcessingBackgroundService"/> раздаёт слоты, — иначе оценка очереди врала бы.
/// </summary>
public sealed class MediaProcessingLimits(IOptions<MediaOptions> options) : IMediaProcessingLimits
{
    public int MaxParallelTranscodes => Math.Max(1, options.Value.MaxParallelTranscodes);
}
