瀏覽代碼

Delete unnecessary ProcessFactory abstraction

Mark Monteiro 5 年之前
父節點
當前提交
b947d98266

+ 5 - 15
Emby.Server.Implementations/ApplicationHost.cs

@@ -30,7 +30,6 @@ using Emby.Server.Implementations.Configuration;
 using Emby.Server.Implementations.Cryptography;
 using Emby.Server.Implementations.Data;
 using Emby.Server.Implementations.Devices;
-using Emby.Server.Implementations.Diagnostics;
 using Emby.Server.Implementations.Dto;
 using Emby.Server.Implementations.HttpServer;
 using Emby.Server.Implementations.HttpServer.Security;
@@ -85,7 +84,6 @@ using MediaBrowser.MediaEncoding.BdInfo;
 using MediaBrowser.Model.Activity;
 using MediaBrowser.Model.Configuration;
 using MediaBrowser.Model.Cryptography;
-using MediaBrowser.Model.Diagnostics;
 using MediaBrowser.Model.Dlna;
 using MediaBrowser.Model.Events;
 using MediaBrowser.Model.Globalization;
@@ -336,8 +334,6 @@ namespace Emby.Server.Implementations
 
         internal IImageEncoder ImageEncoder { get; private set; }
 
-        protected IProcessFactory ProcessFactory { get; private set; }
-
         protected readonly IXmlSerializer XmlSerializer;
 
         protected ISocketFactory SocketFactory { get; private set; }
@@ -685,9 +681,6 @@ namespace Emby.Server.Implementations
 
             serviceCollection.AddSingleton(XmlSerializer);
 
-            ProcessFactory = new ProcessFactory();
-            serviceCollection.AddSingleton(ProcessFactory);
-
             serviceCollection.AddSingleton(typeof(IStreamHelper), typeof(StreamHelper));
 
             var cryptoProvider = new CryptographyProvider();
@@ -748,7 +741,6 @@ namespace Emby.Server.Implementations
                 LoggerFactory.CreateLogger<MediaBrowser.MediaEncoding.Encoder.MediaEncoder>(),
                 ServerConfigurationManager,
                 FileSystemManager,
-                ProcessFactory,
                 LocalizationManager,
                 () => SubtitleEncoder,
                 startupConfig,
@@ -868,8 +860,7 @@ namespace Emby.Server.Implementations
                 FileSystemManager,
                 MediaEncoder,
                 HttpClient,
-                MediaSourceManager,
-                ProcessFactory);
+                MediaSourceManager);
             serviceCollection.AddSingleton(SubtitleEncoder);
 
             serviceCollection.AddSingleton(typeof(IResourceFileManager), typeof(ResourceFileManager));
@@ -1727,15 +1718,14 @@ namespace Emby.Server.Implementations
                 throw new NotSupportedException();
             }
 
