aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs7
-rw-r--r--MediaBrowser.Model/Dto/MediaSourceInfo.cs2
-rw-r--r--MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs10
3 files changed, 17 insertions, 2 deletions
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs
index b0a3c03ea..6edbe00da 100644
--- a/MediaBrowser.Model/Dlna/StreamBuilder.cs
+++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs
@@ -275,7 +275,7 @@ namespace MediaBrowser.Model.Dlna
if (directPlayProfile != null)
{
// While options takes the network and other factors into account. Only applies to direct stream
- if (IsAudioEligibleForDirectPlay(item, options.GetMaxBitrate()))
+ if (item.SupportsDirectStream && IsAudioEligibleForDirectPlay(item, options.GetMaxBitrate()))
{
playMethods.Add(PlayMethod.DirectStream);
}
@@ -581,6 +581,11 @@ namespace MediaBrowser.Model.Dlna
return PlayMethod.DirectPlay;
}
}
+
+ if (!mediaSource.SupportsDirectStream)
+ {
+ return null;
+ }
return PlayMethod.DirectStream;
}
diff --git a/MediaBrowser.Model/Dto/MediaSourceInfo.cs b/MediaBrowser.Model/Dto/MediaSourceInfo.cs
index cdc97b7ea..3a9c1e7d4 100644
--- a/MediaBrowser.Model/Dto/MediaSourceInfo.cs
+++ b/MediaBrowser.Model/Dto/MediaSourceInfo.cs
@@ -23,6 +23,7 @@ namespace MediaBrowser.Model.Dto
public long? RunTimeTicks { get; set; }
public bool ReadAtNativeFramerate { get; set; }
public bool SupportsTranscoding { get; set; }
+ public bool SupportsDirectStream { get; set; }
public VideoType? VideoType { get; set; }
@@ -47,6 +48,7 @@ namespace MediaBrowser.Model.Dto
RequiredHttpHeaders = new Dictionary<string, string>();
PlayableStreamFileNames = new List<string>();
SupportsTranscoding = true;
+ SupportsDirectStream = true;
}
public int? DefaultAudioStreamIndex { get; set; }
diff --git a/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs b/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs
index 719c984bd..2880c9e16 100644
--- a/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs
+++ b/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Channels;
+using System.IO;
+using MediaBrowser.Controller.Channels;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.MediaEncoding;
@@ -11,6 +12,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using MediaBrowser.Model.MediaInfo;
namespace MediaBrowser.Server.Implementations.Library
{
@@ -160,6 +162,12 @@ namespace MediaBrowser.Server.Implementations.Library
foreach (var source in dynamicMediaSources)
{
source.SupportsTranscoding = false;
+
+ if (source.Protocol == MediaProtocol.File)
+ {
+ source.SupportsDirectStream = File.Exists(source.Path);
+ }
+
list.Add(source);
}