Browse Source

Remove dead code

Bond_009 6 years ago
parent
commit
1cdcace061

+ 0 - 22
MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs

@@ -82,28 +82,6 @@ namespace MediaBrowser.Controller.MediaEncoding
         /// <returns>System.String.</returns>
         string GetTimeParameter(long ticks);
 
-        /// <summary>
-        /// Encodes the audio.
-        /// </summary>
-        /// <param name="options">The options.</param>
-        /// <param name="progress">The progress.</param>
-        /// <param name="cancellationToken">The cancellation token.</param>
-        /// <returns>Task.</returns>
-        Task<string> EncodeAudio(EncodingJobOptions options,
-            IProgress<double> progress,
-            CancellationToken cancellationToken);
-
-        /// <summary>
-        /// Encodes the video.
-        /// </summary>
-        /// <param name="options">The options.</param>
-        /// <param name="progress">The progress.</param>
-        /// <param name="cancellationToken">The cancellation token.</param>
-        /// <returns>Task&lt;System.String&gt;.</returns>
-        Task<string> EncodeVideo(EncodingJobOptions options,
-            IProgress<double> progress,
-            CancellationToken cancellationToken);
-
         Task ConvertImage(string inputPath, string outputPath);
 
         /// <summary>

+ 0 - 58
MediaBrowser.MediaEncoding/Encoder/AudioEncoder.cs

@@ -1,58 +0,0 @@
-using System;
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.MediaEncoding;
-using MediaBrowser.Controller.Session;
-using MediaBrowser.Model.Diagnostics;
-using MediaBrowser.Model.IO;
-using Microsoft.Extensions.Logging;
-
-namespace MediaBrowser.MediaEncoding.Encoder
-{
-    public class AudioEncoder : BaseEncoder
-    {
-        public AudioEncoder(MediaEncoder mediaEncoder, ILogger logger, IServerConfigurationManager configurationManager, IFileSystem fileSystem, IIsoManager isoManager, ILibraryManager libraryManager, ISessionManager sessionManager, ISubtitleEncoder subtitleEncoder, IMediaSourceManager mediaSourceManager, IProcessFactory processFactory) : base(mediaEncoder, logger, configurationManager, fileSystem, isoManager, libraryManager, sessionManager, subtitleEncoder, mediaSourceManager, processFactory)
-        {
-        }
-
-        protected override string GetCommandLineArguments(EncodingJob state)
-        {
-            var encodingOptions = GetEncodingOptions();
-
-            return EncodingHelper.GetProgressiveAudioFullCommandLine(state, encodingOptions, state.OutputFilePath);
-        }
-
-        protected override string GetOutputFileExtension(EncodingJob state)
-        {
-            var ext = base.GetOutputFileExtension(state);
-
-            if (!string.IsNullOrEmpty(ext))
-            {
-                return ext;
-            }
-
-            var audioCodec = state.Options.AudioCodec;
-
-            if (string.Equals("aac", audioCodec, StringComparison.OrdinalIgnoreCase))
-            {
-                return ".aac";
-            }
-            if (string.Equals("mp3", audioCodec, StringComparison.OrdinalIgnoreCase))
-            {
-                return ".mp3";
-            }
-            if (string.Equals("vorbis", audioCodec, StringComparison.OrdinalIgnoreCase))
-            {
-                return ".ogg";
-            }
-            if (string.Equals("wma", audioCodec, StringComparison.OrdinalIgnoreCase))
-            {
-                return ".wma";
-            }
-
-            return null;
-        }
-
-        protected override bool IsVideoEncoder => false;
-    }
-}

+ 0 - 399
MediaBrowser.MediaEncoding/Encoder/BaseEncoder.cs

