aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Streaming/AudioHandler.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Streaming/AudioHandler.cs')
-rw-r--r--MediaBrowser.Api/Streaming/AudioHandler.cs110
1 files changed, 0 insertions, 110 deletions
diff --git a/MediaBrowser.Api/Streaming/AudioHandler.cs b/MediaBrowser.Api/Streaming/AudioHandler.cs
deleted file mode 100644
index 2332f29d3..000000000
--- a/MediaBrowser.Api/Streaming/AudioHandler.cs
+++ /dev/null
@@ -1,110 +0,0 @@
-using MediaBrowser.Common.IO;
-using MediaBrowser.Common.Net.Handlers;
-using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Controller.Resolvers;
-using MediaBrowser.Model.Dto;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-
-namespace MediaBrowser.Api.Streaming
-{
- /// <summary>
- /// Providers a progressive streaming audio api
- /// </summary>
- public class AudioHandler : BaseProgressiveStreamingHandler<Audio>
- {
- /// <summary>
- /// Handleses the request.
- /// </summary>
- /// <param name="request">The request.</param>
- /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
- public override bool HandlesRequest(HttpListenerRequest request)
- {
- return EntityResolutionHelper.AudioFileExtensions.Any(a => ApiService.IsApiUrlMatch("audio" + a, request));
- }
-
- /// <summary>
- /// Gets the audio codec.
- /// </summary>
- /// <value>The audio codec.</value>
- /// <exception cref="InvalidOperationException"></exception>
- protected override AudioCodecs? AudioCodec
- {
- get
- {
- var ext = OutputFileExtension;
-
- if (ext.Equals(".aac", StringComparison.OrdinalIgnoreCase) || ext.Equals(".m4a", StringComparison.OrdinalIgnoreCase))
- {
- return AudioCodecs.Aac;
- }
- if (ext.Equals(".mp3", StringComparison.OrdinalIgnoreCase))
- {
- return AudioCodecs.Mp3;
- }
- if (ext.Equals(".wma", StringComparison.OrdinalIgnoreCase))
- {
- return AudioCodecs.Wma;
- }
- if (ext.Equals(".oga", StringComparison.OrdinalIgnoreCase) || ext.Equals(".ogg", StringComparison.OrdinalIgnoreCase))
- {
- return AudioCodecs.Vorbis;
- }
-
- throw new InvalidOperationException();
- }
- }
-
- /// <summary>
- /// Creates arguments to pass to ffmpeg
- /// </summary>
- /// <param name="outputPath">The output path.</param>
- /// <param name="isoMount">The iso mount.</param>
- /// <returns>System.String.</returns>
- /// <exception cref="System.InvalidOperationException">Only aac and mp3 audio codecs are supported.</exception>
- /// <exception cref="InvalidOperationException">Only aac and mp3 audio codecs are supported.</exception>
- /// <exception cref="ArgumentException">Only aac and mp3 audio codecs are supported.</exception>
- protected override string GetCommandLineArguments(string outputPath, IIsoMount isoMount)
- {
- var audioTranscodeParams = new List<string>();
-
- var outputFormat = AudioCodec;
-
- if (outputFormat != AudioCodecs.Aac && outputFormat != AudioCodecs.Mp3)
- {
- throw new InvalidOperationException("Only aac and mp3 audio codecs are supported.");
- }
-
- if (AudioBitRate.HasValue)
- {
- audioTranscodeParams.Add("-ab " + AudioBitRate.Value);
- }
-
- var channels = GetNumAudioChannelsParam();
-
- if (channels.HasValue)
- {
- audioTranscodeParams.Add("-ac " + channels.Value);
- }
-
- var sampleRate = GetSampleRateParam();
-
- if (sampleRate.HasValue)
- {
- audioTranscodeParams.Add("-ar " + sampleRate.Value);
- }
-
- const string vn = " -vn";
-
- return string.Format("{0} -i {1}{2} -threads 0{5} {3} -id3v2_version 3 -write_id3v1 1 \"{4}\"",
- FastSeekCommandLineParameter,
- GetInputArgument(isoMount),
- SlowSeekCommandLineParameter,
- string.Join(" ", audioTranscodeParams.ToArray()),
- outputPath,
- vn).Trim();
- }
- }
-}