Make probesize and analyzeduration configurable and simplify circular

dependencies

Makes the probesize and analyzeduration configurable with env args.
(`JELLYFIN_FFmpeg_probesize` and `FFmpeg_analyzeduration`)
This commit is contained in:
Bond_009
2019-10-26 22:53:53 +02:00
committed by Bond-009
parent e7098f1997
commit cc5acf37f7
28 changed files with 395 additions and 319 deletions

View File

@@ -69,8 +69,6 @@ namespace MediaBrowser.Api.Playback
protected IDeviceManager DeviceManager { get; private set; }
protected ISubtitleEncoder SubtitleEncoder { get; private set; }
protected IMediaSourceManager MediaSourceManager { get; private set; }
protected IJsonSerializer JsonSerializer { get; private set; }
@@ -96,11 +94,11 @@ namespace MediaBrowser.Api.Playback
IMediaEncoder mediaEncoder,
IFileSystem fileSystem,
IDlnaManager dlnaManager,
ISubtitleEncoder subtitleEncoder,
IDeviceManager deviceManager,
IMediaSourceManager mediaSourceManager,
IJsonSerializer jsonSerializer,
IAuthorizationContext authorizationContext)
IAuthorizationContext authorizationContext,
EncodingHelper encodingHelper)
{
ServerConfigurationManager = serverConfig;
UserManager = userManager;
@@ -109,13 +107,12 @@ namespace MediaBrowser.Api.Playback
MediaEncoder = mediaEncoder;
FileSystem = fileSystem;
DlnaManager = dlnaManager;
SubtitleEncoder = subtitleEncoder;
DeviceManager = deviceManager;
MediaSourceManager = mediaSourceManager;
JsonSerializer = jsonSerializer;
AuthorizationContext = authorizationContext;
EncodingHelper = new EncodingHelper(MediaEncoder, FileSystem, SubtitleEncoder);
EncodingHelper = encodingHelper;
}
/// <summary>
@@ -152,8 +149,6 @@ namespace MediaBrowser.Api.Playback
return Path.Combine(folder, filename + ext);
}
protected readonly CultureInfo UsCulture = new CultureInfo("en-US");
protected virtual string GetDefaultEncoderPreset()
{
return "superfast";

View File

@@ -25,6 +25,34 @@ namespace MediaBrowser.Api.Playback.Hls
/// </summary>
public abstract class BaseHlsService : BaseStreamingService
{
public BaseHlsService(
IServerConfigurationManager serverConfig,
IUserManager userManager,
ILibraryManager libraryManager,
IIsoManager isoManager,
IMediaEncoder mediaEncoder,
IFileSystem fileSystem,
IDlnaManager dlnaManager,
IDeviceManager deviceManager,
IMediaSourceManager mediaSourceManager,
IJsonSerializer jsonSerializer,
IAuthorizationContext authorizationContext,
EncodingHelper encodingHelper)
: base(serverConfig,
userManager,
libraryManager,
isoManager,
mediaEncoder,
fileSystem,
dlnaManager,
deviceManager,
mediaSourceManager,
jsonSerializer,
authorizationContext,
encodingHelper)
{
}
/// <summary>
/// Gets the audio arguments.
/// </summary>
@@ -313,33 +341,5 @@ namespace MediaBrowser.Api.Playback.Hls
{
return 0;
}
public BaseHlsService(
IServerConfigurationManager serverConfig,
IUserManager userManager,
ILibraryManager libraryManager,
IIsoManager isoManager,
IMediaEncoder mediaEncoder,
IFileSystem fileSystem,
IDlnaManager dlnaManager,
ISubtitleEncoder subtitleEncoder,
IDeviceManager deviceManager,
IMediaSourceManager mediaSourceManager,
IJsonSerializer jsonSerializer,
IAuthorizationContext authorizationContext)
: base(serverConfig,
userManager,
libraryManager,
isoManager,
mediaEncoder,
fileSystem,
dlnaManager,
subtitleEncoder,
deviceManager,
mediaSourceManager,
jsonSerializer,
authorizationContext)
{
}
}
}

View File

@@ -94,7 +94,6 @@ namespace MediaBrowser.Api.Playback.Hls
[Authenticated]
public class DynamicHlsService : BaseHlsService
{
public DynamicHlsService(
IServerConfigurationManager serverConfig,
IUserManager userManager,
@@ -103,12 +102,12 @@ namespace MediaBrowser.Api.Playback.Hls
IMediaEncoder mediaEncoder,
IFileSystem fileSystem,
IDlnaManager dlnaManager,
ISubtitleEncoder subtitleEncoder,
IDeviceManager deviceManager,
IMediaSourceManager mediaSourceManager,
IJsonSerializer jsonSerializer,
IAuthorizationContext authorizationContext,
INetworkManager networkManager)
INetworkManager networkManager,
EncodingHelper encodingHelper)
: base(serverConfig,
userManager,
libraryManager,
@@ -116,11 +115,11 @@ namespace MediaBrowser.Api.Playback.Hls
mediaEncoder,
fileSystem,
dlnaManager,
subtitleEncoder,
deviceManager,
mediaSourceManager,
jsonSerializer,
authorizationContext)
authorizationContext,
encodingHelper)
{
NetworkManager = networkManager;
}

