From 58eb50095676ec8bb4f7d4e1d0fc766dd3280305 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 6 Sep 2014 00:21:23 -0400 Subject: fixes #914 - Add option to save metadata hidden --- .../Subtitles/SubtitleEncoder.cs | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) (limited to 'MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs') diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs index 7a3a7d2d0..3b8dafa8e 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs @@ -59,7 +59,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles try { // Return the original without any conversions, if possible - if (startTimeTicks == 0 && + if (startTimeTicks == 0 && !endTimeTicks.HasValue && string.Equals(inputFormat, outputFormat, StringComparison.OrdinalIgnoreCase)) { @@ -158,14 +158,14 @@ namespace MediaBrowser.MediaEncoding.Subtitles var fileInfo = await GetReadableFile(mediaSource.Path, inputFiles, mediaSource.Protocol, subtitleStream, cancellationToken).ConfigureAwait(false); - var stream = await GetSubtitleStream(fileInfo.Item1, subtitleStream.Language).ConfigureAwait(false); + var stream = await GetSubtitleStream(fileInfo.Item1, subtitleStream.Language, fileInfo.Item3).ConfigureAwait(false); return new Tuple(stream, fileInfo.Item2); } - private async Task GetSubtitleStream(string path, string language) + private async Task GetSubtitleStream(string path, string language, bool requiresCharset) { - if (!string.IsNullOrEmpty(language)) + if (requiresCharset && !string.IsNullOrEmpty(language)) { var charset = GetSubtitleFileCharacterSet(path, language); @@ -188,7 +188,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles return File.OpenRead(path); } - private async Task> GetReadableFile(string mediaPath, + private async Task> GetReadableFile(string mediaPath, string[] inputFiles, MediaProtocol protocol, MediaStream subtitleStream, @@ -225,7 +225,7 @@ namespace MediaBrowser.MediaEncoding.Subtitles await ExtractTextSubtitle(inputFiles, protocol, subtitleStream.Index, outputCodec, outputPath, cancellationToken) .ConfigureAwait(false); - return new Tuple(outputPath, outputFormat); + return new Tuple(outputPath, outputFormat, false); } var currentFormat = (Path.GetExtension(subtitleStream.Path) ?? subtitleStream.Codec) @@ -239,10 +239,10 @@ namespace MediaBrowser.MediaEncoding.Subtitles await ConvertTextSubtitleToSrt(subtitleStream.Path, outputPath, subtitleStream.Language, cancellationToken) .ConfigureAwait(false); - return new Tuple(outputPath, "srt"); + return new Tuple(outputPath, "srt", false); } - return new Tuple(subtitleStream.Path, currentFormat); + return new Tuple(subtitleStream.Path, currentFormat, false); } private async Task GetTrackInfo(Stream stream, @@ -647,7 +647,10 @@ namespace MediaBrowser.MediaEncoding.Subtitles _logger.Info(msg); } - await SetAssFont(outputPath).ConfigureAwait(false); + if (string.Equals(outputCodec, "ass", StringComparison.OrdinalIgnoreCase)) + { + await SetAssFont(outputPath).ConfigureAwait(false); + } } /// -- cgit v1.2.3