using System;
using System.Diagnostics.CodeAnalysis;
using Jellyfin.MediaEncoding.Keyframes;
namespace Jellyfin.MediaEncoding.Hls.Extractors;
///
/// Keyframe extractor.
///
public interface IKeyframeExtractor
{
///
/// Gets a value indicating whether the extractor is based on container metadata.
///
bool IsMetadataBased { get; }
///
/// Attempt to extract keyframes.
///
/// The item id.
/// The path to the file.
/// The keyframes.
/// A value indicating whether the keyframe extraction was successful.
bool TryExtractKeyframes(Guid itemId, string filePath, [NotNullWhen(true)] out KeyframeData? keyframeData);
}