diff options
| author | Luke <luke.pulverenti@gmail.com> | 2017-05-17 14:19:13 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-05-17 14:19:13 -0400 |
| commit | 53ca77ed3136ef0e42486f74b3c8b58a66e4ac5c (patch) | |
| tree | 6509b8adf32de2be823ff55de538ce9df0c4b0e7 /MediaBrowser.Controller | |
| parent | 3d44783da9c01580aa4bde8a7a83215a3467e10f (diff) | |
| parent | 9695430d9d37c27ed0385b5ad29ab9888d712f39 (diff) | |
Merge pull request #2644 from MediaBrowser/dev
Dev
Diffstat (limited to 'MediaBrowser.Controller')
4 files changed, 26 insertions, 4 deletions
diff --git a/MediaBrowser.Controller/Drawing/IImageEncoder.cs b/MediaBrowser.Controller/Drawing/IImageEncoder.cs index 64d997dba..9b895587f 100644 --- a/MediaBrowser.Controller/Drawing/IImageEncoder.cs +++ b/MediaBrowser.Controller/Drawing/IImageEncoder.cs @@ -19,7 +19,7 @@ namespace MediaBrowser.Controller.Drawing /// <summary> /// Encodes the image. /// </summary> - void EncodeImage(string inputPath, ImageSize? originalImageSize, string outputPath, bool autoOrient, int quality, ImageProcessingOptions options, ImageFormat outputFormat); + string EncodeImage(string inputPath, DateTime dateModified, string outputPath, bool autoOrient, int quality, ImageProcessingOptions options, ImageFormat outputFormat); /// <summary> /// Creates the image collage. diff --git a/MediaBrowser.Controller/Drawing/IImageProcessor.cs b/MediaBrowser.Controller/Drawing/IImageProcessor.cs index a107c1232..7d84719ab 100644 --- a/MediaBrowser.Controller/Drawing/IImageProcessor.cs +++ b/MediaBrowser.Controller/Drawing/IImageProcessor.cs @@ -114,5 +114,7 @@ namespace MediaBrowser.Controller.Drawing bool SupportsImageCollageCreation { get; } IImageEncoder ImageEncoder { get; set; } + + void SaveImageSize(string path, DateTime imageDateModified, ImageSize size); } } diff --git a/MediaBrowser.Controller/Drawing/ImageHelper.cs b/MediaBrowser.Controller/Drawing/ImageHelper.cs index 30c4e90fb..54f2ff987 100644 --- a/MediaBrowser.Controller/Drawing/ImageHelper.cs +++ b/MediaBrowser.Controller/Drawing/ImageHelper.cs @@ -1,4 +1,5 @@ -using MediaBrowser.Controller.Entities; +using System; +using MediaBrowser.Controller.Entities; using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Entities; @@ -18,6 +19,13 @@ namespace MediaBrowser.Controller.Drawing return GetSizeEstimate(options); } + public static IImageProcessor ImageProcessor { get; set; } + + public static void SaveImageSize(string path, DateTime dateModified, ImageSize size) + { + ImageProcessor.SaveImageSize(path, dateModified, size); + } + private static ImageSize GetSizeEstimate(ImageProcessingOptions options) { if (options.Width.HasValue && options.Height.HasValue) diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 29d37f99b..67ba633b7 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -968,7 +968,7 @@ namespace MediaBrowser.Controller.MediaEncoding { if (bitrate.HasValue && videoStream.BitRate.HasValue) { - bitrate = Math.Min(bitrate.Value, videoStream.BitRate.Value); + bitrate = GetMinBitrate(bitrate.Value, videoStream.BitRate.Value); } } } @@ -981,13 +981,25 @@ namespace MediaBrowser.Controller.MediaEncoding // If a max bitrate was requested, don't let the scaled bitrate exceed it if (request.VideoBitRate.HasValue) { - bitrate = Math.Min(bitrate.Value, request.VideoBitRate.Value); + bitrate = GetMinBitrate(bitrate.Value, request.VideoBitRate.Value); } } return bitrate; } + private int GetMinBitrate(int sourceBitrate, int requestedBitrate) + { + if (sourceBitrate <= 2000000) + { + sourceBitrate *= 2; + } + + var bitrate = Math.Min(sourceBitrate, requestedBitrate); + + return bitrate; + } + public int? GetAudioBitrateParam(BaseEncodingJobOptions request, MediaStream audioStream) { if (request.AudioBitRate.HasValue) |
