aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2015-04-20 14:42:56 -0400
committerLuke <luke.pulverenti@gmail.com>2015-04-20 14:42:56 -0400
commit7b67ec6854e8c725f099dd43d0d3dca8a8b7e592 (patch)
treeee587dcb1209dad06aa98e506da20db11c80e826 /MediaBrowser.Model
parentde0b244ab2888caffe7b76301dce44e7143a7daf (diff)
parent4a864e0e68443035e0b4f81cc9f6c6afed969bec (diff)
Merge pull request #1087 from MediaBrowser/dev
3.0.5588.0
Diffstat (limited to 'MediaBrowser.Model')
-rw-r--r--MediaBrowser.Model/ApiClient/ServerCredentials.cs15
-rw-r--r--MediaBrowser.Model/Configuration/ServerConfiguration.cs2
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs21
-rw-r--r--MediaBrowser.Model/Dto/ItemLayout.cs72
-rw-r--r--MediaBrowser.Model/LiveTv/LiveTvTunerInfoDto.cs6
-rw-r--r--MediaBrowser.Model/MediaBrowser.Model.csproj1
6 files changed, 102 insertions, 15 deletions
diff --git a/MediaBrowser.Model/ApiClient/ServerCredentials.cs b/MediaBrowser.Model/ApiClient/ServerCredentials.cs
index 6ba2a80c87..b5a1a7b499 100644
--- a/MediaBrowser.Model/ApiClient/ServerCredentials.cs
+++ b/MediaBrowser.Model/ApiClient/ServerCredentials.cs
@@ -98,7 +98,7 @@ namespace MediaBrowser.Model.ApiClient
{
var index = 0;
- foreach (var server in servers)
+ foreach (ServerInfo server in servers)
{
if (StringHelper.EqualsIgnoreCase(id, server.Id))
{
@@ -110,5 +110,18 @@ namespace MediaBrowser.Model.ApiClient
return -1;
}
+
+ public ServerInfo GetServer(string id)
+ {
+ foreach (ServerInfo server in Servers)
+ {
+ if (StringHelper.EqualsIgnoreCase(id, server.Id))
+ {
+ return server;
+ }
+ }
+
+ return null;
+ }
}
}
diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
index 72f9174388..ac9bd6b08f 100644
--- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs
+++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
@@ -49,7 +49,7 @@ namespace MediaBrowser.Model.Configuration
/// </summary>
/// <value><c>true</c> if [enable user specific user views]; otherwise, <c>false</c>.</value>
public bool EnableUserSpecificUserViews { get; set; }
-
+
/// <summary>
/// Gets or sets the value pointing to the file system where the ssl certiifcate is located..
/// </summary>
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs
index 02f77899f6..30da8bb4c9 100644
--- a/MediaBrowser.Model/Dlna/StreamBuilder.cs
+++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs
@@ -277,7 +277,7 @@ namespace MediaBrowser.Model.Dlna
// The profile describes what the device supports
// If device requirements are satisfied then allow both direct stream and direct play
- if (IsAudioEligibleForDirectPlay(item, GetBitrateForDirectPlayCheck(item, options)))
+ if (item.SupportsDirectPlay && IsAudioEligibleForDirectPlay(item, GetBitrateForDirectPlayCheck(item, options)))
{
playMethods.Add(PlayMethod.DirectPlay);
}
@@ -456,10 +456,8 @@ namespace MediaBrowser.Model.Dlna
playlistItem.MaxAudioChannels = Math.Min(options.MaxAudioChannels.Value, currentValue);
}
- if (!playlistItem.AudioBitrate.HasValue)
- {
- playlistItem.AudioBitrate = GetAudioBitrate(playlistItem.TargetAudioChannels, playlistItem.TargetAudioCodec);
- }
+ int audioBitrate = GetAudioBitrate(playlistItem.TargetAudioChannels, playlistItem.TargetAudioCodec);
+ playlistItem.AudioBitrate = Math.Min(playlistItem.AudioBitrate ?? audioBitrate, audioBitrate);
int? maxBitrateSetting = options.GetMaxBitrate();
// Honor max rate
@@ -472,9 +470,9 @@ namespace MediaBrowser.Model.Dlna
videoBitrate -= playlistItem.AudioBitrate.Value;
}
+ // Make sure the video bitrate is lower than bitrate settings but at least 64k
int currentValue = playlistItem.VideoBitrate ?? videoBitrate;
-
- playlistItem.VideoBitrate = Math.Min(videoBitrate, currentValue);
+ playlistItem.VideoBitrate = Math.Max(Math.Min(videoBitrate, currentValue), 64000);
}
}
@@ -640,7 +638,7 @@ namespace MediaBrowser.Model.Dlna
}
}
- if (isEligibleForDirectPlay)
+ if (isEligibleForDirectPlay && mediaSource.SupportsDirectPlay)
{
if (mediaSource.Protocol == MediaProtocol.Http)
{
@@ -659,12 +657,9 @@ namespace MediaBrowser.Model.Dlna
}
}
- if (isEligibleForDirectStream)
+ if (isEligibleForDirectStream && mediaSource.SupportsDirectStream)
{
- if (mediaSource.SupportsDirectStream)
- {
- return PlayMethod.DirectStream;
- }
+ return PlayMethod.DirectStream;
}
return null;
diff --git a/MediaBrowser.Model/Dto/ItemLayout.cs b/MediaBrowser.Model/Dto/ItemLayout.cs
new file mode 100644
index 0000000000..c85818390d
--- /dev/null
+++ b/MediaBrowser.Model/Dto/ItemLayout.cs
@@ -0,0 +1,72 @@
+using System;
+using System.Collections.Generic;
+
+namespace MediaBrowser.Model.Dto
+{
+ public static class ItemLayout
+ {
+ public static double? GetDisplayAspectRatio(BaseItemDto item)
+ {
+ List<BaseItemDto> items = new List<BaseItemDto>();
+ items.Add(item);
+ return GetDisplayAspectRatio(items);
+ }
+
+ public static double? GetDisplayAspectRatio(List<BaseItemDto> items)
+ {
+ List<double> values = new List<double>();
+
+ foreach (BaseItemDto item in items)
+ {
+ if (item.PrimaryImageAspectRatio.HasValue)
+ {
+ values.Add(item.PrimaryImageAspectRatio.Value);
+ }
+ }
+
+ if (values.Count == 0)
+ {
+ return null;
+ }
+
+ values.Sort();
+
+ double halfDouble = values.Count;
+ halfDouble /= 2;
+ int half = Convert.ToInt32(Math.Floor(halfDouble));
+
+ double result;
+
+ if (values.Count % 2 > 0)
+ result = values[half];
+ else
+ result = (values[half - 1] + values[half]) / 2.0;
+
+ // If really close to 2:3 (poster image), just return 2:3
+ if (Math.Abs(0.66666666667 - result) <= .15)
+ {
+ return 0.66666666667;
+ }
+
+ // If really close to 16:9 (episode image), just return 16:9
+ if (Math.Abs(1.777777778 - result) <= .2)
+ {
+ return 1.777777778;
+ }
+
+ // If really close to 1 (square image), just return 1
+ if (Math.Abs(1 - result) <= .15)
+ {
+ return 1.0;
+ }
+
+ // If really close to 4:3 (poster image), just return 2:3
+ if (Math.Abs(1.33333333333 - result) <= .15)
+ {
+ return 1.33333333333;
+ }
+
+ return result;
+ }
+ }
+}
diff --git a/MediaBrowser.Model/LiveTv/LiveTvTunerInfoDto.cs b/MediaBrowser.Model/LiveTv/LiveTvTunerInfoDto.cs
index 28e8c158ae..fcb19427ba 100644
--- a/MediaBrowser.Model/LiveTv/LiveTvTunerInfoDto.cs
+++ b/MediaBrowser.Model/LiveTv/LiveTvTunerInfoDto.cs
@@ -23,6 +23,12 @@ namespace MediaBrowser.Model.LiveTv
public string Id { get; set; }
/// <summary>
+ /// Gets or sets the URL.
+ /// </summary>
+ /// <value>The URL.</value>
+ public string Url { get; set; }
+
+ /// <summary>
/// Gets or sets the status.
/// </summary>
/// <value>The status.</value>
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index eb36712c2f..af0cbb1665 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -139,6 +139,7 @@
<Compile Include="Drawing\ImageOrientation.cs" />
<Compile Include="Dto\IHasServerId.cs" />
<Compile Include="Dto\IHasSyncInfo.cs" />
+ <Compile Include="Dto\ItemLayout.cs" />
<Compile Include="Dto\MetadataEditorInfo.cs" />
<Compile Include="Dto\NameIdPair.cs" />
<Compile Include="Dto\NameValuePair.cs" />