|
@@ -101,7 +101,7 @@ namespace MediaBrowser.Api.Playback
|
|
|
|
|
|
SetDeviceSpecificData(item, result.MediaSource, profile, authInfo, request.MaxStreamingBitrate,
|
|
|
request.StartTimeTicks ?? 0, result.MediaSource.Id, request.AudioStreamIndex,
|
|
|
- request.SubtitleStreamIndex);
|
|
|
+ request.SubtitleStreamIndex, request.PlaySessionId);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -206,7 +206,7 @@ namespace MediaBrowser.Api.Playback
|
|
|
|
|
|
foreach (var mediaSource in result.MediaSources)
|
|
|
{
|
|
|
- SetDeviceSpecificData(item, mediaSource, profile, auth, maxBitrate, startTimeTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex);
|
|
|
+ SetDeviceSpecificData(item, mediaSource, profile, auth, maxBitrate, startTimeTicks, mediaSourceId, audioStreamIndex, subtitleStreamIndex, result.PlaySessionId);
|
|
|
}
|
|
|
|
|
|
SortMediaSources(result);
|
|
@@ -220,7 +220,8 @@ namespace MediaBrowser.Api.Playback
|
|
|
long startTimeTicks,
|
|
|
string mediaSourceId,
|
|
|
int? audioStreamIndex,
|
|
|
- int? subtitleStreamIndex)
|
|
|
+ int? subtitleStreamIndex,
|
|
|
+ string playSessionId)
|
|
|
{
|
|
|
var streamBuilder = new StreamBuilder();
|
|
|
|
|
@@ -294,6 +295,12 @@ namespace MediaBrowser.Api.Playback
|
|
|
streamBuilder.BuildAudioItem(options) :
|
|
|
streamBuilder.BuildVideoItem(options);
|
|
|
|
|
|
+ if (streamInfo != null)
|
|
|
+ {
|
|
|
+ streamInfo.PlaySessionId = playSessionId;
|
|
|
+ SetDeviceSpecificSubtitleInfo(streamInfo, mediaSource, baseUrl, auth.Token);
|
|
|
+ }
|
|
|
+
|
|
|
if (streamInfo != null && streamInfo.PlayMethod == PlayMethod.Transcode)
|
|
|
{
|
|
|
streamInfo.StartPositionTicks = startTimeTicks;
|
|
@@ -301,11 +308,6 @@ namespace MediaBrowser.Api.Playback
|
|
|
mediaSource.TranscodingContainer = streamInfo.Container;
|
|
|
mediaSource.TranscodingSubProtocol = streamInfo.SubProtocol;
|
|
|
}
|
|
|
-
|
|
|
- if (streamInfo != null)
|
|
|
- {
|
|
|
- SetDeviceSpecificSubtitleInfo(streamInfo, mediaSource, baseUrl, auth.Token);
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
|