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); /// /// Extracts the text subtitle. /// /// The input files. /// The type. /// Index of the subtitle stream. /// if set to true, copy stream instead of converting. /// The output path. /// The cancellation token. /// Task. Task ExtractTextSubtitle(string[] inputFiles, InputType type, int subtitleStreamIndex, bool copySubtitleStream, string outputPath, CancellationToken cancellationToken); /// /// Converts the text subtitle to ass. /// /// The input path. /// The output path. /// The language. /// The cancellation token. /// Task. Task ConvertTextSubtitleToAss(string inputPath, string outputPath, string language, 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); /// /// Encodes the image. /// /// The options. /// The cancellation token. /// Task{Stream}. Task EncodeImage(ImageEncodingOptions options, CancellationToken cancellationToken); } /// /// Enum InputType /// public enum InputType { /// /// The file /// File, /// /// The bluray /// Bluray, /// /// The DVD /// Dvd, /// /// The URL /// Url } }