diff options
Diffstat (limited to 'MediaBrowser.Api/Playback')
7 files changed, 44 insertions, 65 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs index 980856410..5107d13c2 100644 --- a/MediaBrowser.Api/Playback/BaseStreamingService.cs +++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs @@ -40,15 +40,12 @@ namespace MediaBrowser.Api.Playback /// </summary> /// <value>The library manager.</value> protected ILibraryManager LibraryManager { get; set; } - + /// <summary> - /// Gets the server kernel. + /// Gets or sets the iso manager. /// </summary> - /// <value>The server kernel.</value> - protected Kernel ServerKernel - { - get { return Kernel as Kernel; } - } + /// <value>The iso manager.</value> + protected IIsoManager IsoManager { get; set; } /// <summary> /// Initializes a new instance of the <see cref="BaseStreamingService" /> class. @@ -56,11 +53,13 @@ namespace MediaBrowser.Api.Playback /// <param name="appPaths">The app paths.</param> /// <param name="userManager">The user manager.</param> /// <param name="libraryManager">The library manager.</param> - protected BaseStreamingService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager) + /// <param name="isoManager">The iso manager.</param> + protected BaseStreamingService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager, IIsoManager isoManager) { ApplicationPaths = appPaths; UserManager = userManager; LibraryManager = libraryManager; + IsoManager = isoManager; } /// <summary> @@ -307,11 +306,11 @@ namespace MediaBrowser.Api.Playback /// <returns>System.String.</returns> private string GetExtractedAssPath(Video video, MediaStream subtitleStream) { - var path = ServerKernel.FFMpegManager.GetSubtitleCachePath(video, subtitleStream.Index, ".ass"); + var path = Kernel.Instance.FFMpegManager.GetSubtitleCachePath(video, subtitleStream.Index, ".ass"); if (!File.Exists(path)) { - var success = ServerKernel.FFMpegManager.ExtractTextSubtitle(video, subtitleStream.Index, path, CancellationToken.None).Result; + var success = Kernel.Instance.FFMpegManager.ExtractTextSubtitle(video, subtitleStream.Index, path, CancellationToken.None).Result; if (!success) { @@ -330,11 +329,11 @@ namespace MediaBrowser.Api.Playback /// <returns>System.String.</returns> private string GetConvertedAssPath(Video video, MediaStream subtitleStream) { - var path = ServerKernel.FFMpegManager.GetSubtitleCachePath(video, subtitleStream.Index, ".ass"); + var path = Kernel.Instance.FFMpegManager.GetSubtitleCachePath(video, subtitleStream.Index, ".ass"); if (!File.Exists(path)) { - var success = ServerKernel.FFMpegManager.ConvertTextSubtitle(subtitleStream, path, CancellationToken.None).Result; + var success = Kernel.Instance.FFMpegManager.ConvertTextSubtitle(subtitleStream, path, CancellationToken.None).Result; if (!success) { @@ -476,8 +475,8 @@ namespace MediaBrowser.Api.Playback protected string GetInputArgument(BaseItem item, IIsoMount isoMount) { return isoMount == null ? - ServerKernel.FFMpegManager.GetInputArgument(item) : - ServerKernel.FFMpegManager.GetInputArgument(item as Video, isoMount); + Kernel.Instance.FFMpegManager.GetInputArgument(item) : + Kernel.Instance.FFMpegManager.GetInputArgument(item as Video, isoMount); } /// <summary> @@ -490,11 +489,10 @@ namespace MediaBrowser.Api.Playback { var video = state.Item as Video; - //if (video != null && video.VideoType == VideoType.Iso && - // video.IsoType.HasValue && Kernel.IsoManager.CanMount(video.Path)) - //{ - // IsoMount = await Kernel.IsoManager.Mount(video.Path, CancellationToken.None).ConfigureAwait(false); - //} + if (video != null && video.VideoType == VideoType.Iso && video.IsoType.HasValue && IsoManager.CanMount(video.Path)) + { + state.IsoMount = await IsoManager.Mount(video.Path, CancellationToken.None).ConfigureAwait(false); + } var process = new Process { @@ -507,8 +505,8 @@ namespace MediaBrowser.Api.Playback RedirectStandardOutput = true, RedirectStandardError = true, - FileName = ServerKernel.FFMpegManager.FFMpegPath, - WorkingDirectory = Path.GetDirectoryName(ServerKernel.FFMpegManager.FFMpegPath), + FileName = Kernel.Instance.FFMpegManager.FFMpegPath, + WorkingDirectory = Path.GetDirectoryName(Kernel.Instance.FFMpegManager.FFMpegPath), Arguments = GetCommandLineArguments(outputPath, state), WindowStyle = ProcessWindowStyle.Hidden, @@ -522,7 +520,7 @@ namespace MediaBrowser.Api.Playback //Logger.Info(process.StartInfo.FileName + " " + process.StartInfo.Arguments); - var logFilePath = Path.Combine(Kernel.ApplicationPaths.LogDirectoryPath, "ffmpeg-" + Guid.NewGuid() + ".txt"); + var logFilePath = Path.Combine(ApplicationPaths.LogDirectoryPath, "ffmpeg-" + Guid.NewGuid() + ".txt"); // FFMpeg writes debug/error info to stderr. This is useful when debugging so let's put it in the log directory. state.LogFileStream = new FileStream(logFilePath, FileMode.Create, FileAccess.Write, FileShare.Read, StreamDefaults.DefaultFileStreamBufferSize, FileOptions.Asynchronous); diff --git a/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs b/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs index 0735f3b62..a98f27499 100644 --- a/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/AudioHlsService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller; +using MediaBrowser.Common.IO; +using MediaBrowser.Controller; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Dto; using System; @@ -10,13 +11,8 @@ namespace MediaBrowser.Api.Playback.Hls /// </summary> public class AudioHlsService : BaseHlsService { - /// <summary> - /// Initializes a new instance of the <see cref="AudioHlsService" /> class. - /// </summary> - /// <param name="appPaths">The app paths.</param> - /// <param name="userManager">The user manager.</param> - public AudioHlsService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager) - : base(appPaths, userManager, libraryManager) + public AudioHlsService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager, IIsoManager isoManager) + : base(appPaths, userManager, libraryManager, isoManager) { } diff --git a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs index d616565ca..f73109dd0 100644 --- a/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/BaseHlsService.cs @@ -17,8 +17,8 @@ namespace MediaBrowser.Api.Playback.Hls /// </summary> public const string SegmentFilePrefix = "segment-"; - protected BaseHlsService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager) - : base(appPaths, userManager, libraryManager) + protected BaseHlsService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager, IIsoManager isoManager) + : base(appPaths, userManager, libraryManager, isoManager) { } @@ -174,9 +174,7 @@ namespace MediaBrowser.Api.Playback.Hls segmentOutputPath = Path.Combine(segmentOutputPath, segmentOutputName + "%03d." + GetSegmentFileExtension(state).TrimStart('.')); - var kernel = (Kernel)Kernel; - - var probeSize = kernel.FFMpegManager.GetProbeSizeArgument(state.Item); + var probeSize = Kernel.Instance.FFMpegManager.GetProbeSizeArgument(state.Item); return string.Format("{0} {1} -i {2}{3} -threads 0 {4} {5} {6} -f ssegment -segment_list_flags +live -segment_time 9 -segment_list \"{7}\" \"{8}\"", probeSize, diff --git a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs index 41d818ce7..7fcd4357b 100644 --- a/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs +++ b/MediaBrowser.Api/Playback/Hls/VideoHlsService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller; +using MediaBrowser.Common.IO; +using MediaBrowser.Controller; using MediaBrowser.Controller.Library; using System; @@ -6,13 +7,8 @@ namespace MediaBrowser.Api.Playback.Hls { public class VideoHlsService : BaseHlsService { - /// <summary> - /// Initializes a new instance of the <see cref="VideoHlsService" /> class. - /// </summary> - /// <param name="appPaths">The app paths.</param> - /// <param name="userManager">The user manager.</param> - public VideoHlsService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager) - : base(appPaths, userManager, libraryManager) + public VideoHlsService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager, IIsoManager isoManager) + : base(appPaths, userManager, libraryManager, isoManager) { } diff --git a/MediaBrowser.Api/Playback/Progressive/AudioService.cs b/MediaBrowser.Api/Playback/Progressive/AudioService.cs index e81f0ac0d..86d993152 100644 --- a/MediaBrowser.Api/Playback/Progressive/AudioService.cs +++ b/MediaBrowser.Api/Playback/Progressive/AudioService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller; +using MediaBrowser.Common.IO; +using MediaBrowser.Controller; using MediaBrowser.Controller.Library; using ServiceStack.ServiceHost; using System.Collections.Generic; @@ -24,12 +25,8 @@ namespace MediaBrowser.Api.Playback.Progressive /// </summary> public class AudioService : BaseProgressiveStreamingService { - /// <summary> - /// Initializes a new instance of the <see cref="BaseProgressiveStreamingService" /> class. - /// </summary> - /// <param name="appPaths">The app paths.</param> - public AudioService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager) - : base(appPaths, userManager, libraryManager) + public AudioService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager, IIsoManager isoManager) + : base(appPaths, userManager, libraryManager, isoManager) { } diff --git a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs index bbfe65504..eba8decf2 100644 --- a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs +++ b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Common.Net; +using MediaBrowser.Common.IO; +using MediaBrowser.Common.Net; using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Audio; @@ -14,12 +15,8 @@ namespace MediaBrowser.Api.Playback.Progressive /// </summary> public abstract class BaseProgressiveStreamingService : BaseStreamingService { - /// <summary> - /// Initializes a new instance of the <see cref="BaseProgressiveStreamingService" /> class. - /// </summary> - /// <param name="appPaths">The app paths.</param> - protected BaseProgressiveStreamingService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager) - : base(appPaths, userManager, libraryManager) + protected BaseProgressiveStreamingService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager, IIsoManager isoManager) : + base(appPaths, userManager, libraryManager, isoManager) { } diff --git a/MediaBrowser.Api/Playback/Progressive/VideoService.cs b/MediaBrowser.Api/Playback/Progressive/VideoService.cs index 6261d32ee..22f3320ca 100644 --- a/MediaBrowser.Api/Playback/Progressive/VideoService.cs +++ b/MediaBrowser.Api/Playback/Progressive/VideoService.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller; +using MediaBrowser.Common.IO; +using MediaBrowser.Controller; using MediaBrowser.Controller.Entities; using System; using MediaBrowser.Controller.Library; @@ -30,12 +31,8 @@ namespace MediaBrowser.Api.Playback.Progressive /// </summary> public class VideoService : BaseProgressiveStreamingService { - /// <summary> - /// Initializes a new instance of the <see cref="BaseProgressiveStreamingService" /> class. - /// </summary> - /// <param name="appPaths">The app paths.</param> - public VideoService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager) - : base(appPaths, userManager, libraryManager) + public VideoService(IServerApplicationPaths appPaths, IUserManager userManager, ILibraryManager libraryManager, IIsoManager isoManager) + : base(appPaths, userManager, libraryManager, isoManager) { } @@ -59,7 +56,7 @@ namespace MediaBrowser.Api.Playback.Progressive { var video = (Video)state.Item; - var probeSize = ServerKernel.FFMpegManager.GetProbeSizeArgument(video.VideoType, video.IsoType); + var probeSize = Kernel.Instance.FFMpegManager.GetProbeSizeArgument(video.VideoType, video.IsoType); // Get the output codec name var videoCodec = GetVideoCodec(state.Request); |
