using System; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Common.MediaInfo { /// /// 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 image. /// /// The input files. /// The type. /// The offset. /// The output path. /// The cancellation token. /// Task. Task ExtractImage(string[] inputFiles, InputType type, TimeSpan? offset, string outputPath, CancellationToken cancellationToken); /// /// Extracts the text subtitle. /// /// The input files. /// The type. /// Index of the subtitle stream. /// The offset. /// The output path. /// The cancellation token. /// Task. Task ExtractTextSubtitle(string[] inputFiles, InputType type, int subtitleStreamIndex, TimeSpan offset, string outputPath, CancellationToken cancellationToken); /// /// Converts the text subtitle to ass. /// /// The input path. /// The output path. /// The offset. /// The cancellation token. /// Task. Task ConvertTextSubtitleToAss(string inputPath, string outputPath, TimeSpan offset, CancellationToken cancellationToken); /// /// Gets the media info. /// /// The input files. /// The type. /// The cancellation token. /// Task. Task GetMediaInfo(string[] inputFiles, InputType type, 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 audio file /// AudioFile, /// /// The video file /// VideoFile, /// /// The bluray /// Bluray, /// /// The DVD /// Dvd } }