mirror of https://github.com/ErsatzTV/ErsatzTV.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
1.0 KiB
28 lines
1.0 KiB
using ErsatzTV.Core.Domain; |
|
using ErsatzTV.Core.Interfaces.FFmpeg; |
|
using ErsatzTV.Core.Interfaces.Repositories; |
|
using Microsoft.Extensions.DependencyInjection; |
|
|
|
namespace ErsatzTV.Core.FFmpeg; |
|
|
|
public class FFmpegProcessServiceFactory : IFFmpegProcessServiceFactory |
|
{ |
|
private readonly IConfigElementRepository _configElementRepository; |
|
private readonly IServiceProvider _serviceProvider; |
|
|
|
public FFmpegProcessServiceFactory(IConfigElementRepository configElementRepository, IServiceProvider serviceProvider) |
|
{ |
|
_configElementRepository = configElementRepository; |
|
_serviceProvider = serviceProvider; |
|
} |
|
|
|
public async Task<IFFmpegProcessService> GetService() |
|
{ |
|
Option<bool> useLegacyTranscoder = |
|
await _configElementRepository.GetValue<bool>(ConfigElementKey.FFmpegUseLegacyTranscoder); |
|
|
|
return await useLegacyTranscoder.IfNoneAsync(false) |
|
? _serviceProvider.GetRequiredService<FFmpegProcessService>() |
|
: _serviceProvider.GetRequiredService<FFmpegLibraryProcessService>(); |
|
} |
|
}
|
|
|