Pārlūkot izejas kodu

add missing PlaySessionId

Luke Pulverenti 10 gadi atpakaļ
vecāks
revīzija
42e2369150

+ 10 - 8
MediaBrowser.Api/Playback/MediaInfoService.cs

@@ -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);
-                }
             }
         }
 

+ 7 - 3
MediaBrowser.Model/Dlna/StreamInfo.cs

@@ -69,7 +69,7 @@ namespace MediaBrowser.Model.Dlna
         public SubtitleDeliveryMethod SubtitleDeliveryMethod { get; set; }
         public string SubtitleFormat { get; set; }
 
-        public PlaybackInfoResponse PlaybackInfo { get; set; }
+        public string PlaySessionId { get; set; }
 
         public string MediaSourceId
         {
@@ -207,8 +207,7 @@ namespace MediaBrowser.Model.Dlna
             list.Add(new NameValuePair("Profile", item.VideoProfile ?? string.Empty));
             list.Add(new NameValuePair("Cabac", item.Cabac.HasValue ? item.Cabac.Value.ToString() : string.Empty));
 
-            string playSessionId = item.PlaybackInfo == null ? null : item.PlaybackInfo.PlaySessionId;
-            list.Add(new NameValuePair("PlaySessionId", playSessionId ?? string.Empty));
+            list.Add(new NameValuePair("PlaySessionId", item.PlaySessionId ?? string.Empty));
             list.Add(new NameValuePair("api_key", accessToken ?? string.Empty));
 
             string liveStreamId = item.MediaSource == null ? null : item.MediaSource.LiveStreamId;
@@ -217,6 +216,11 @@ namespace MediaBrowser.Model.Dlna
             return list;
         }
 
+        public List<SubtitleStreamInfo> GetExternalSubtitles(bool includeSelectedTrackOnly, string baseUrl, string accessToken)
+        {
+            return GetExternalSubtitles(includeSelectedTrackOnly, false, baseUrl, accessToken);
+        }
+
         public List<SubtitleStreamInfo> GetExternalSubtitles(bool includeSelectedTrackOnly, bool enableAllProfiles, string baseUrl, string accessToken)
         {
             List<SubtitleStreamInfo> list = GetSubtitleProfiles(includeSelectedTrackOnly, enableAllProfiles, baseUrl, accessToken);

+ 2 - 1
MediaBrowser.Model/MediaInfo/LiveStreamRequest.cs

@@ -6,6 +6,7 @@ namespace MediaBrowser.Model.MediaInfo
     {
         public string OpenToken { get; set; }
         public string UserId { get; set; }
+        public string PlaySessionId { get; set; }
         public int? MaxStreamingBitrate { get; set; }
         public long? StartTimeTicks { get; set; }
         public int? AudioStreamIndex { get; set; }
@@ -15,7 +16,7 @@ namespace MediaBrowser.Model.MediaInfo
 
         public LiveStreamRequest()
         {
-            
+
         }
 
         public LiveStreamRequest(AudioOptions options)

+ 5 - 0
MediaBrowser.Model/Session/PlaybackProgressInfo.cs

@@ -83,5 +83,10 @@ namespace MediaBrowser.Model.Session
         /// </summary>
         /// <value>The live stream identifier.</value>
         public string LiveStreamId { get; set; }
+        /// <summary>
+        /// Gets or sets the play session identifier.
+        /// </summary>
+        /// <value>The play session identifier.</value>
+        public string PlaySessionId { get; set; }
     }
 }

+ 5 - 0
MediaBrowser.Model/Session/PlaybackStopInfo.cs

@@ -41,5 +41,10 @@ namespace MediaBrowser.Model.Session
         /// </summary>
         /// <value>The live stream identifier.</value>
         public string LiveStreamId { get; set; }
+        /// <summary>
+        /// Gets or sets the play session identifier.
+        /// </summary>
+        /// <value>The play session identifier.</value>
+        public string PlaySessionId { get; set; }
     }
 }