aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Playback
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Playback')
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs42
-rw-r--r--MediaBrowser.Api/Playback/Hls/AudioHlsService.cs12
-rw-r--r--MediaBrowser.Api/Playback/Hls/BaseHlsService.cs8
-rw-r--r--MediaBrowser.Api/Playback/Hls/VideoHlsService.cs12
-rw-r--r--MediaBrowser.Api/Playback/Progressive/AudioService.cs11
-rw-r--r--MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs11
-rw-r--r--MediaBrowser.Api/Playback/Progressive/VideoService.cs13
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);