Fix the use of HWA in unsupported H.264 Hi422P/Hi444PP (#15819)

This commit is contained in:
Nyanmisaka
2025-12-20 10:58:56 +08:00
committed by GitHub
parent 8379b4634a
commit 4c587776d6

View File

@@ -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 var decoder = hardwareAccelerationType switch
{ {
HardwareAccelerationType.vaapi => GetVaapiVidDecoder(state, options, videoStream, bitDepth), HardwareAccelerationType.vaapi => GetVaapiVidDecoder(state, options, videoStream, bitDepth),