From 21fd761b05584481d9f6293ca48e373f356c80b6 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Mon, 16 Jun 2014 21:56:23 -0400 Subject: fixes #838 - Support rtmp protocol with channels --- .../Subtitles/SubtitleEncoder.cs | 23 ++++++++-------------- 1 file changed, 8 insertions(+), 15 deletions(-) (limited to 'MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs') diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs index 5d066ee65..154541316 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs @@ -127,26 +127,19 @@ namespace MediaBrowser.MediaEncoding.Subtitles var subtitleStream = mediaSource.MediaStreams .First(i => i.Type == MediaStreamType.Subtitle && i.Index == subtitleStreamIndex); - var inputType = mediaSource.LocationType == LocationType.Remote ? InputType.Url : InputType.File; var inputFiles = new[] { mediaSource.Path }; if (mediaSource.VideoType.HasValue) { - if (mediaSource.VideoType.Value == VideoType.BluRay) + if (mediaSource.VideoType.Value == VideoType.BluRay || + mediaSource.VideoType.Value == VideoType.Dvd) { - inputType = InputType.Bluray; - var mediaSourceItem = (Video)_libraryManager.GetItemById(new Guid(mediaSourceId)); - inputFiles = mediaSourceItem.GetPlayableStreamFiles().ToArray(); - } - else if (mediaSource.VideoType.Value == VideoType.Dvd) - { - inputType = InputType.Dvd; var mediaSourceItem = (Video)_libraryManager.GetItemById(new Guid(mediaSourceId)); inputFiles = mediaSourceItem.GetPlayableStreamFiles().ToArray(); } } - var fileInfo = await GetReadableFile(mediaSource.Path, inputFiles, inputType, subtitleStream, cancellationToken).ConfigureAwait(false); + var fileInfo = await GetReadableFile(mediaSource.Path, inputFiles, mediaSource.Protocol, subtitleStream, cancellationToken).ConfigureAwait(false); var stream = await GetSubtitleStream(fileInfo.Item1, subtitleStream.Language).ConfigureAwait(false); @@ -180,7 +173,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles private async Task> GetReadableFile(string mediaPath, string[] inputFiles, - InputType type, + MediaProtocol protocol, MediaStream subtitleStream, CancellationToken cancellationToken) { @@ -189,7 +182,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles // Extract var outputPath = GetSubtitleCachePath(mediaPath, subtitleStream.Index, ".ass"); - await ExtractTextSubtitle(inputFiles, type, subtitleStream.Index, false, outputPath, cancellationToken) + await ExtractTextSubtitle(inputFiles, protocol, subtitleStream.Index, false, outputPath, cancellationToken) .ConfigureAwait(false); return new Tuple(outputPath, "ass"); @@ -451,14 +444,14 @@ namespace MediaBrowser.MediaEncoding.Subtitles /// Extracts the text subtitle. /// /// The input files. - /// The type. + /// The protocol. /// Index of the subtitle stream. /// if set to true, copy stream instead of converting. /// The output path. /// The cancellation token. /// Task. /// Must use inputPath list overload - private async Task ExtractTextSubtitle(string[] inputFiles, InputType type, int subtitleStreamIndex, + private async Task ExtractTextSubtitle(string[] inputFiles, MediaProtocol protocol, int subtitleStreamIndex, bool copySubtitleStream, string outputPath, CancellationToken cancellationToken) { var semaphore = GetLock(outputPath); @@ -469,7 +462,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles { if (!File.Exists(outputPath)) { - await ExtractTextSubtitleInternal(_mediaEncoder.GetInputArgument(inputFiles, type), subtitleStreamIndex, + await ExtractTextSubtitleInternal(_mediaEncoder.GetInputArgument(inputFiles, protocol), subtitleStreamIndex, copySubtitleStream, outputPath, cancellationToken).ConfigureAwait(false); } } -- cgit v1.2.3