@@ -1,399 +0,0 @@
-using System;
-using System.Diagnostics;
-using System.IO;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using MediaBrowser.Common.Configuration;
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.MediaEncoding;
-using MediaBrowser.Controller.Session;
-using MediaBrowser.Model.Configuration;
-using MediaBrowser.Model.Diagnostics;
-using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.IO;
-using MediaBrowser.Model.MediaInfo;
-using Microsoft.Extensions.Logging;
-
-namespace MediaBrowser.MediaEncoding.Encoder
-{
-    public abstract class BaseEncoder
-    {
-        protected readonly MediaEncoder MediaEncoder;
-        protected readonly ILogger Logger;
-        protected readonly IServerConfigurationManager ConfigurationManager;
-        protected readonly IFileSystem FileSystem;
-        protected readonly IIsoManager IsoManager;
-        protected readonly ILibraryManager LibraryManager;
-        protected readonly ISessionManager SessionManager;
-        protected readonly ISubtitleEncoder SubtitleEncoder;
-        protected readonly IMediaSourceManager MediaSourceManager;
-        protected IProcessFactory ProcessFactory;
-
-        protected EncodingHelper EncodingHelper;
-
-        protected BaseEncoder(
-            MediaEncoder mediaEncoder,
-            ILogger logger,
-            IServerConfigurationManager configurationManager,
-            IFileSystem fileSystem,
-            IIsoManager isoManager,
-            ILibraryManager libraryManager,
-            ISessionManager sessionManager,
-            ISubtitleEncoder subtitleEncoder,
-            IMediaSourceManager mediaSourceManager,
-            IProcessFactory processFactory)
-        {
-            MediaEncoder = mediaEncoder;
-            Logger = logger;
-            ConfigurationManager = configurationManager;
-            FileSystem = fileSystem;
-            IsoManager = isoManager;
-            LibraryManager = libraryManager;
-            SessionManager = sessionManager;
-            SubtitleEncoder = subtitleEncoder;
-            MediaSourceManager = mediaSourceManager;
-            ProcessFactory = processFactory;
-
-            EncodingHelper = new EncodingHelper(MediaEncoder, FileSystem, SubtitleEncoder);
-        }
-
-        public async Task<EncodingJob> Start(
-            EncodingJobOptions options,
-            IProgress<double> progress,
-            CancellationToken cancellationToken)
-        {
-            var encodingJob = await new EncodingJobFactory(Logger, LibraryManager, MediaSourceManager, MediaEncoder)
-                .CreateJob(options, EncodingHelper, IsVideoEncoder, progress, cancellationToken).ConfigureAwait(false);
-
-            encodingJob.OutputFilePath = GetOutputFilePath(encodingJob);
-            Directory.CreateDirectory(Path.GetDirectoryName(encodingJob.OutputFilePath));
-
-            encodingJob.ReadInputAtNativeFramerate = options.ReadInputAtNativeFramerate;
-
-            await AcquireResources(encodingJob, cancellationToken).ConfigureAwait(false);
-
-            var commandLineArgs = GetCommandLineArguments(encodingJob);
-
-            Process process = new Process
-            {
-                StartInfo = new ProcessStartInfo
-                {
-                    WindowStyle = ProcessWindowStyle.Hidden,
-                    CreateNoWindow = true,
-                    UseShellExecute = false,
-
-                    // Must consume both stdout and stderr or deadlocks may occur
-                    //RedirectStandardOutput = true,
-                    RedirectStandardError = true,
-                    RedirectStandardInput = true,
-
-                    FileName = MediaEncoder.EncoderPath,
-                    Arguments = commandLineArgs,
-
-                    ErrorDialog = false
-                },
-                EnableRaisingEvents = true
-            };
-
-            var workingDirectory = GetWorkingDirectory(options);
-            if (!string.IsNullOrWhiteSpace(workingDirectory))
-            {
-                process.StartInfo.WorkingDirectory = workingDirectory;
-            }
-
-            OnTranscodeBeginning(encodingJob);
-
-            var commandLineLogMessage = process.StartInfo.FileName + " " + process.StartInfo.Arguments;
-            Logger.LogInformation(commandLineLogMessage);
-
-            var logFilePath = Path.Combine(ConfigurationManager.CommonApplicationPaths.LogDirectoryPath, "transcode-" + Guid.NewGuid() + ".txt");
-            Directory.CreateDirectory(Path.GetDirectoryName(logFilePath));
-
-            // FFMpeg writes debug/error info to stderr. This is useful when debugging so let's put it in the log directory.
-            encodingJob.LogFileStream = FileSystem.GetFileStream(logFilePath, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read, true);
-
-            var commandLineLogMessageBytes = Encoding.UTF8.GetBytes(commandLineLogMessage + Environment.NewLine + Environment.NewLine);
-            await encodingJob.LogFileStream.WriteAsync(commandLineLogMessageBytes, 0, commandLineLogMessageBytes.Length, cancellationToken).ConfigureAwait(false);
-
-            process.Exited += (sender, args) => OnFfMpegProcessExited(process, encodingJob);
-
-            try
-            {
-                process.Start();
-            }
-            catch (Exception ex)
-            {
-                Logger.LogError(ex, "Error starting ffmpeg");
-
-                OnTranscodeFailedToStart(encodingJob.OutputFilePath, encodingJob);
-
-                throw;
-            }
-
-            cancellationToken.Register(async () => await Cancel(process, encodingJob));
-
-            // Important - don't await the log task or we won't be able to kill ffmpeg when the user stops playback
-            new JobLogger(Logger).StartStreamingLog(encodingJob, process.StandardError.BaseStream, encodingJob.LogFileStream);
-
-            Logger.LogInformation("test0");
-
-            if (File.Exists(encodingJob.OutputFilePath))
-            {
-                return encodingJob;
-            }
-
-            Logger.LogInformation("test1");
-
-            using (var watcher = new FileSystemWatcher(Path.GetDirectoryName(encodingJob.OutputFilePath)))
-            {
-                var tcs = new TaskCompletionSource<bool>();
-                string fileName = Path.GetFileName(encodingJob.OutputFilePath);
-
-                watcher.Created += (s, e) =>
-                {
-                    if (e.Name == fileName)
-                    {
-                        tcs.TrySetResult(true);
-                    }
-                };
-
-                watcher.EnableRaisingEvents = true;
-
-                Logger.LogInformation("test2");
-
-                // Wait for the file to or for the process to stop
-                await Task.WhenAny(encodingJob.TaskCompletionSource.Task, tcs.Task).ConfigureAwait(false);
-
-                Logger.LogInformation("test3");
-
-                return encodingJob;
-            }
-        }
-
-        private async Task Cancel(Process process, EncodingJob job)
-        {
-            Logger.LogInformation("Killing ffmpeg process for {0}", job.OutputFilePath);
-
-            //process.Kill();
-            await process.StandardInput.WriteLineAsync("q");
-
-            job.IsCancelled = true;
-        }
-
-        /// <summary>
-        /// Processes the exited.
-        /// </summary>
-        /// <param name="process">The process.</param>
-        /// <param name="job">The job.</param>
-        private void OnFfMpegProcessExited(Process process, EncodingJob job)
-        {
-            job.HasExited = true;
-
-            Logger.LogDebug("Disposing stream resources");
-            job.Dispose();
-
-            var isSuccessful = false;
-
-            try
-            {
-                var exitCode = process.ExitCode;
-                Logger.LogInformation("FFMpeg exited with code {0}", exitCode);
-
-                isSuccessful = exitCode == 0;
-            }
-            catch (Exception ex)
-            {
-                Logger.LogError(ex, "FFMpeg exited with an error.");
-            }
-
-            if (isSuccessful && !job.IsCancelled)
-            {
-                job.TaskCompletionSource.TrySetResult(true);
-            }
-            else if (job.IsCancelled)
-            {
-                try
-                {
-                    DeleteFiles(job);
-                }
-                catch
-                {
-                }
-                try
-                {
-                    job.TaskCompletionSource.TrySetException(new OperationCanceledException());
-                }
-                catch
-                {
-                }
-            }
-            else
-            {
-                try
-                {
-                    DeleteFiles(job);
-                }
-                catch
-                {
-                }
-                try
-                {
-                    job.TaskCompletionSource.TrySetException(new Exception("Encoding failed"));
-                }
-                catch
-                {
-                }
-            }
-
-            // This causes on exited to be called twice:
-            //try
-            //{
-            //    // Dispose the process
-            //    process.Dispose();
-            //}
-            //catch (Exception ex)
-            //{
-            //    Logger.LogError("Error disposing ffmpeg.", ex);
-            //}
-        }
-
-        protected virtual void DeleteFiles(EncodingJob job)
-        {
-            FileSystem.DeleteFile(job.OutputFilePath);
-        }
-
-        private void OnTranscodeBeginning(EncodingJob job)
-        {
-            job.ReportTranscodingProgress(null, null, null, null, null);
-        }
-
-        private void OnTranscodeFailedToStart(string path, EncodingJob job)
-        {
-            if (!string.IsNullOrWhiteSpace(job.Options.DeviceId))
-            {
-                SessionManager.ClearTranscodingInfo(job.Options.DeviceId);
-            }
-        }
-
-        protected abstract bool IsVideoEncoder { get; }
-
-        protected virtual string GetWorkingDirectory(EncodingJobOptions options)
-        {
-            return null;
-        }
-
-        protected EncodingOptions GetEncodingOptions()
-        {
-            return ConfigurationManager.GetConfiguration<EncodingOptions>("encoding");
-        }
-
-        protected abstract string GetCommandLineArguments(EncodingJob job);
-
-        private string GetOutputFilePath(EncodingJob state)
-        {
-            var folder = string.IsNullOrWhiteSpace(state.Options.TempDirectory) ?
-                ConfigurationManager.ApplicationPaths.TranscodingTempPath :
-                state.Options.TempDirectory;
-
-            var outputFileExtension = GetOutputFileExtension(state);
-
-            var filename = state.Id + (outputFileExtension ?? string.Empty).ToLowerInvariant();
-            return Path.Combine(folder, filename);
-        }
-
-        protected virtual string GetOutputFileExtension(EncodingJob state)
-        {
-            if (!string.IsNullOrWhiteSpace(state.Options.Container))
-            {
-                return "." + state.Options.Container;
-            }
-
-            return null;
-        }
-
-        /// <summary>
-        /// Gets the name of the output video codec
-        /// </summary>
-        /// <param name="state">The state.</param>
-        /// <returns>System.String.</returns>
-        protected string GetVideoDecoder(EncodingJob state)
-        {
-            if (string.Equals(state.OutputVideoCodec, "copy", StringComparison.OrdinalIgnoreCase))
-            {
-                return null;
-            }
-
-            // Only use alternative encoders for video files.
-            // When using concat with folder rips, if the mfx session fails to initialize, ffmpeg will be stuck retrying and will not exit gracefully
-            // Since transcoding of folder rips is expiremental anyway, it's not worth adding additional variables such as this.
-            if (state.VideoType != VideoType.VideoFile)
-            {
-                return null;
-            }
-
-            if (state.VideoStream != null && !string.IsNullOrWhiteSpace(state.VideoStream.Codec))
-            {
-                if (string.Equals(GetEncodingOptions().HardwareAccelerationType, "qsv", StringComparison.OrdinalIgnoreCase))
-                {
-                    switch (state.MediaSource.VideoStream.Codec.ToLowerInvariant())
-                    {
-                        case "avc":
-                        case "h264":
-                            if (MediaEncoder.SupportsDecoder("h264_qsv"))
-                            {
-                                // Seeing stalls and failures with decoding. Not worth it compared to encoding.
-                                return "-c:v h264_qsv ";
-                            }
-                            break;
-                        case "mpeg2video":
-                            if (MediaEncoder.SupportsDecoder("mpeg2_qsv"))
-                            {
-                                return "-c:v mpeg2_qsv ";
-                            }
-                            break;
-                        case "vc1":
-                            if (MediaEncoder.SupportsDecoder("vc1_qsv"))
-                            {
-                                return "-c:v vc1_qsv ";
-                            }
-                            break;
-                    }
-                }
-            }
-
-            // leave blank so ffmpeg will decide
-            return null;
-        }
-
-        private async Task AcquireResources(EncodingJob state, CancellationToken cancellationToken)
-        {
-            if (state.VideoType == VideoType.Iso && state.IsoType.HasValue && IsoManager.CanMount(state.MediaPath))
-            {
-                state.IsoMount = await IsoManager.Mount(state.MediaPath, cancellationToken).ConfigureAwait(false);
-            }
-
-            if (state.MediaSource.RequiresOpening && string.IsNullOrWhiteSpace(state.Options.LiveStreamId))
-            {
-                var liveStreamResponse = await MediaSourceManager.OpenLiveStream(new LiveStreamRequest
-                {
-                    OpenToken = state.MediaSource.OpenToken
-
-                }, cancellationToken).ConfigureAwait(false);
-
-                EncodingHelper.AttachMediaSourceInfo(state, liveStreamResponse.MediaSource, null);
-
-                if (state.IsVideoRequest)
-                {
-                    EncodingHelper.TryStreamCopy(state);
-                }
-            }
-
-            if (state.MediaSource.BufferMs.HasValue)
-            {
-                await Task.Delay(state.MediaSource.BufferMs.Value, cancellationToken).ConfigureAwait(false);
-            }
-        }
-    }
-}