-            var process = ProcessFactory.Create(new ProcessStartInfo
+            var processStartInfo = new ProcessStartInfo
             {
                 FileName = url,
                 UseShellExecute = true,
                 ErrorDialog = false
-            });
-
-            process.EnableRaisingEvents = true;
-            process.Exited += (sender, args) => ((Process)sender).Dispose(); ;
+            };
+            var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };
+            process.Exited += (sender, args) => ((Process)sender).Dispose();
 
             try
             {

+ 0 - 15
Emby.Server.Implementations/Diagnostics/ProcessFactory.cs

@@ -1,15 +0,0 @@
-#pragma warning disable CS1591
-
-using System.Diagnostics;
-using MediaBrowser.Model.Diagnostics;
-
-namespace Emby.Server.Implementations.Diagnostics
-{
-    public class ProcessFactory : IProcessFactory
-    {
-        public Process Create(ProcessStartInfo startInfo)
-        {
-            return new Process { StartInfo = startInfo };
-        }
-    }
-}

+ 5 - 9
Emby.Server.Implementations/LiveTv/EmbyTV/EmbyTV.cs

@@ -26,7 +26,6 @@ using MediaBrowser.Controller.LiveTv;
 using MediaBrowser.Controller.MediaEncoding;
 using MediaBrowser.Controller.Providers;
 using MediaBrowser.Model.Configuration;
-using MediaBrowser.Model.Diagnostics;
 using MediaBrowser.Model.Dto;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.Events;
@@ -62,7 +61,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
         private readonly ILibraryManager _libraryManager;
         private readonly IProviderManager _providerManager;
         private readonly IMediaEncoder _mediaEncoder;
-        private readonly IProcessFactory _processFactory;
         private readonly IMediaSourceManager _mediaSourceManager;
         private readonly IStreamHelper _streamHelper;
 
@@ -89,8 +87,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
             ILibraryManager libraryManager,
             ILibraryMonitor libraryMonitor,
             IProviderManager providerManager,
-            IMediaEncoder mediaEncoder,
-            IProcessFactory processFactory)
+            IMediaEncoder mediaEncoder)
         {
             Current = this;
 
@@ -103,7 +100,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
             _libraryMonitor = libraryMonitor;
             _providerManager = providerManager;
             _mediaEncoder = mediaEncoder;
-            _processFactory = processFactory;
             _liveTvManager = (LiveTvManager)liveTvManager;
             _jsonSerializer = jsonSerializer;
             _mediaSourceManager = mediaSourceManager;
@@ -1663,7 +1659,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
         {
             if (mediaSource.RequiresLooping || !(mediaSource.Container ?? string.Empty).EndsWith("ts", StringComparison.OrdinalIgnoreCase) || (mediaSource.Protocol != MediaProtocol.File && mediaSource.Protocol != MediaProtocol.Http))
             {
-                return new EncodedRecorder(_logger, _mediaEncoder, _config.ApplicationPaths, _jsonSerializer, _processFactory, _config);
+                return new EncodedRecorder(_logger, _mediaEncoder, _config.ApplicationPaths, _jsonSerializer, _config);
             }
 
             return new DirectRecorder(_logger, _httpClient, _streamHelper);
@@ -1684,7 +1680,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
 
             try
             {
-                var process = _processFactory.Create(new ProcessStartInfo
+                var processStartInfo = new ProcessStartInfo
                 {
                     Arguments = GetPostProcessArguments(path, options.RecordingPostProcessorArguments),
                     CreateNoWindow = true,
@@ -1692,11 +1688,11 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
                     FileName = options.RecordingPostProcessor,
                     WindowStyle = ProcessWindowStyle.Hidden,
                     UseShellExecute = false
-                });
+                };
+                var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };
 
                 _logger.LogInformation("Running recording post processor {0} {1}", process.StartInfo.FileName, process.StartInfo.Arguments);
 
-                process.EnableRaisingEvents = true;
                 process.Exited += Process_Exited;
                 process.Start();
             }

+ 18 - 22
Emby.Server.Implementations/LiveTv/EmbyTV/EncodedRecorder.cs

@@ -15,7 +15,6 @@ using MediaBrowser.Controller.Configuration;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.MediaEncoding;
 using MediaBrowser.Model.Configuration;
-using MediaBrowser.Model.Diagnostics;
 using MediaBrowser.Model.Dto;
 using MediaBrowser.Model.IO;
 using MediaBrowser.Model.Serialization;
@@ -32,7 +31,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
         private Stream _logFileStream;
         private string _targetPath;
         private Process _process;
-        private readonly IProcessFactory _processFactory;
         private readonly IJsonSerializer _json;
         private readonly TaskCompletionSource<bool> _taskCompletionSource = new TaskCompletionSource<bool>();
         private readonly IServerConfigurationManager _config;
@@ -42,14 +40,12 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
             IMediaEncoder mediaEncoder,
             IServerApplicationPaths appPaths,
             IJsonSerializer json,
-            IProcessFactory processFactory,
             IServerConfigurationManager config)
         {
             _logger = logger;
             _mediaEncoder = mediaEncoder;
             _appPaths = appPaths;
             _json = json;
-            _processFactory = processFactory;
             _config = config;
         }
 
@@ -81,7 +77,7 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
             _targetPath = targetFile;
             Directory.CreateDirectory(Path.GetDirectoryName(targetFile));
 
-            _process = _processFactory.Create(new ProcessStartInfo
+            var processStartInfo = new ProcessStartInfo
             {
                 CreateNoWindow = true,
                 UseShellExecute = false,
@@ -94,7 +90,8 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
 
                 WindowStyle = ProcessWindowStyle.Hidden,
                 ErrorDialog = false
-            });
+            };
+            _process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };
 
             var commandLineLogMessage = _process.StartInfo.FileName + " " + _process.StartInfo.Arguments;
             _logger.LogInformation(commandLineLogMessage);
@@ -108,7 +105,6 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
             var commandLineLogMessageBytes = Encoding.UTF8.GetBytes(_json.SerializeToString(mediaSource) + Environment.NewLine + Environment.NewLine + commandLineLogMessage + Environment.NewLine + Environment.NewLine);
             _logFileStream.Write(commandLineLogMessageBytes, 0, commandLineLogMessageBytes.Length);
 
