From be233b49b610fafb63572dc9dc5325bf27cd72ac Mon Sep 17 00:00:00 2001 From: cvium Date: Sat, 25 Sep 2021 10:41:36 +0200 Subject: Fixes --- .../KeyframeExtractor.cs | 25 ++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs') diff --git a/src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs b/src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs index 641998273..5304a55f8 100644 --- a/src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs +++ b/src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs @@ -32,25 +32,38 @@ namespace Jellyfin.MediaEncoding.Keyframes /// An instance of . public KeyframeData GetKeyframeData(string filePath, string ffProbePath, string ffToolPath) { - var extension = Path.GetExtension(filePath); - if (string.Equals(extension, ".mkv", StringComparison.OrdinalIgnoreCase)) + var extension = Path.GetExtension(filePath.AsSpan()); + if (extension.Equals(".mkv", StringComparison.OrdinalIgnoreCase)) { try { return MatroskaKeyframeExtractor.GetKeyframeData(filePath); } - catch (InvalidOperationException ex) + catch (Exception ex) { - _logger.LogError(ex, "{MatroskaKeyframeExtractor} failed to extract keyframes", nameof(MatroskaKeyframeExtractor)); + _logger.LogError(ex, "{ExtractorType} failed to extract keyframes", nameof(MatroskaKeyframeExtractor)); } } - if (!string.IsNullOrEmpty(ffToolPath)) + try { return FfToolKeyframeExtractor.GetKeyframeData(ffToolPath, filePath); } + catch (Exception ex) + { + _logger.LogError(ex, "{ExtractorType} failed to extract keyframes", nameof(FfToolKeyframeExtractor)); + } + + try + { + return FfProbeKeyframeExtractor.GetKeyframeData(ffProbePath, filePath); + } + catch (Exception ex) + { + _logger.LogError(ex, "{ExtractorType} failed to extract keyframes", nameof(FfProbeKeyframeExtractor)); + } - return FfProbeKeyframeExtractor.GetKeyframeData(ffProbePath, filePath); + return new KeyframeData(0, Array.Empty()); } } } -- cgit v1.2.3