From 1d7d52ff9e42c3efb4bb2c65e82a4a82faf9decb Mon Sep 17 00:00:00 2001 From: Mathieu Velten Date: Fri, 14 Dec 2018 10:40:55 +0100 Subject: Port MediaEncoding and Api.Playback from 10e57ce8d21b4516733894075001819f3cd6db6b --- MediaBrowser.MediaEncoding/Encoder/AudioEncoder.cs | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 MediaBrowser.MediaEncoding/Encoder/AudioEncoder.cs (limited to 'MediaBrowser.MediaEncoding/Encoder/AudioEncoder.cs') diff --git a/MediaBrowser.MediaEncoding/Encoder/AudioEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/AudioEncoder.cs new file mode 100644 index 000000000..566e7946d --- /dev/null +++ b/MediaBrowser.MediaEncoding/Encoder/AudioEncoder.cs @@ -0,0 +1,62 @@ +using MediaBrowser.Controller.Configuration; +using MediaBrowser.Controller.Library; +using MediaBrowser.Controller.MediaEncoding; +using MediaBrowser.Controller.Session; +using MediaBrowser.Model.IO; +using MediaBrowser.Model.Logging; +using System; +using MediaBrowser.Model.Diagnostics; + +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 + { + get { return false; } + } + + } +} -- cgit v1.2.3