aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller/MediaEncoding
diff options
context:
space:
mode:
authornyanmisaka <nst799610810@gmail.com>2025-12-28 07:22:32 -0500
committerBond_009 <bond.009@outlook.com>2025-12-28 07:22:32 -0500
commitb429306f05820d8502939d305f147df37c25fba0 (patch)
treea4ea5dd8082b1cc19f8c1ba6f0aa3c5d8bd9e9d7 /MediaBrowser.Controller/MediaEncoding
parent88acd51ee2b6a30a8a92a9e863fd4aaef48ee590 (diff)
Backport pull request #15819 from jellyfin/release-10.11.z
Fix the use of HWA in unsupported H.264 Hi422P/Hi444PP Original-merge: 4c587776d6263698bd0e00b56c06f14d46c4c2ec Merged-by: crobibero <cody@robibe.ro> Backported-by: Bond_009 <bond.009@outlook.com>
Diffstat (limited to 'MediaBrowser.Controller/MediaEncoding')
-rw-r--r--MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs15
1 files changed, 15 insertions, 0 deletions
diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
index e088cd358..91d88dc08 100644
--- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
+++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs
@@ -6359,6 +6359,21 @@ namespace MediaBrowser.Controller.MediaEncoding
}
}
+ // Block unsupported H.264 Hi422P and Hi444PP profiles, which can be encoded with 4:2:0 pixel format
+ if (string.Equals(videoStream.Codec, "h264", StringComparison.OrdinalIgnoreCase))
+ {
+ if (videoStream.Profile.Contains("4:2:2", StringComparison.OrdinalIgnoreCase)
+ || videoStream.Profile.Contains("4:4:4", StringComparison.OrdinalIgnoreCase))
+ {
+ // VideoToolbox on Apple Silicon has H.264 Hi444PP and theoretically also has Hi422P
+ if (!(hardwareAccelerationType == HardwareAccelerationType.videotoolbox
+ && RuntimeInformation.OSArchitecture.Equals(Architecture.Arm64)))
+ {
+ return null;
+ }
+ }
+ }
+
var decoder = hardwareAccelerationType switch
{
HardwareAccelerationType.vaapi => GetVaapiVidDecoder(state, options, videoStream, bitDepth),