aboutsummaryrefslogtreecommitdiff
path: root/src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs
diff options
context:
space:
mode:
authorcvium <clausvium@gmail.com>2022-01-11 23:30:30 +0100
committercvium <clausvium@gmail.com>2022-01-11 23:30:30 +0100
commit6ffa9539bbfbfb1090b02cebc8a28283a8c69041 (patch)
tree13f4a1d968780f90cd7d0c99e422970117a380f0 /src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs
parentc658a883a2bc84b46ed73d209d2983e8a324cdce (diff)
Refactor and add scheduled task
Diffstat (limited to 'src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs')
-rw-r--r--src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs69
1 files changed, 0 insertions, 69 deletions
diff --git a/src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs b/src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs
deleted file mode 100644
index 5304a55f8..000000000
--- a/src/Jellyfin.MediaEncoding.Keyframes/KeyframeExtractor.cs
+++ /dev/null
@@ -1,69 +0,0 @@
-using System;
-using System.IO;
-using Jellyfin.MediaEncoding.Keyframes.FfProbe;
-using Jellyfin.MediaEncoding.Keyframes.FfTool;
-using Jellyfin.MediaEncoding.Keyframes.Matroska;
-using Microsoft.Extensions.Logging;
-
-namespace Jellyfin.MediaEncoding.Keyframes
-{
- /// <summary>
- /// Manager class for the set of keyframe extractors.
- /// </summary>
- public class KeyframeExtractor
- {
- private readonly ILogger<KeyframeExtractor> _logger;
-
- /// <summary>
- /// Initializes a new instance of the <see cref="KeyframeExtractor"/> class.
- /// </summary>
- /// <param name="logger">An instance of the <see cref="ILogger{KeyframeExtractor}"/> interface.</param>
- public KeyframeExtractor(ILogger<KeyframeExtractor> logger)
- {
- _logger = logger;
- }
-
- /// <summary>
- /// Extracts the keyframe positions from a video file.
- /// </summary>
- /// <param name="filePath">Absolute file path to the media file.</param>
- /// <param name="ffProbePath">Absolute file path to the ffprobe executable.</param>
- /// <param name="ffToolPath">Absolute file path to the fftool executable.</param>
- /// <returns>An instance of <see cref="KeyframeData"/>.</returns>
- public KeyframeData GetKeyframeData(string filePath, string ffProbePath, string ffToolPath)
- {
- var extension = Path.GetExtension(filePath.AsSpan());
- if (extension.Equals(".mkv", StringComparison.OrdinalIgnoreCase))
- {
- try
- {
- return MatroskaKeyframeExtractor.GetKeyframeData(filePath);
- }
- catch (Exception ex)
- {
- _logger.LogError(ex, "{ExtractorType} failed to extract keyframes", nameof(MatroskaKeyframeExtractor));
- }
- }
-
- 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 new KeyframeData(0, Array.Empty<long>());
- }
- }
-}