aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-03-02 13:48:21 -0500
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-03-02 13:48:21 -0500
commitf3159f3feff6a0ef11edb50cfc456f8c43d26d79 (patch)
tree95811078e4cfc923be336e15ca1fa9afe9352449 /MediaBrowser.Model
parent0d8636d859cef5d0be4a723402926f05499210d7 (diff)
update ProcessManager
Diffstat (limited to 'MediaBrowser.Model')
-rw-r--r--MediaBrowser.Model/Dlna/PlaybackErrorCode.cs9
-rw-r--r--MediaBrowser.Model/Dlna/PlaybackException.cs9
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs31
-rw-r--r--MediaBrowser.Model/Dto/MediaSourceInfo.cs2
-rw-r--r--MediaBrowser.Model/MediaBrowser.Model.csproj2
5 files changed, 50 insertions, 3 deletions
diff --git a/MediaBrowser.Model/Dlna/PlaybackErrorCode.cs b/MediaBrowser.Model/Dlna/PlaybackErrorCode.cs
new file mode 100644
index 000000000..d8d65e91a
--- /dev/null
+++ b/MediaBrowser.Model/Dlna/PlaybackErrorCode.cs
@@ -0,0 +1,9 @@
+
+namespace MediaBrowser.Model.Dlna
+{
+ public enum PlaybackErrorCode
+ {
+ NotAllowed = 0,
+ NoCompatibleStream = 1
+ }
+}
diff --git a/MediaBrowser.Model/Dlna/PlaybackException.cs b/MediaBrowser.Model/Dlna/PlaybackException.cs
new file mode 100644
index 000000000..761fa1c90
--- /dev/null
+++ b/MediaBrowser.Model/Dlna/PlaybackException.cs
@@ -0,0 +1,9 @@
+using System;
+
+namespace MediaBrowser.Model.Dlna
+{
+ public class PlaybackException : Exception
+ {
+ public PlaybackErrorCode ErrorCode { get; set;}
+ }
+}
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs
index a40e4feb3..559a543f2 100644
--- a/MediaBrowser.Model/Dlna/StreamBuilder.cs
+++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs
@@ -31,7 +31,13 @@ namespace MediaBrowser.Model.Dlna
List<StreamInfo> streams = new List<StreamInfo>();
foreach (MediaSourceInfo i in mediaSources)
- streams.Add(BuildAudioItem(i, options));
+ {
+ StreamInfo streamInfo = BuildAudioItem(i, options);
+ if (streamInfo != null)
+ {
+ streams.Add(streamInfo);
+ }
+ }
foreach (StreamInfo stream in streams)
{
@@ -63,7 +69,13 @@ namespace MediaBrowser.Model.Dlna
List<StreamInfo> streams = new List<StreamInfo>();
foreach (MediaSourceInfo i in mediaSources)
- streams.Add(BuildVideoItem(i, options));
+ {
+ StreamInfo streamInfo = BuildVideoItem(i, options);
+ if (streamInfo != null)
+ {
+ streams.Add(streamInfo);
+ }
+ }
foreach (StreamInfo stream in streams)
{
@@ -97,7 +109,10 @@ namespace MediaBrowser.Model.Dlna
{
return stream;
}
- return null;
+
+ PlaybackException error = new PlaybackException();
+ error.ErrorCode = PlaybackErrorCode.NoCompatibleStream;
+ throw error;
}
private StreamInfo BuildAudioItem(MediaSourceInfo item, AudioOptions options)
@@ -186,6 +201,11 @@ namespace MediaBrowser.Model.Dlna
if (transcodingProfile != null)
{
+ if (!item.SupportsTranscoding)
+ {
+ return null;
+ }
+
playlistItem.PlayMethod = PlayMethod.Transcode;
playlistItem.TranscodeSeekInfo = transcodingProfile.TranscodeSeekInfo;
playlistItem.EstimateContentLength = transcodingProfile.EstimateContentLength;
@@ -290,6 +310,11 @@ namespace MediaBrowser.Model.Dlna
if (transcodingProfile != null)
{
+ if (!item.SupportsTranscoding)
+ {
+ return null;
+ }
+
if (subtitleStream != null)
{
SubtitleProfile subtitleProfile = GetSubtitleProfile(subtitleStream, options.Profile, options.Context);
diff --git a/MediaBrowser.Model/Dto/MediaSourceInfo.cs b/MediaBrowser.Model/Dto/MediaSourceInfo.cs
index 068443238..cdc97b7ea 100644
--- a/MediaBrowser.Model/Dto/MediaSourceInfo.cs
+++ b/MediaBrowser.Model/Dto/MediaSourceInfo.cs
@@ -22,6 +22,7 @@ namespace MediaBrowser.Model.Dto
public long? RunTimeTicks { get; set; }
public bool ReadAtNativeFramerate { get; set; }
+ public bool SupportsTranscoding { get; set; }
public VideoType? VideoType { get; set; }
@@ -45,6 +46,7 @@ namespace MediaBrowser.Model.Dto
MediaStreams = new List<MediaStream>();
RequiredHttpHeaders = new Dictionary<string, string>();
PlayableStreamFileNames = new List<string>();
+ SupportsTranscoding = true;
}
public int? DefaultAudioStreamIndex { get; set; }
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index 9fd632cbd..27b5a53db 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -125,6 +125,8 @@
<Compile Include="Devices\DeviceInfo.cs" />
<Compile Include="Devices\DevicesOptions.cs" />
<Compile Include="Dlna\EncodingContext.cs" />
+ <Compile Include="Dlna\PlaybackErrorCode.cs" />
+ <Compile Include="Dlna\PlaybackException.cs" />
<Compile Include="Dlna\Profiles\DefaultProfile.cs" />
<Compile Include="Dlna\ResolutionConfiguration.cs" />
<Compile Include="Dlna\ResolutionNormalizer.cs" />