2
0
Эх сурвалжийг харах

changed ChapterImageResolution in model to enum type;
added 144p to the ImageResolution enum;
updated chapters limit comment inside FFProbeVideoInfo.cs;

Negulici-R. Barnabas 2 жил өмнө
parent
commit
7db1813cc8

+ 27 - 24
MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

@@ -609,6 +609,32 @@ namespace MediaBrowser.MediaEncoding.Encoder
             return await ExtractImageInternal(inputArgument, container, videoStream, imageStreamIndex, threedFormat, offset, false, targetFormat, cancellationToken).ConfigureAwait(false);
         }
 
+        private string GetImageResolutionParameter()
+        {
+            string imageResolutionParameter;
+
+            imageResolutionParameter = _serverConfig.Configuration.ChapterImageResolution switch
+            {
+                ImageResolution.P144 => "256x144",
+                ImageResolution.P240 => "426x240",
+                ImageResolution.P360 => "640x360",
+                ImageResolution.P480 => "854x480",
+                ImageResolution.P720 => "1280x720",
+                ImageResolution.P1080 => "1920x1080",
+                ImageResolution.P1440 => "2560x1440",
+                ImageResolution.P2160 => "3840x2160",
+                _ => string.Empty
+            };
+
+            if (!string.IsNullOrEmpty(imageResolutionParameter))
+            {
+                imageResolutionParameter = " -s " + imageResolutionParameter;
+            }
+
+            return imageResolutionParameter;
+        }
+
+
         private async Task<string> ExtractImageInternal(string inputPath, string container, MediaStream videoStream, int? imageStreamIndex, Video3DFormat? threedFormat, TimeSpan? offset, bool useIFrame, ImageFormat? targetFormat, CancellationToken cancellationToken)
         {
             if (string.IsNullOrEmpty(inputPath))
@@ -626,29 +652,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
                 _ => ".jpg"
             };
 
-            bool enumConversionStatus = Enum.TryParse(_serverConfig.Configuration.ChapterImageResolution, out ImageResolution resolution);
-            var outputResolution = string.Empty;
-
-            if (enumConversionStatus)
-            {
-                outputResolution = resolution switch
-                {
-                    ImageResolution.P240 => "426x240",
-                    ImageResolution.P360 => "640x360",
-                    ImageResolution.P480 => "854x480",
-                    ImageResolution.P720 => "1280x720",
-                    ImageResolution.P1080 => "1920x1080",
-                    ImageResolution.P1440 => "2560x1440",
-                    ImageResolution.P2160 => "3840x2160",
-                    _ => string.Empty
-                };
-
-                if (!string.IsNullOrEmpty(outputResolution))
-                {
-                    outputResolution = " -s " + outputResolution;
-                }
-            }
-
             var tempExtractPath = Path.Combine(_configurationManager.ApplicationPaths.TempDirectory, Guid.NewGuid() + outputExtension);
             Directory.CreateDirectory(Path.GetDirectoryName(tempExtractPath));
 
@@ -702,7 +705,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
 
             var vf = string.Join(',', filters);
             var mapArg = imageStreamIndex.HasValue ? (" -map 0:" + imageStreamIndex.Value.ToString(CultureInfo.InvariantCulture)) : string.Empty;
-            var args = string.Format(CultureInfo.InvariantCulture, "-i {0}{3} -threads {4} -v quiet -vframes 1 -vf {2}{5} -f image2 \"{1}\"", inputPath, tempExtractPath, vf, mapArg, _threads, outputResolution);
+            var args = string.Format(CultureInfo.InvariantCulture, "-i {0}{3} -threads {4} -v quiet -vframes 1 -vf {2}{5} -f image2 \"{1}\"", inputPath, tempExtractPath, vf, mapArg, _threads, GetImageResolutionParameter());
 
             if (offset.HasValue)
             {

+ 2 - 1
MediaBrowser.Model/Configuration/ServerConfiguration.cs

@@ -3,6 +3,7 @@
 
 using System;
 using System.Collections.Generic;
+using MediaBrowser.Model.Drawing;
 using MediaBrowser.Model.Dto;
 using MediaBrowser.Model.Updates;
 
@@ -257,6 +258,6 @@ namespace MediaBrowser.Model.Configuration
         /// Gets or sets the chapter image resolution.
         /// </summary>
         /// <value>The chapter image resolution.</value>
-        public string ChapterImageResolution { get; set; } = "Match Source";
+        public ImageResolution ChapterImageResolution { get; set; } = ImageResolution.MatchSource;
     }
 }

+ 10 - 0
MediaBrowser.Model/Drawing/ImageResolution.cs

@@ -5,6 +5,16 @@ namespace MediaBrowser.Model.Drawing
     /// </summary>
     public enum ImageResolution
     {
+        /// <summary>
+        /// MatchSource.
+        /// </summary>
+        MatchSource,
+
+        /// <summary>
+        /// 144p.
+        /// </summary>
+        P144,
+
         /// <summary>
         /// 240p.
         /// </summary>

+ 1 - 1
MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs

@@ -666,7 +666,7 @@ namespace MediaBrowser.Providers.MediaInfo
                 return Array.Empty<ChapterInfo>();
             }
 
-            // Limit to 100 chapters just in case there's some incorrect metadata here
+            // Limit the chapters just in case there's some incorrect metadata here
             int chapterCount = (int)Math.Min(runtime / dummyChapterDuration, _config.Configuration.DummyChapterCount);
             var chapters = new ChapterInfo[chapterCount];