aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Dlna/StreamInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model/Dlna/StreamInfo.cs')
-rw-r--r--MediaBrowser.Model/Dlna/StreamInfo.cs67
1 files changed, 66 insertions, 1 deletions
diff --git a/MediaBrowser.Model/Dlna/StreamInfo.cs b/MediaBrowser.Model/Dlna/StreamInfo.cs
index a0cfe037b..c5589322d 100644
--- a/MediaBrowser.Model/Dlna/StreamInfo.cs
+++ b/MediaBrowser.Model/Dlna/StreamInfo.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Model.Dto;
+using MediaBrowser.Model.Drawing;
+using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Entities;
using System;
using System.Collections.Generic;
@@ -56,6 +57,8 @@ namespace MediaBrowser.Model.Dlna
public MediaSourceInfo MediaSource { get; set; }
+ public TransportStreamTimestamp TargetTimestamp { get; set; }
+
public string MediaSourceId
{
get
@@ -252,6 +255,68 @@ namespace MediaBrowser.Model.Dlna
: stream == null ? null : stream.Channels;
}
}
+
+ public int? TotalOutputBitrate
+ {
+ get
+ {
+ return (TargetAudioBitrate ?? 0) + (VideoBitrate ?? 0);
+ }
+ }
+
+ public int? TargetWidth
+ {
+ get
+ {
+ var videoStream = TargetVideoStream;
+
+ if (videoStream != null && videoStream.Width.HasValue && videoStream.Height.HasValue)
+ {
+ var size = new ImageSize
+ {
+ Width = videoStream.Width.Value,
+ Height = videoStream.Height.Value
+ };
+
+ var newSize = DrawingUtils.Resize(size,
+ null,
+ null,
+ MaxWidth,
+ MaxHeight);
+
+ return Convert.ToInt32(newSize.Width);
+ }
+
+ return MaxWidth;
+ }
+ }
+
+ public int? TargetHeight
+ {
+ get
+ {
+ var videoStream = TargetVideoStream;
+
+ if (videoStream != null && videoStream.Width.HasValue && videoStream.Height.HasValue)
+ {
+ var size = new ImageSize
+ {
+ Width = videoStream.Width.Value,
+ Height = videoStream.Height.Value
+ };
+
+ var newSize = DrawingUtils.Resize(size,
+ null,
+ null,
+ MaxWidth,
+ MaxHeight);
+
+ return Convert.ToInt32(newSize.Height);
+ }
+
+ return MaxHeight;
+ }
+ }
}
/// <summary>