using System; using MediaBrowser.Common.Configuration; using Microsoft.Extensions.Logging; namespace Jellyfin.Server.Migrations.Routines { /// <summary> /// Disable transcode throttling for all installations since it is currently broken for certain video formats. /// </summary> internal class DisableTranscodingThrottling : IMigrationRoutine { private readonly ILogger<DisableTranscodingThrottling> _logger; private readonly IConfigurationManager _configManager; public DisableTranscodingThrottling(ILogger<DisableTranscodingThrottling> logger, IConfigurationManager configManager) { _logger = logger; _configManager = configManager; } /// <inheritdoc/> public Guid Id => Guid.Parse("{4124C2CD-E939-4FFB-9BE9-9B311C413638}"); /// <inheritdoc/> public string Name => "DisableTranscodingThrottling"; /// <inheritdoc/> public bool PerformOnNewInstall => false; /// <inheritdoc/> public void Perform() { // Set EnableThrottling to false since it wasn't used before and may introduce issues var encoding = _configManager.GetEncodingOptions(); if (encoding.EnableThrottling) { _logger.LogInformation("Disabling transcoding throttling during migration"); encoding.EnableThrottling = false; _configManager.SaveConfiguration("encoding", encoding); } } } }