View File

@@ -26,6 +26,34 @@ namespace MediaBrowser.Api.Playback.Hls
[Authenticated]
public class VideoHlsService : BaseHlsService
{
public VideoHlsService(
IServerConfigurationManager serverConfig,
IUserManager userManager,
ILibraryManager libraryManager,
IIsoManager isoManager,
IMediaEncoder mediaEncoder,
IFileSystem fileSystem,
IDlnaManager dlnaManager,
IDeviceManager deviceManager,
IMediaSourceManager mediaSourceManager,
IJsonSerializer jsonSerializer,
IAuthorizationContext authorizationContext,
EncodingHelper encodingHelper)
: base(serverConfig,
userManager,
libraryManager,
isoManager,
mediaEncoder,
fileSystem,
dlnaManager,
deviceManager,
mediaSourceManager,
jsonSerializer,
authorizationContext,
encodingHelper)
{
}
public Task<object> Get(GetLiveHlsStream request)
{
return ProcessRequestAsync(request, true);
@@ -135,33 +163,5 @@ namespace MediaBrowser.Api.Playback.Hls
return args;
}
public VideoHlsService(
IServerConfigurationManager serverConfig,
IUserManager userManager,
ILibraryManager libraryManager,
IIsoManager isoManager,
IMediaEncoder mediaEncoder,
IFileSystem fileSystem,
IDlnaManager dlnaManager,
ISubtitleEncoder subtitleEncoder,
IDeviceManager deviceManager,
IMediaSourceManager mediaSourceManager,
IJsonSerializer jsonSerializer,
IAuthorizationContext authorizationContext)
: base(serverConfig,
userManager,
libraryManager,
isoManager,
mediaEncoder,
fileSystem,
dlnaManager,
subtitleEncoder,
deviceManager,
mediaSourceManager,
jsonSerializer,
authorizationContext)
{
}
}
}

View File

@@ -40,11 +40,11 @@ namespace MediaBrowser.Api.Playback.Progressive
IMediaEncoder mediaEncoder,
IFileSystem fileSystem,
IDlnaManager dlnaManager,
ISubtitleEncoder subtitleEncoder,
IDeviceManager deviceManager,
IMediaSourceManager mediaSourceManager,
IJsonSerializer jsonSerializer,
IAuthorizationContext authorizationContext)
IAuthorizationContext authorizationContext,
EncodingHelper encodingHelper)
: base(httpClient,
serverConfig,
userManager,
@@ -53,11 +53,11 @@ namespace MediaBrowser.Api.Playback.Progressive
mediaEncoder,
fileSystem,
dlnaManager,
subtitleEncoder,
deviceManager,
mediaSourceManager,
jsonSerializer,
authorizationContext)
authorizationContext,
encodingHelper)
{
}

View File

@@ -35,23 +35,24 @@ namespace MediaBrowser.Api.Playback.Progressive
IMediaEncoder mediaEncoder,
IFileSystem fileSystem,
IDlnaManager dlnaManager,
ISubtitleEncoder subtitleEncoder,
IDeviceManager deviceManager,
IMediaSourceManager mediaSourceManager,
IJsonSerializer jsonSerializer,
IAuthorizationContext authorizationContext)
: base(serverConfig,
IAuthorizationContext authorizationContext,
EncodingHelper encodingHelper)
: base(
serverConfig,
userManager,
libraryManager,
isoManager,
mediaEncoder,
fileSystem,
dlnaManager,
subtitleEncoder,
deviceManager,
mediaSourceManager,
jsonSerializer,
authorizationContext)
authorizationContext,
encodingHelper)
{
HttpClient = httpClient;
}

View File

@@ -77,11 +77,11 @@ namespace MediaBrowser.Api.Playback.Progressive
IMediaEncoder mediaEncoder,
IFileSystem fileSystem,
IDlnaManager dlnaManager,
ISubtitleEncoder subtitleEncoder,
IDeviceManager deviceManager,
IMediaSourceManager mediaSourceManager,
IJsonSerializer jsonSerializer,
IAuthorizationContext authorizationContext)
IAuthorizationContext authorizationContext,
EncodingHelper encodingHelper)
: base(httpClient,
serverConfig,
userManager,
@@ -90,11 +90,11 @@ namespace MediaBrowser.Api.Playback.Progressive
mediaEncoder,
fileSystem,
dlnaManager,
subtitleEncoder,
deviceManager,
mediaSourceManager,
jsonSerializer,
authorizationContext)
authorizationContext,
encodingHelper)
{
}

