Debug CRT shader: add detailed logging to IsCrtShaderEnabled
Inject ILogger<EncodingHelper> and log all conditions individually so we can see exactly which check is failing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -26,6 +26,7 @@ using MediaBrowser.Model.Dto;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using MediaBrowser.Model.MediaInfo;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using IConfigurationManager = MediaBrowser.Common.Configuration.IConfigurationManager;
|
||||
|
||||
namespace MediaBrowser.Controller.MediaEncoding
|
||||
@@ -157,13 +158,16 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
"wavpack"
|
||||
];
|
||||
|
||||
private readonly ILogger<EncodingHelper> _logger;
|
||||
|
||||
public EncodingHelper(
|
||||
IApplicationPaths appPaths,
|
||||
IMediaEncoder mediaEncoder,
|
||||
ISubtitleEncoder subtitleEncoder,
|
||||
IConfiguration config,
|
||||
IConfigurationManager configurationManager,
|
||||
IPathManager pathManager)
|
||||
IPathManager pathManager,
|
||||
ILogger<EncodingHelper> logger)
|
||||
{
|
||||
_appPaths = appPaths;
|
||||
_mediaEncoder = mediaEncoder;
|
||||
@@ -171,6 +175,7 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
_config = config;
|
||||
_configurationManager = configurationManager;
|
||||
_pathManager = pathManager;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
private enum DynamicHdrMetadataRemovalPlan
|
||||
@@ -3714,12 +3719,19 @@ namespace MediaBrowser.Controller.MediaEncoding
|
||||
/// </summary>
|
||||
public bool IsCrtShaderEnabled(EncodingJobInfo state)
|
||||
{
|
||||
return state.BaseRequest.StreamOptions.TryGetValue("crtShader", out var val)
|
||||
&& string.Equals(val, "true", StringComparison.OrdinalIgnoreCase)
|
||||
&& File.Exists(Path.Combine(AppContext.BaseDirectory, "Resources", "Shaders", "crt_lottes.cl"))
|
||||
&& _mediaEncoder.SupportsHwaccel("opencl")
|
||||
&& _mediaEncoder.SupportsFilter("program_opencl")
|
||||
&& _mediaEncoder.SupportsFilter("scale_opencl");
|
||||
var hasOption = state.BaseRequest.StreamOptions.TryGetValue("crtShader", out var val);
|
||||
var optionTrue = hasOption && string.Equals(val, "true", StringComparison.OrdinalIgnoreCase);
|
||||
var shaderPath = Path.Combine(AppContext.BaseDirectory, "Resources", "Shaders", "crt_lottes.cl");
|
||||
var fileExists = File.Exists(shaderPath);
|
||||
var hasOcl = _mediaEncoder.SupportsHwaccel("opencl");
|
||||
var hasProgramOcl = _mediaEncoder.SupportsFilter("program_opencl");
|
||||
var hasScaleOcl = _mediaEncoder.SupportsFilter("scale_opencl");
|
||||
|
||||
_logger.LogInformation(
|
||||
"CRT shader check: hasOption={HasOption} val={Val} fileExists={FileExists} path={Path} hasOcl={HasOcl} hasProgramOcl={HasProgramOcl} hasScaleOcl={HasScaleOcl}",
|
||||
hasOption, val, fileExists, shaderPath, hasOcl, hasProgramOcl, hasScaleOcl);
|
||||
|
||||
return optionTrue && fileExists && hasOcl && hasProgramOcl && hasScaleOcl;
|
||||
}
|
||||
|
||||
private string GetCrtEscapedShaderPath()
|
||||
|
||||
Reference in New Issue
Block a user