From 808cd6f06a01afa5e4899c6d020e9b72a632aa2e Mon Sep 17 00:00:00 2001 From: gnattu Date: Mon, 12 Aug 2024 09:26:51 +0800 Subject: [PATCH 1/3] Fix software decoder with videotoolbox encoder Format should be placed before hwupload to support some software decoders Signed-off-by: gnattu --- MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index bfeabebde8..c611f70a9c 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -5279,8 +5279,8 @@ namespace MediaBrowser.Controller.MediaEncoding { // INPUT videotoolbox/memory surface(vram/uma) // this will pass-through automatically if in/out format matches. - mainFilters.Insert(0, "format=nv12|p010le|videotoolbox_vld"); mainFilters.Insert(0, "hwupload"); + mainFilters.Insert(0, "format=nv12|p010le|videotoolbox_vld"); } return (mainFilters, subFilters, overlayFilters); From 487dbf3e852b3cf3f5abe41dfea8ec39195f4b92 Mon Sep 17 00:00:00 2001 From: gnattu Date: Mon, 12 Aug 2024 09:28:17 +0800 Subject: [PATCH 2/3] Fix Videotoolbox Hi10P hardware decoding We need to mark h264 as 10bit supported for videotoolbox Signed-off-by: gnattu --- MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index c611f70a9c..772dc69b0c 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -6307,6 +6307,12 @@ namespace MediaBrowser.Controller.MediaEncoding if (is8_10bitSwFormatsVt) { + if (string.Equals("avc", videoStream.Codec, StringComparison.OrdinalIgnoreCase) + || string.Equals("h264", videoStream.Codec, StringComparison.OrdinalIgnoreCase)) + { + return GetHwaccelType(state, options, "h264", bitDepth, useHwSurface); + } + if (string.Equals("hevc", videoStream.Codec, StringComparison.OrdinalIgnoreCase) || string.Equals("h265", videoStream.Codec, StringComparison.OrdinalIgnoreCase)) { From 7d9e315593acdf56ac3cbb40fafb1bcbcbf0ab2d Mon Sep 17 00:00:00 2001 From: gnattu Date: Mon, 12 Aug 2024 19:33:03 +0800 Subject: [PATCH 3/3] Remove duplicated check Signed-off-by: gnattu --- MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs index 772dc69b0c..3bf480ce3e 100644 --- a/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs +++ b/MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs @@ -6293,12 +6293,6 @@ namespace MediaBrowser.Controller.MediaEncoding if (is8bitSwFormatsVt) { - if (string.Equals("avc", videoStream.Codec, StringComparison.OrdinalIgnoreCase) - || string.Equals("h264", videoStream.Codec, StringComparison.OrdinalIgnoreCase)) - { - return GetHwaccelType(state, options, "h264", bitDepth, useHwSurface); - } - if (string.Equals("vp8", videoStream.Codec, StringComparison.OrdinalIgnoreCase)) { return GetHwaccelType(state, options, "vp8", bitDepth, useHwSurface);