using MediaBrowser.Model.Entities; using System; using System.IO; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.MediaEncoding { /// /// Interface IMediaEncoder /// public interface IMediaEncoder { /// /// Gets the encoder path. /// /// The encoder path. string EncoderPath { get; } /// /// Gets the version. /// /// The version. string Version { get; } /// /// Extracts the audio image. /// /// The path. /// The cancellation token. /// Task{Stream}. Task ExtractAudioImage(string path, CancellationToken cancellationToken); /// /// Extracts the video image. /// /// The input files. /// The type. /// The threed format. /// The offset. /// The cancellation token. /// Task{Stream}. Task ExtractVideoImage(string[] inputFiles, InputType type, Video3DFormat? threedFormat, TimeSpan? offset, CancellationToken cancellationToken); /// /// Gets the media info. /// /// The input files. /// The type. /// if set to true [is audio]. /// The cancellation token. /// Task. Task GetMediaInfo(string[] inputFiles, InputType type, bool isAudio, CancellationToken cancellationToken); /// /// Gets the probe size argument. /// /// The type. /// System.String. string GetProbeSizeArgument(InputType type); /// /// Gets the input argument. /// /// The input files. /// The type. /// System.String. string GetInputArgument(string[] inputFiles, InputType type); } /// /// Enum InputType /// public enum InputType { /// /// The file /// File, /// /// The bluray /// Bluray, /// /// The DVD /// Dvd, /// /// The URL /// Url } }