+ 0 - 147
MediaBrowser.MediaEncoding/Encoder/EncodingJob.cs

@@ -1,147 +0,0 @@
-using System;
-using System.IO;
-using System.Threading.Tasks;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.MediaEncoding;
-using MediaBrowser.Model.Dlna;
-using Microsoft.Extensions.Logging;
-
-namespace MediaBrowser.MediaEncoding.Encoder
-{
-    public class EncodingJob : EncodingJobInfo, IDisposable
-    {
-        public bool HasExited { get; internal set; }
-        public bool IsCancelled { get; internal set; }
-
-        public Stream LogFileStream { get; set; }
-        public TaskCompletionSource<bool> TaskCompletionSource;
-
-        public EncodingJobOptions Options
-        {
-            get => (EncodingJobOptions)BaseRequest;
-            set => BaseRequest = value;
-        }
-
-        public Guid Id { get; set; }
-
-        public bool EstimateContentLength { get; set; }
-        public TranscodeSeekInfo TranscodeSeekInfo { get; set; }
-
-        public string ItemType { get; set; }
-
-        private readonly ILogger _logger;
-        private readonly IMediaSourceManager _mediaSourceManager;
-
-        public EncodingJob(ILogger logger, IMediaSourceManager mediaSourceManager) :
-            base(TranscodingJobType.Progressive)
-        {
-            _logger = logger;
-            _mediaSourceManager = mediaSourceManager;
-            Id = Guid.NewGuid();
-
-            TaskCompletionSource = new TaskCompletionSource<bool>();
-        }
-
-        public override void Dispose()
-        {
-            DisposeLiveStream();
-            DisposeLogStream();
-            DisposeIsoMount();
-        }
-
-        private void DisposeLogStream()
-        {
-            if (LogFileStream != null)
-            {
-                try
-                {
-                    LogFileStream.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    _logger.LogError(ex, "Error disposing log stream");
-                }
-
-                LogFileStream = null;
-            }
-        }
-
-        private async void DisposeLiveStream()
-        {
-            if (MediaSource.RequiresClosing && string.IsNullOrWhiteSpace(Options.LiveStreamId) && !string.IsNullOrWhiteSpace(MediaSource.LiveStreamId))
-            {
-                try
-                {
-                    await _mediaSourceManager.CloseLiveStream(MediaSource.LiveStreamId).ConfigureAwait(false);
-                }
-                catch (Exception ex)
-                {
-                    _logger.LogError(ex, "Error closing media source");
-                }
-            }
-        }
-
-
-        private void DisposeIsoMount()
-        {
-            if (IsoMount != null)
-            {
-                try
-                {
-                    IsoMount.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    _logger.LogError("Error disposing iso mount", ex);
-                }
-
-                IsoMount = null;
-            }
-        }
-
-        public void ReportTranscodingProgress(TimeSpan? transcodingPosition, float? framerate, double? percentComplete, long? bytesTranscoded, int? bitRate)
-        {
-            var ticks = transcodingPosition.HasValue ? transcodingPosition.Value.Ticks : (long?)null;
-
-            //job.Framerate = framerate;
-
-            if (!percentComplete.HasValue && ticks.HasValue && RunTimeTicks.HasValue)
-            {
-                var pct = ticks.Value / RunTimeTicks.Value;
-                percentComplete = pct * 100;
-            }
-
-            if (percentComplete.HasValue)
-            {
-                Progress.Report(percentComplete.Value);
-            }
-
-            /*
-            job.TranscodingPositionTicks = ticks;
-            job.BytesTranscoded = bytesTranscoded;
-
-            var deviceId = Options.DeviceId;
-
-            if (!string.IsNullOrWhiteSpace(deviceId))
-            {
-                var audioCodec = ActualOutputVideoCodec;
-                var videoCodec = ActualOutputVideoCodec;
-
-                SessionManager.ReportTranscodingInfo(deviceId, new TranscodingInfo
-                {
-                    Bitrate = job.TotalOutputBitrate,
-                    AudioCodec = audioCodec,
-                    VideoCodec = videoCodec,
-                    Container = job.Options.OutputContainer,
-                    Framerate = framerate,
-                    CompletionPercentage = percentComplete,
-                    Width = job.OutputWidth,
-                    Height = job.OutputHeight,
-                    AudioChannels = job.OutputAudioChannels,
-                    IsAudioDirect = string.Equals(job.OutputAudioCodec, "copy", StringComparison.OrdinalIgnoreCase),
-                    IsVideoDirect = string.Equals(job.OutputVideoCodec, "copy", StringComparison.OrdinalIgnoreCase)
-                });
-            }*/
-        }
-    }
-}