-            _process.EnableRaisingEvents = true;
             _process.Exited += (sender, args) => OnFfMpegProcessExited(_process, inputFile);
 
             _process.Start();
@@ -297,24 +293,24 @@ namespace Emby.Server.Implementations.LiveTv.EmbyTV
             _hasExited = true;
 
             _logFileStream?.Dispose();
-            _logFileStream = null;
+                _logFileStream = null;
 
-            var exitCode = process.ExitCode;
+                var exitCode = process.ExitCode;
 
-            _logger.LogInformation("FFMpeg recording exited with code {ExitCode} for {Path}", exitCode, _targetPath);
+                _logger.LogInformation("FFMpeg recording exited with code {ExitCode} for {Path}", exitCode, _targetPath);
 
-            if (exitCode == 0)
-            {
-                _taskCompletionSource.TrySetResult(true);
-            }
-            else
-            {
-                _taskCompletionSource.TrySetException(
-                    new Exception(
-                        string.Format(
-                            CultureInfo.InvariantCulture,
-                            "Recording for {0} failed. Exit code {1}",
-                            _targetPath,
+                if (exitCode == 0)
+                {
+                    _taskCompletionSource.TrySetResult(true);
+                }
+                else
+                {
+                    _taskCompletionSource.TrySetException(
+                        new Exception(
+                            string.Format(
+                                CultureInfo.InvariantCulture,
+                                "Recording for {0} failed. Exit code {1}",
+                                _targetPath,
                             exitCode)));
             }
         }

+ 9 - 13
MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

@@ -22,7 +22,6 @@ using MediaBrowser.Model.System;
 using Microsoft.Extensions.Logging;
 using Microsoft.Extensions.Configuration;
 using System.Diagnostics;
-using MediaBrowser.Model.Diagnostics;
 
 namespace MediaBrowser.MediaEncoding.Encoder
 {
@@ -39,7 +38,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
         private readonly ILogger _logger;
         private readonly IServerConfigurationManager _configurationManager;
         private readonly IFileSystem _fileSystem;
-        private readonly IProcessFactory _processFactory;
         private readonly ILocalizationManager _localization;
         private readonly Func<ISubtitleEncoder> _subtitleEncoder;
         private readonly IConfiguration _configuration;
@@ -59,7 +57,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
             ILogger<MediaEncoder> logger,
             IServerConfigurationManager configurationManager,
             IFileSystem fileSystem,
-            IProcessFactory processFactory,
             ILocalizationManager localization,
             Func<ISubtitleEncoder> subtitleEncoder,
             IConfiguration configuration,
@@ -68,7 +65,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
             _logger = logger;
             _configurationManager = configurationManager;
             _fileSystem = fileSystem;
-            _processFactory = processFactory;
             _localization = localization;
             _startupOptionFFmpegPath = startupOptionsFFmpegPath;
             _subtitleEncoder = subtitleEncoder;
@@ -363,7 +359,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
                 : "{0} -i {1} -threads 0 -v warning -print_format json -show_streams -show_format";
             args = string.Format(args, probeSizeArgument, inputPath).Trim();
 
-            var process = _processFactory.Create(new ProcessStartInfo
+            var processStartInfo = new ProcessStartInfo
             {
                 CreateNoWindow = true,
                 UseShellExecute = false,
@@ -377,8 +373,8 @@ namespace MediaBrowser.MediaEncoding.Encoder
 
                 WindowStyle = ProcessWindowStyle.Hidden,
                 ErrorDialog = false,
-            });
-            process.EnableRaisingEvents = true;
+            };
+            var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };
 
             if (forceEnableLogging)
             {
@@ -572,7 +568,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
                 }
             }
 
-            var process = _processFactory.Create(new ProcessStartInfo
+            var processStartInfo = new ProcessStartInfo
             {
                 CreateNoWindow = true,
                 UseShellExecute = false,
@@ -580,8 +576,8 @@ namespace MediaBrowser.MediaEncoding.Encoder
                 Arguments = args,
                 WindowStyle = ProcessWindowStyle.Hidden,
                 ErrorDialog = false,
-            });
-            process.EnableRaisingEvents = true;
+            };
+            var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };
 
             _logger.LogDebug("{0} {1}", process.StartInfo.FileName, process.StartInfo.Arguments);
 
@@ -701,7 +697,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
                 }
             }
 
