aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Playback/BaseStreamingService.cs
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2017-01-29 18:57:01 -0500
committerGitHub <noreply@github.com>2017-01-29 18:57:01 -0500
commit3c33e1bb4b7ec59ee17c48f637853b9705c6aa7e (patch)
tree566b1bec181f44826bf7a746459060df5d619cf9 /MediaBrowser.Api/Playback/BaseStreamingService.cs
parentc1b366e48c2aaa5b2c18dad01d58b19d07520fe7 (diff)
parentab026ab2dea7419074cb32ad660f937010db7dab (diff)
Merge pull request #2430 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Api/Playback/BaseStreamingService.cs')
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs16
1 files changed, 16 insertions, 0 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index c5ec78477..6a677abfc 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -223,6 +223,10 @@ namespace MediaBrowser.Api.Playback
{
args += " -map -0:s";
}
+ else if (state.SubtitleDeliveryMethod == SubtitleDeliveryMethod.Embed)
+ {
+ args += string.Format(" -map 0:{0}", state.SubtitleStream.Index);
+ }
else if (state.SubtitleStream.IsExternal && !state.SubtitleStream.IsTextSubtitleStream)
{
args += " -map 1:0 -sn";
@@ -1797,6 +1801,10 @@ namespace MediaBrowser.Api.Playback
videoRequest.RequireAvc = string.Equals("true", val, StringComparison.OrdinalIgnoreCase);
}
}
+ else if (i == 30)
+ {
+ request.SubtitleCodec = val;
+ }
}
}
@@ -1915,6 +1923,13 @@ namespace MediaBrowser.Api.Playback
?? state.SupportedAudioCodecs.FirstOrDefault();
}
+ if (!string.IsNullOrWhiteSpace(request.SubtitleCodec))
+ {
+ state.SupportedSubtitleCodecs = request.SubtitleCodec.Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).ToList();
+ state.Request.SubtitleCodec = state.SupportedSubtitleCodecs.FirstOrDefault(i => MediaEncoder.CanEncodeToSubtitleCodec(i))
+ ?? state.SupportedSubtitleCodecs.FirstOrDefault();
+ }
+
var item = LibraryManager.GetItemById(request.Id);
state.IsInputVideo = string.Equals(item.MediaType, MediaType.Video, StringComparison.OrdinalIgnoreCase);
@@ -2109,6 +2124,7 @@ namespace MediaBrowser.Api.Playback
state.VideoStream = GetMediaStream(mediaStreams, videoRequest.VideoStreamIndex, MediaStreamType.Video);
state.SubtitleStream = GetMediaStream(mediaStreams, videoRequest.SubtitleStreamIndex, MediaStreamType.Subtitle, false);
+ state.SubtitleDeliveryMethod = videoRequest.SubtitleMethod;
state.AudioStream = GetMediaStream(mediaStreams, videoRequest.AudioStreamIndex, MediaStreamType.Audio);
if (state.SubtitleStream != null && !state.SubtitleStream.IsExternal)