Selaa lähdekoodia

Merge branch 'jellyfin:master' into fix-unittests

Shane Powell 4 päivää sitten
vanhempi
sitoutus
4a4ed1b5d5

+ 6 - 1
Emby.Server.Implementations/Localization/Core/lzh.json

@@ -2,5 +2,10 @@
     "Albums": "辑册",
     "Artists": "艺人",
     "AuthenticationSucceededWithUserName": "{0} 授之权矣",
-    "Books": "册"
+    "Books": "册",
+    "Genres": "类",
+    "HeaderAlbumArtists": "辑者",
+    "Favorites": "至爱",
+    "Folders": "箧",
+    "HeaderContinueWatching": "接目未竟"
 }

+ 11 - 3
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -5940,7 +5940,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                         // Use NV15 instead of P010 to avoid the issue.
                         // SDR inputs are using BGRA formats already which is not affected.
                         var intermediateFormat = string.Equals(outFormat, "p010", StringComparison.OrdinalIgnoreCase) ? "nv15" : outFormat;
-                        var hwScaleFilterFirstPass = $"scale_rkrga=w=iw/7.9:h=ih/7.9:format={intermediateFormat}:force_divisible_by=4:afbc=1";
+                        var hwScaleFilterFirstPass = $"scale_rkrga=w=iw/7.9:h=ih/7.9:format={intermediateFormat}:force_original_aspect_ratio=increase:force_divisible_by=4:afbc=1";
                         mainFilters.Add(hwScaleFilterFirstPass);
                     }
 
@@ -6018,9 +6018,10 @@ namespace MediaBrowser.Controller.MediaEncoding
             {
                 if (hasSubs)
                 {
+                    var subMaxH = 1080;
                     if (hasGraphicalSubs)
                     {
-                        var subPreProcFilters = GetGraphicalSubPreProcessFilters(swpInW, swpInH, subW, subH, reqW, reqH, reqMaxW, reqMaxH);
+                        var subPreProcFilters = GetGraphicalSubPreProcessFilters(swpInW, swpInH, subW, subH, reqW, reqH, reqMaxW, subMaxH);
                         subFilters.Add(subPreProcFilters);
                         subFilters.Add("format=bgra");
                     }
@@ -6030,7 +6031,7 @@ namespace MediaBrowser.Controller.MediaEncoding
                         var subFramerate = hasAssSubs ? Math.Min(framerate ?? 25, 60) : 10;
 
                         // alphasrc=s=1280x720:r=10:start=0,format=bgra,subtitles,hwupload
-                        var alphaSrcFilter = GetAlphaSrcFilter(state, swpInW, swpInH, reqW, reqH, reqMaxW, reqMaxH, subFramerate);
+                        var alphaSrcFilter = GetAlphaSrcFilter(state, swpInW, swpInH, reqW, reqH, reqMaxW, subMaxH, subFramerate);
                         var subTextSubtitlesFilter = GetTextSubtitlesFilter(state, true, true);
                         subFilters.Add(alphaSrcFilter);
                         subFilters.Add("format=bgra");
@@ -6039,6 +6040,13 @@ namespace MediaBrowser.Controller.MediaEncoding
 
                     subFilters.Add("hwupload=derive_device=rkmpp");
 
+                    // offload 1080p+ subtitles swscale upscaling from CPU to RGA
+                    var (overlayW, overlayH) = GetFixedOutputSize(swpInW, swpInH, reqW, reqH, reqMaxW, reqMaxH);
+                    if (overlayW.HasValue && overlayH.HasValue && overlayH.Value > subMaxH)
+                    {
+                        subFilters.Add($"vpp_rkrga=w={overlayW.Value}:h={overlayH.Value}:format=bgra:afbc=1");
+                    }
+
                     // try enabling AFBC to save DDR bandwidth
                     var hwOverlayFilter = "overlay_rkrga=eof_action=pass:repeatlast=0:format=nv12";
                     if (isEncoderSupportAfbc)

+ 1 - 1
MediaBrowser.Model/Extensions/EnumerableExtensions.cs

@@ -50,7 +50,7 @@ namespace MediaBrowser.Model.Extensions
 
                     return 0;
                 })
-                .ThenByDescending(i => i.CommunityRating ?? 0)
+                .ThenByDescending(i => Math.Round(i.CommunityRating ?? 0, 1) )
                 .ThenByDescending(i => i.VoteCount ?? 0);
         }
     }