From a86b71899ec52c44ddc6c3018e8cc5e9d7ff4d62 Mon Sep 17 00:00:00 2001 From: Andrew Rabert Date: Thu, 27 Dec 2018 18:27:57 -0500 Subject: Add GPL modules --- .../MediaEncoding/IMediaEncoder.cs | 124 +++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs (limited to 'MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs') diff --git a/MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs b/MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs new file mode 100644 index 000000000..2b85b8975 --- /dev/null +++ b/MediaBrowser.Controller/MediaEncoding/IMediaEncoder.cs @@ -0,0 +1,124 @@ +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.MediaInfo; +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using MediaBrowser.Model.Dlna; +using MediaBrowser.Model.IO; + +namespace MediaBrowser.Controller.MediaEncoding +{ + /// + /// Interface IMediaEncoder + /// + public interface IMediaEncoder : ITranscoderSupport + { + string EncoderLocationType { get; } + + /// + /// Gets the encoder path. + /// + /// The encoder path. + string EncoderPath { get; } + + /// + /// Supportses the decoder. + /// + /// The decoder. + /// true if XXXX, false otherwise. + bool SupportsDecoder(string decoder); + + /// + /// Extracts the audio image. + /// + /// The path. + /// Index of the image stream. + /// The cancellation token. + /// Task{Stream}. + Task ExtractAudioImage(string path, int? imageStreamIndex, CancellationToken cancellationToken); + + /// + /// Extracts the video image. + /// + Task ExtractVideoImage(string[] inputFiles, string container, MediaProtocol protocol, MediaStream videoStream, Video3DFormat? threedFormat, TimeSpan? offset, CancellationToken cancellationToken); + + Task ExtractVideoImage(string[] inputFiles, string container, MediaProtocol protocol, MediaStream imageStream, int? imageStreamIndex, CancellationToken cancellationToken); + + /// + /// Extracts the video images on interval. + /// + Task ExtractVideoImagesOnInterval(string[] inputFiles, + string container, + MediaStream videoStream, + MediaProtocol protocol, + Video3DFormat? threedFormat, + TimeSpan interval, + string targetDirectory, + string filenamePrefix, + int? maxWidth, + CancellationToken cancellationToken); + + /// + /// Gets the media info. + /// + /// The request. + /// The cancellation token. + /// Task. + Task GetMediaInfo(MediaInfoRequest request, CancellationToken cancellationToken); + + /// + /// 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); + + /// + /// Encodes the audio. + /// + /// The options. + /// The progress. + /// The cancellation token. + /// Task. + Task EncodeAudio(EncodingJobOptions options, + IProgress progress, + CancellationToken cancellationToken); + + /// + /// Encodes the video. + /// + /// The options. + /// The progress. + /// The cancellation token. + /// Task<System.String>. + Task EncodeVideo(EncodingJobOptions options, + IProgress progress, + CancellationToken cancellationToken); + + Task ConvertImage(string inputPath, string outputPath); + + /// + /// Escapes the subtitle filter path. + /// + /// The path. + /// System.String. + string EscapeSubtitleFilterPath(string path); + + void Init(); + + void UpdateEncoderPath(string path, string pathType); + bool SupportsEncoder(string encoder); + + string[] GetPlayableStreamFileNames(string path, VideoType videoType); + IEnumerable GetPrimaryPlaylistVobFiles(string path, IIsoMount isoMount, uint? titleNumber); + } +} -- cgit v1.2.3