using MediaBrowser.Model.Entities; using MediaBrowser.Model.MediaInfo; 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 protocol. /// The threed format. /// The offset. /// The cancellation token. /// Task{Stream}. Task ExtractVideoImage(string[] inputFiles, MediaProtocol protocol, Video3DFormat? threedFormat, TimeSpan? offset, CancellationToken cancellationToken); /// /// Extracts the video images on interval. /// /// The input files. /// The protocol. /// The threed format. /// The interval. /// The target directory. /// The filename prefix. /// The maximum width. /// The cancellation token. /// Task. Task ExtractVideoImagesOnInterval(string[] inputFiles, MediaProtocol protocol, Video3DFormat? threedFormat, TimeSpan interval, string targetDirectory, string filenamePrefix, int? maxWidth, CancellationToken cancellationToken); /// /// Gets the media info. /// /// The input files. /// The protocol. /// if set to true [is audio]. /// The cancellation token. /// Task. Task GetMediaInfo(string[] inputFiles, MediaProtocol protocol, bool isAudio, CancellationToken cancellationToken); /// /// Gets the probe size argument. /// /// The input files. /// The protocol. /// System.String. string GetProbeSizeArgument(string[] inputFiles, MediaProtocol protocol); /// /// Gets the input argument. /// /// The input files. /// The protocol. /// System.String. string GetInputArgument(string[] inputFiles, MediaProtocol protocol); /// /// Gets the time parameter. /// /// The ticks. /// System.String. string GetTimeParameter(long ticks); } }