+ 0 - 225
MediaBrowser.MediaEncoding/Encoder/EncodingJobFactory.cs

@@ -1,225 +0,0 @@
-using System;
-using System.Linq;
-using System.Threading;
-using System.Threading.Tasks;
-using MediaBrowser.Common.Configuration;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.MediaEncoding;
-using MediaBrowser.Model.Dlna;
-using MediaBrowser.Model.Entities;
-using Microsoft.Extensions.Logging;
-
-namespace MediaBrowser.MediaEncoding.Encoder
-{
-    public class EncodingJobFactory
-    {
-        private readonly ILogger _logger;
-        private readonly ILibraryManager _libraryManager;
-        private readonly IMediaSourceManager _mediaSourceManager;
-        private readonly IMediaEncoder _mediaEncoder;
-
-        public EncodingJobFactory(ILogger logger, ILibraryManager libraryManager, IMediaSourceManager mediaSourceManager, IMediaEncoder mediaEncoder)
-        {
-            _logger = logger;
-            _libraryManager = libraryManager;
-            _mediaSourceManager = mediaSourceManager;
-            _mediaEncoder = mediaEncoder;
-        }
-
-        public async Task<EncodingJob> CreateJob(EncodingJobOptions options, EncodingHelper encodingHelper, bool isVideoRequest, IProgress<double> progress, CancellationToken cancellationToken)
-        {
-            var request = options;
-
-            if (string.IsNullOrEmpty(request.AudioCodec))
-            {
-                request.AudioCodec = InferAudioCodec(request.Container);
-            }
-
-            var state = new EncodingJob(_logger, _mediaSourceManager)
-            {
-                Options = options,
-                IsVideoRequest = isVideoRequest,
-                Progress = progress
-            };
-
-            if (!string.IsNullOrWhiteSpace(request.VideoCodec))
-            {
-                state.SupportedVideoCodecs = request.VideoCodec.Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).ToArray();
-                request.VideoCodec = state.SupportedVideoCodecs.FirstOrDefault();
-            }
-
-            if (!string.IsNullOrWhiteSpace(request.AudioCodec))
-            {
-                state.SupportedAudioCodecs = request.AudioCodec.Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).ToArray();
-                request.AudioCodec = state.SupportedAudioCodecs.FirstOrDefault();
-            }
-
-            if (!string.IsNullOrWhiteSpace(request.SubtitleCodec))
-            {
-                state.SupportedSubtitleCodecs = request.SubtitleCodec.Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).ToArray();
-                request.SubtitleCodec = state.SupportedSubtitleCodecs.FirstOrDefault(i => _mediaEncoder.CanEncodeToSubtitleCodec(i))
-                    ?? state.SupportedSubtitleCodecs.FirstOrDefault();
-            }
-
-            var item = _libraryManager.GetItemById(request.Id);
-            state.ItemType = item.GetType().Name;
-
-            state.IsInputVideo = string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase);
-
-            // TODO
-            // var primaryImage = item.GetImageInfo(ImageType.Primary, 0) ??
-            //                    item.Parents.Select(i => i.GetImageInfo(ImageType.Primary, 0)).FirstOrDefault(i => i != null);
-
-            // if (primaryImage != null)
-            // {
-            //     state.AlbumCoverPath = primaryImage.Path;
-            // }
-
-            // TODO network path substition useful ?
-            var mediaSources = await _mediaSourceManager.GetPlayackMediaSources(item, null, true, true, cancellationToken).ConfigureAwait(false);
-
-            var mediaSource = string.IsNullOrEmpty(request.MediaSourceId)
-               ? mediaSources.First()
-               : mediaSources.First(i => string.Equals(i.Id, request.MediaSourceId));
-
-            var videoRequest = state.Options;
-
-            encodingHelper.AttachMediaSourceInfo(state, mediaSource, null);
-
-            //var container = Path.GetExtension(state.RequestedUrl);
-
-            //if (string.IsNullOrEmpty(container))
-            //{
-            //    container = request.Static ?
-            //        state.InputContainer :
-            //        (Path.GetExtension(GetOutputFilePath(state)) ?? string.Empty).TrimStart('.');
-            //}
-
-            //state.OutputContainer = (container ?? string.Empty).TrimStart('.');
-
-            state.OutputAudioBitrate = encodingHelper.GetAudioBitrateParam(state.Options, state.AudioStream);
-
-            state.OutputAudioCodec = state.Options.AudioCodec;
-
-            state.OutputAudioChannels = encodingHelper.GetNumAudioChannelsParam(state, state.AudioStream, state.OutputAudioCodec);
-
-            if (videoRequest != null)
-            {
-                state.OutputVideoCodec = state.Options.VideoCodec;
-                state.OutputVideoBitrate = encodingHelper.GetVideoBitrateParamValue(state.Options, state.VideoStream, state.OutputVideoCodec);
-
-                if (state.OutputVideoBitrate.HasValue)
-                {
-                    var resolution = ResolutionNormalizer.Normalize(
-                        state.VideoStream?.BitRate,
-                        state.VideoStream?.Width,
-                        state.VideoStream?.Height,
-                        state.OutputVideoBitrate.Value,
-                        state.VideoStream?.Codec,
-                        state.OutputVideoCodec,
-                        videoRequest.MaxWidth,
-                        videoRequest.MaxHeight);
-
-                    videoRequest.MaxWidth = resolution.MaxWidth;
-                    videoRequest.MaxHeight = resolution.MaxHeight;
-                }
-            }
-
-            ApplyDeviceProfileSettings(state);
-
-            if (videoRequest != null)
-            {
-                encodingHelper.TryStreamCopy(state);
-            }
-
-            //state.OutputFilePath = GetOutputFilePath(state);
-
-            return state;
-        }
-
-        private string InferAudioCodec(string container)
-        {
-            var ext = "." + (container ?? string.Empty);
-
-            if (string.Equals(ext, ".mp3", StringComparison.OrdinalIgnoreCase))
-            {
-                return "mp3";
-            }
-            else if (string.Equals(ext, ".aac", StringComparison.OrdinalIgnoreCase))
-            {
-                return "aac";
-            }
-            else if (string.Equals(ext, ".wma", StringComparison.OrdinalIgnoreCase))
-            {
-                return "wma";
-            }
-            else if (string.Equals(ext, ".ogg", StringComparison.OrdinalIgnoreCase)
-                || string.Equals(ext, ".oga", StringComparison.OrdinalIgnoreCase)
-                || string.Equals(ext, ".ogv", StringComparison.OrdinalIgnoreCase)
-                || string.Equals(ext, ".webm", StringComparison.OrdinalIgnoreCase)
-                || string.Equals(ext, ".webma", StringComparison.OrdinalIgnoreCase))
-            {
-                return "vorbis";
-            }
-
-            return "copy";
-        }
-
-        private void ApplyDeviceProfileSettings(EncodingJob state)
-        {
-            var profile = state.Options.DeviceProfile;
-
-            if (profile == null)
-            {
-                // Don't use settings from the default profile.
-                // Only use a specific profile if it was requested.
-                return;
-            }
-
-            var audioCodec = state.ActualOutputAudioCodec;
-
-            var videoCodec = state.ActualOutputVideoCodec;
-            var outputContainer = state.Options.Container;
-
-            var mediaProfile = state.IsVideoRequest ?
-                profile.GetAudioMediaProfile(outputContainer, audioCodec, state.OutputAudioChannels, state.OutputAudioBitrate, state.OutputAudioSampleRate, state.OutputAudioBitDepth) :
-                profile.GetVideoMediaProfile(outputContainer,
-                audioCodec,
-                videoCodec,
-                state.OutputWidth,
-                state.OutputHeight,
-                state.TargetVideoBitDepth,
-                state.OutputVideoBitrate,
-                state.TargetVideoProfile,
-                state.TargetVideoLevel,
-                state.TargetFramerate,
-                state.TargetPacketLength,
-                state.TargetTimestamp,
-                state.IsTargetAnamorphic,
-                state.IsTargetInterlaced,
-                state.TargetRefFrames,
-                state.TargetVideoStreamCount,
-                state.TargetAudioStreamCount,
-                state.TargetVideoCodecTag,
-                state.IsTargetAVC);
-
-            if (mediaProfile != null)
-            {
-                state.MimeType = mediaProfile.MimeType;
-            }
-
-            var transcodingProfile = state.IsVideoRequest ?
-                profile.GetAudioTranscodingProfile(outputContainer, audioCodec) :
-                profile.GetVideoTranscodingProfile(outputContainer, audioCodec, videoCodec);
-
-            if (transcodingProfile != null)
-            {
-                state.EstimateContentLength = transcodingProfile.EstimateContentLength;
-                //state.EnableMpegtsM2TsMode = transcodingProfile.EnableMpegtsM2TsMode;
-                state.TranscodeSeekInfo = transcodingProfile.TranscodeSeekInfo;
-
-                state.Options.CopyTimestamps = transcodingProfile.CopyTimestamps;
-            }
-        }
-    }
-}

