diff options
Diffstat (limited to 'MediaBrowser.Model/Dlna/ResolutionNormalizer.cs')
| -rw-r--r-- | MediaBrowser.Model/Dlna/ResolutionNormalizer.cs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs b/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs new file mode 100644 index 000000000..b23c0b20b --- /dev/null +++ b/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; + +namespace MediaBrowser.Model.Dlna +{ + public class ResolutionNormalizer + { + private static readonly List<ResolutionConfiguration> Configurations = + new List<ResolutionConfiguration> + { + new ResolutionConfiguration(426, 320000), + new ResolutionConfiguration(640, 400000), + new ResolutionConfiguration(720, 950000), + new ResolutionConfiguration(1280, 2500000) + }; + + public static ResolutionOptions Normalize(int maxBitrate, + string codec, + int? maxWidth, + int? maxHeight) + { + foreach (var config in Configurations) + { + if (maxBitrate <= config.MaxBitrate) + { + var originvalValue = maxWidth; + + maxWidth = Math.Min(config.MaxWidth, maxWidth ?? config.MaxWidth); + if (!originvalValue.HasValue || originvalValue.Value != maxWidth.Value) + { + maxHeight = null; + } + + break; + } + } + + return new ResolutionOptions + { + MaxWidth = maxWidth, + MaxHeight = maxHeight + }; + } + } +} |
