aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Dto/MediaSourceInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Model/Dto/MediaSourceInfo.cs')
-rw-r--r--MediaBrowser.Model/Dto/MediaSourceInfo.cs30
1 files changed, 28 insertions, 2 deletions
diff --git a/MediaBrowser.Model/Dto/MediaSourceInfo.cs b/MediaBrowser.Model/Dto/MediaSourceInfo.cs
index 4f93f476f..250cbeb10 100644
--- a/MediaBrowser.Model/Dto/MediaSourceInfo.cs
+++ b/MediaBrowser.Model/Dto/MediaSourceInfo.cs
@@ -1,8 +1,8 @@
-using System;
-using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Extensions;
using MediaBrowser.Model.MediaInfo;
using System.Collections.Generic;
+using System.Linq;
using MediaBrowser.Model.Serialization;
namespace MediaBrowser.Model.Dto
@@ -72,6 +72,32 @@ namespace MediaBrowser.Model.Dto
SupportsProbing = true;
}
+ public void InferTotalBitrate()
+ {
+ if (Bitrate.HasValue || MediaStreams == null)
+ {
+ return;
+ }
+
+ var internalStreams = MediaStreams
+ .Where(i => !i.IsExternal)
+ .ToList();
+
+ if (internalStreams.Count == 0)
+ {
+ return;
+ }
+
+ var bitrate = internalStreams
+ .Select(m => m.BitRate ?? 0)
+ .Sum();
+
+ if (bitrate > 0)
+ {
+ Bitrate = bitrate;
+ }
+ }
+
public int? DefaultAudioStreamIndex { get; set; }
public int? DefaultSubtitleStreamIndex { get; set; }