-            var process = _processFactory.Create(new ProcessStartInfo
+            var processStartInfo = new ProcessStartInfo
             {
                 CreateNoWindow = true,
                 UseShellExecute = false,
@@ -709,8 +705,8 @@ namespace MediaBrowser.MediaEncoding.Encoder
                 Arguments = args,
                 WindowStyle = ProcessWindowStyle.Hidden,
                 ErrorDialog = false
-            });
-            process.EnableRaisingEvents = true;
+            };
+            var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };
 
             _logger.LogInformation(process.StartInfo.FileName + " " + process.StartInfo.Arguments);
 

+ 7 - 11
MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs

@@ -13,7 +13,6 @@ using MediaBrowser.Common.Net;
 using MediaBrowser.Controller.Entities;
 using MediaBrowser.Controller.Library;
 using MediaBrowser.Controller.MediaEncoding;
-using MediaBrowser.Model.Diagnostics;
 using MediaBrowser.Model.Dto;
 using MediaBrowser.Model.Entities;
 using MediaBrowser.Model.IO;
@@ -32,7 +31,6 @@ namespace MediaBrowser.MediaEncoding.Subtitles
         private readonly IMediaEncoder _mediaEncoder;
         private readonly IHttpClient _httpClient;
         private readonly IMediaSourceManager _mediaSourceManager;
-        private readonly IProcessFactory _processFactory;
 
         public SubtitleEncoder(
             ILibraryManager libraryManager,
@@ -41,8 +39,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
             IFileSystem fileSystem,
             IMediaEncoder mediaEncoder,
             IHttpClient httpClient,
-            IMediaSourceManager mediaSourceManager,
-            IProcessFactory processFactory)
+            IMediaSourceManager mediaSourceManager)
         {
             _libraryManager = libraryManager;
             _logger = logger;
@@ -51,7 +48,6 @@ namespace MediaBrowser.MediaEncoding.Subtitles
             _mediaEncoder = mediaEncoder;
             _httpClient = httpClient;
             _mediaSourceManager = mediaSourceManager;
-            _processFactory = processFactory;
         }
 
         private string SubtitleCachePath => Path.Combine(_appPaths.DataPath, "subtitles");
@@ -430,7 +426,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
                 encodingParam = " -sub_charenc " + encodingParam;
             }
 
-            var process = _processFactory.Create(new ProcessStartInfo
+            var processStartInfo = new ProcessStartInfo
             {
                 CreateNoWindow = true,
                 UseShellExecute = false,
@@ -438,7 +434,8 @@ namespace MediaBrowser.MediaEncoding.Subtitles
                 Arguments = string.Format("{0} -i \"{1}\" -c:s srt \"{2}\"", encodingParam, inputPath, outputPath),
                 WindowStyle = ProcessWindowStyle.Hidden,
                 ErrorDialog = false
-            });
+            };
+            var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };
 
             _logger.LogInformation("{0} {1}", process.StartInfo.FileName, process.StartInfo.Arguments);
 
@@ -453,7 +450,6 @@ namespace MediaBrowser.MediaEncoding.Subtitles
                 throw;
             }
 
-            process.EnableRaisingEvents = true;
             var ranToCompletion = await process.WaitForExitAsync(300000).ConfigureAwait(false);
 
             if (!ranToCompletion)
@@ -579,7 +575,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles
                 outputCodec,
                 outputPath);
 
-            var process = _processFactory.Create(new ProcessStartInfo
+            var processStartInfo = new ProcessStartInfo
             {
                 CreateNoWindow = true,
                 UseShellExecute = false,
@@ -587,7 +583,8 @@ namespace MediaBrowser.MediaEncoding.Subtitles
                 Arguments = processArgs,
                 WindowStyle = ProcessWindowStyle.Hidden,
                 ErrorDialog = false
-            });
+            };
+            var process = new Process { StartInfo = processStartInfo, EnableRaisingEvents = true };
 
             _logger.LogInformation("{File} {Arguments}", process.StartInfo.FileName, process.StartInfo.Arguments);
 
@@ -602,7 +599,6 @@ namespace MediaBrowser.MediaEncoding.Subtitles
                 throw;
             }
 
-            process.EnableRaisingEvents = true;
             var ranToCompletion = await process.WaitForExitAsync(300000).ConfigureAwait(false);
 
             if (!ranToCompletion)

+ 0 - 11
MediaBrowser.Model/Diagnostics/IProcessFactory.cs

@@ -1,11 +0,0 @@
-#pragma warning disable CS1591
-
-using System.Diagnostics;
-
-namespace MediaBrowser.Model.Diagnostics
-{
-    public interface IProcessFactory
-    {
-        Process Create(ProcessStartInfo options);
-    }
-}