From 19a01ccdf3ceeeda87fbc628bd8e051577ecebb9 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Wed, 10 Feb 2021 01:24:51 -0500 Subject: Merge pull request #5107 from jellyfin/enhanced-nvdec-vpp-tonemap (cherry picked from commit bd8c269ea2769a9684c7755633417e1e78d84a57) Signed-off-by: Joshua M. Boniface --- .../Encoder/EncoderValidator.cs | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs') diff --git a/MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs b/MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs index 92f16ab95..9e2417603 100644 --- a/MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs +++ b/MediaBrowser.MediaEncoding/Encoder/EncoderValidator.cs @@ -296,6 +296,38 @@ namespace MediaBrowser.MediaEncoding.Encoder return found; } + public bool CheckFilter(string filter, string option) + { + if (string.IsNullOrEmpty(filter)) + { + return false; + } + + string output = null; + try + { + output = GetProcessOutput(_encoderPath, "-h filter=" + filter); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error detecting the given filter"); + } + + if (output.Contains("Filter " + filter, StringComparison.Ordinal)) + { + if (string.IsNullOrEmpty(option)) + { + return true; + } + + return output.Contains(option, StringComparison.Ordinal); + } + + _logger.LogWarning("Filter: {Name} with option {Option} is not available", filter, option); + + return false; + } + private IEnumerable GetCodecs(Codec codec) { string codecstr = codec == Codec.Encoder ? "encoders" : "decoders"; -- cgit v1.2.3