+ 0 - 43
MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

@@ -878,49 +878,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
             }
         }
 
-        public async Task<string> EncodeAudio(EncodingJobOptions options,
-            IProgress<double> progress,
-            CancellationToken cancellationToken)
-        {
-            var job = await new AudioEncoder(this,
-                _logger,
-                ConfigurationManager,
-                FileSystem,
-                IsoManager,
-                LibraryManager,
-                SessionManager,
-                SubtitleEncoder(),
-                MediaSourceManager(),
-                _processFactory)
-                .Start(options, progress, cancellationToken).ConfigureAwait(false);
-
-            await job.TaskCompletionSource.Task.ConfigureAwait(false);
-
-            return job.OutputFilePath;
-        }
-
-        public async Task<string> EncodeVideo(EncodingJobOptions options,
-            IProgress<double> progress,
-            CancellationToken cancellationToken)
-        {
-            _logger.LogError("EncodeVideo");
-            var job = await new VideoEncoder(this,
-                _logger,
-                ConfigurationManager,
-                FileSystem,
-                IsoManager,
-                LibraryManager,
-                SessionManager,
-                SubtitleEncoder(),
-                MediaSourceManager(),
-                _processFactory)
-                .Start(options, progress, cancellationToken).ConfigureAwait(false);
-
-            await job.TaskCompletionSource.Task.ConfigureAwait(false);
-
-            return job.OutputFilePath;
-        }
-
         private void StartProcess(ProcessWrapper process)
         {
             process.Process.Start();

+ 0 - 59
MediaBrowser.MediaEncoding/Encoder/VideoEncoder.cs

@@ -1,59 +0,0 @@
-using System;
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.MediaEncoding;
-using MediaBrowser.Controller.Session;
-using MediaBrowser.Model.Diagnostics;
-using MediaBrowser.Model.IO;
-using Microsoft.Extensions.Logging;
-
-namespace MediaBrowser.MediaEncoding.Encoder
-{
-    public class VideoEncoder : BaseEncoder
-    {
-        public VideoEncoder(MediaEncoder mediaEncoder, ILogger logger, IServerConfigurationManager configurationManager, IFileSystem fileSystem, IIsoManager isoManager, ILibraryManager libraryManager, ISessionManager sessionManager, ISubtitleEncoder subtitleEncoder, IMediaSourceManager mediaSourceManager, IProcessFactory processFactory) : base(mediaEncoder, logger, configurationManager, fileSystem, isoManager, libraryManager, sessionManager, subtitleEncoder, mediaSourceManager, processFactory)
-        {
-        }
-
-        protected override string GetCommandLineArguments(EncodingJob state)
-        {
-            // Get the output codec name
-            var encodingOptions = GetEncodingOptions();
-
-            return EncodingHelper.GetProgressiveVideoFullCommandLine(state, encodingOptions, state.OutputFilePath, "superfast");
-        }
-
-        protected override string GetOutputFileExtension(EncodingJob state)
-        {
-            var ext = base.GetOutputFileExtension(state);
-
-            if (!string.IsNullOrEmpty(ext))
-            {
-                return ext;
-            }
-
-            var videoCodec = state.Options.VideoCodec;
-
-            if (string.Equals(videoCodec, "h264", StringComparison.OrdinalIgnoreCase))
-            {
-                return ".ts";
-            }
-            if (string.Equals(videoCodec, "theora", StringComparison.OrdinalIgnoreCase))
-            {
-                return ".ogv";
-            }
-            if (string.Equals(videoCodec, "vpx", StringComparison.OrdinalIgnoreCase))
-            {
-                return ".webm";
-            }
-            if (string.Equals(videoCodec, "wmv", StringComparison.OrdinalIgnoreCase))
-            {
-                return ".asf";
-            }
-
-            return null;
-        }
-
-        protected override bool IsVideoEncoder => true;
-    }
-}