aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-04-04 00:18:36 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-04-04 00:18:36 -0400
commit25125377e53ac1ff795dd43876ebc08afe04bfc5 (patch)
treecb656570c4f411091378ca7bb733cf13002b5aca
parentd9dcd21c47b95919745ec7b5058383357fd73d65 (diff)
update hls
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs7
-rw-r--r--MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs21
-rw-r--r--MediaBrowser.WebDashboard/Api/PackageCreator.cs2
3 files changed, 23 insertions, 7 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 108b59494..9e9bfd728 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -1677,7 +1677,7 @@ namespace MediaBrowser.Api.Playback
private void TryStreamCopy(StreamState state, VideoStreamRequest videoRequest)
{
- if (state.VideoStream != null && CanStreamCopyVideo(videoRequest, state.VideoStream))
+ if (state.VideoStream != null && CanStreamCopyVideo(state))
{
state.OutputVideoCodec = "copy";
}
@@ -1770,8 +1770,11 @@ namespace MediaBrowser.Api.Playback
state.MediaSource = mediaSource;
}
- protected virtual bool CanStreamCopyVideo(VideoStreamRequest request, MediaStream videoStream)
+ protected virtual bool CanStreamCopyVideo(StreamState state)
{
+ var request = state.VideoRequest;
+ var videoStream = state.VideoStream;
+
if (videoStream.IsInterlaced)
{
return false;
diff --git a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
index 3e46ee426..c7fe50941 100644
--- a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
@@ -500,13 +500,20 @@ namespace MediaBrowser.Api.Playback.Hls
return ResultFactory.GetResult(playlistText, MimeTypes.GetMimeType("playlist.m3u8"), new Dictionary<string, string>());
}
+ private bool IsLiveStream(StreamState state)
+ {
+ var isLiveStream = (state.RunTimeTicks ?? 0) == 0;
+
+ return isLiveStream;
+ }
+
private string GetMasterPlaylistFileText(StreamState state, int totalBitrate)
{
var builder = new StringBuilder();
builder.AppendLine("#EXTM3U");
- var isLiveStream = (state.RunTimeTicks ?? 0) == 0;
+ var isLiveStream = IsLiveStream(state);
var queryStringIndex = Request.RawUrl.IndexOf('?');
var queryString = queryStringIndex == -1 ? string.Empty : Request.RawUrl.Substring(queryStringIndex);
@@ -929,10 +936,16 @@ namespace MediaBrowser.Api.Playback.Hls
return isOutputVideo ? ".ts" : ".ts";
}
- protected override bool CanStreamCopyVideo(VideoStreamRequest request, MediaStream videoStream)
+ protected override bool CanStreamCopyVideo(StreamState state)
{
- return false;
- //return base.CanStreamCopyVideo(request, videoStream);
+ var isLiveStream = IsLiveStream(state);
+
+ if (!isLiveStream)
+ {
+ return false;
+ }
+
+ return base.CanStreamCopyVideo(state);
}
}
} \ No newline at end of file
diff --git a/MediaBrowser.WebDashboard/Api/PackageCreator.cs b/MediaBrowser.WebDashboard/Api/PackageCreator.cs
index 79e2d6102..01c2a4104 100644
--- a/MediaBrowser.WebDashboard/Api/PackageCreator.cs
+++ b/MediaBrowser.WebDashboard/Api/PackageCreator.cs
@@ -477,7 +477,7 @@ namespace MediaBrowser.WebDashboard.Api
var tags = files.Select(s =>
{
- if (s.IndexOf("require", StringComparison.OrdinalIgnoreCase) == -1)
+ if (s.IndexOf("require", StringComparison.OrdinalIgnoreCase) == -1 && s.IndexOf("alameda", StringComparison.OrdinalIgnoreCase) == -1)
{
return string.Format("<script src=\"{0}\" async></script>", s);
}