Browse Source

adjust segment length for safari

Luke Pulverenti 9 years ago
parent
commit
771db85d09

+ 7 - 0
MediaBrowser.Api/Playback/BaseStreamingService.cs

@@ -1562,6 +1562,13 @@ namespace MediaBrowser.Api.Playback
                 RequestedUrl = url
             };
 
+            if ((Request.UserAgent ?? string.Empty).IndexOf("iphone", StringComparison.OrdinalIgnoreCase) != -1 ||
+                (Request.UserAgent ?? string.Empty).IndexOf("ipad", StringComparison.OrdinalIgnoreCase) != -1 ||
+                (Request.UserAgent ?? string.Empty).IndexOf("ipod", StringComparison.OrdinalIgnoreCase) != -1)
+            {
+                state.SegmentLength = 6;
+            }
+
             if (!string.IsNullOrWhiteSpace(request.AudioCodec))
             {
                 state.SupportedAudioCodecs = request.AudioCodec.Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).ToList();

+ 2 - 1
MediaBrowser.Api/Playback/Hls/BaseHlsService.cs

@@ -111,7 +111,8 @@ namespace MediaBrowser.Api.Playback.Hls
                             throw;
                         }
 
-                        await WaitForMinimumSegmentCount(playlist, 3, cancellationTokenSource.Token).ConfigureAwait(false);
+                        var waitForSegments = state.SegmentLength >= 10 ? 2 : 3;
+                        await WaitForMinimumSegmentCount(playlist, waitForSegments, cancellationTokenSource.Token).ConfigureAwait(false);
                     }
                 }
                 finally