View File

@@ -9,7 +9,6 @@ using MediaBrowser.Common.Net;
using MediaBrowser.Controller.Configuration;
using MediaBrowser.Controller.Devices;
using MediaBrowser.Controller.Dlna;
using MediaBrowser.Controller.Drawing;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.MediaEncoding;
using MediaBrowser.Controller.Net;
@@ -75,6 +74,9 @@ namespace MediaBrowser.Api.Playback
[Authenticated]
public class UniversalAudioService : BaseApiService
{
private readonly ILoggerFactory _loggerFactory;
private readonly EncodingHelper _encodingHelper;
public UniversalAudioService(
IHttpClient httpClient,
IServerConfigurationManager serverConfigurationManager,
@@ -85,14 +87,12 @@ namespace MediaBrowser.Api.Playback
IFileSystem fileSystem,
IDlnaManager dlnaManager,
IDeviceManager deviceManager,
ISubtitleEncoder subtitleEncoder,
IMediaSourceManager mediaSourceManager,
IZipClient zipClient,
IJsonSerializer jsonSerializer,
IAuthorizationContext authorizationContext,
IImageProcessor imageProcessor,
INetworkManager networkManager,
ILoggerFactory loggerFactory)
ILoggerFactory loggerFactory,
EncodingHelper encodingHelper)
{
HttpClient = httpClient;
ServerConfigurationManager = serverConfigurationManager;
@@ -103,15 +103,12 @@ namespace MediaBrowser.Api.Playback
FileSystem = fileSystem;
DlnaManager = dlnaManager;
DeviceManager = deviceManager;
SubtitleEncoder = subtitleEncoder;
MediaSourceManager = mediaSourceManager;
ZipClient = zipClient;
JsonSerializer = jsonSerializer;
AuthorizationContext = authorizationContext;
ImageProcessor = imageProcessor;
NetworkManager = networkManager;
_loggerFactory = loggerFactory;
_logger = loggerFactory.CreateLogger(nameof(UniversalAudioService));
_encodingHelper = encodingHelper;
}
protected IHttpClient HttpClient { get; private set; }
@@ -123,15 +120,10 @@ namespace MediaBrowser.Api.Playback
protected IFileSystem FileSystem { get; private set; }
protected IDlnaManager DlnaManager { get; private set; }
protected IDeviceManager DeviceManager { get; private set; }
protected ISubtitleEncoder SubtitleEncoder { get; private set; }
protected IMediaSourceManager MediaSourceManager { get; private set; }
protected IZipClient ZipClient { get; private set; }
protected IJsonSerializer JsonSerializer { get; private set; }
protected IAuthorizationContext AuthorizationContext { get; private set; }
protected IImageProcessor ImageProcessor { get; private set; }
protected INetworkManager NetworkManager { get; private set; }
private ILoggerFactory _loggerFactory;
private ILogger _logger;
public Task<object> Get(GetUniversalAudioStream request)
{
@@ -242,7 +234,17 @@ namespace MediaBrowser.Api.Playback
AuthorizationContext.GetAuthorizationInfo(Request).DeviceId = request.DeviceId;
var mediaInfoService = new MediaInfoService(MediaSourceManager, DeviceManager, LibraryManager, ServerConfigurationManager, NetworkManager, MediaEncoder, UserManager, JsonSerializer, AuthorizationContext, _loggerFactory)
var mediaInfoService = new MediaInfoService(
MediaSourceManager,
DeviceManager,
LibraryManager,
ServerConfigurationManager,
NetworkManager,
MediaEncoder,
UserManager,
JsonSerializer,
AuthorizationContext,
_loggerFactory)
{
Request = Request
};
@@ -276,19 +278,20 @@ namespace MediaBrowser.Api.Playback
if (!isStatic && string.Equals(mediaSource.TranscodingSubProtocol, "hls", StringComparison.OrdinalIgnoreCase))
{
var service = new DynamicHlsService(ServerConfigurationManager,
UserManager,
LibraryManager,
IsoManager,
MediaEncoder,
FileSystem,
DlnaManager,
SubtitleEncoder,
DeviceManager,
MediaSourceManager,
JsonSerializer,
AuthorizationContext,
NetworkManager)
var service = new DynamicHlsService(
ServerConfigurationManager,
UserManager,
LibraryManager,
IsoManager,
MediaEncoder,
FileSystem,
DlnaManager,
DeviceManager,
MediaSourceManager,
JsonSerializer,
AuthorizationContext,
NetworkManager,
_encodingHelper)
{
Request = Request
};
@@ -330,11 +333,11 @@ namespace MediaBrowser.Api.Playback
MediaEncoder,
FileSystem,
DlnaManager,
SubtitleEncoder,
DeviceManager,
MediaSourceManager,
JsonSerializer,
AuthorizationContext)
AuthorizationContext,
_encodingHelper)
{
Request = Request
};