aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2016-06-06 13:33:55 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2016-06-06 13:33:55 -0400
commitfaefbf36cc761f6b488f9ad3dfdd3ebdf7022c8a (patch)
tree406ceecfda1d2ce92d12c87b2d11168c00f55a90 /MediaBrowser.Model/Dlna/ResolutionNormalizer.cs
parent3e066ab9f5e0d21637ce2fb3779eb9d9438578b1 (diff)
adjust bitrate in h264/h265 conversions
Diffstat (limited to 'MediaBrowser.Model/Dlna/ResolutionNormalizer.cs')
-rw-r--r--MediaBrowser.Model/Dlna/ResolutionNormalizer.cs20
1 files changed, 20 insertions, 0 deletions
diff --git a/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs b/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs
index 8a412ac2c..ed18fed65 100644
--- a/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs
+++ b/MediaBrowser.Model/Dlna/ResolutionNormalizer.cs
@@ -56,5 +56,25 @@ namespace MediaBrowser.Model.Dlna
MaxHeight = maxHeight
};
}
+
+ private static double GetVideoBitrateScaleFactor(string codec)
+ {
+ if (string.Equals(codec, "h265", StringComparison.OrdinalIgnoreCase) ||
+ string.Equals(codec, "hevc", StringComparison.OrdinalIgnoreCase))
+ {
+ return .5;
+ }
+ return 1;
+ }
+
+ public static int ScaleBitrate(int bitrate, string inputVideoCodec, string outputVideoCodec)
+ {
+ var inputScaleFactor = GetVideoBitrateScaleFactor(inputVideoCodec);
+ var outputScaleFactor = GetVideoBitrateScaleFactor(outputVideoCodec);
+ var scaleFactor = outputScaleFactor/inputScaleFactor;
+ var newBitrate = scaleFactor*bitrate;
+
+ return Convert.ToInt32(newBitrate);
+ }
}
}