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 --- .../Library/IMediaSourceManager.cs | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 MediaBrowser.Controller/Library/IMediaSourceManager.cs (limited to 'MediaBrowser.Controller/Library/IMediaSourceManager.cs') diff --git a/MediaBrowser.Controller/Library/IMediaSourceManager.cs b/MediaBrowser.Controller/Library/IMediaSourceManager.cs new file mode 100644 index 000000000..8541c4fd9 --- /dev/null +++ b/MediaBrowser.Controller/Library/IMediaSourceManager.cs @@ -0,0 +1,100 @@ +using MediaBrowser.Controller.Entities; +using MediaBrowser.Controller.Persistence; +using MediaBrowser.Model.Dto; +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.MediaInfo; +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using System.IO; + +namespace MediaBrowser.Controller.Library +{ + public interface IMediaSourceManager + { + /// + /// Adds the parts. + /// + /// The providers. + void AddParts(IEnumerable providers); + + /// + /// Gets the media streams. + /// + /// The item identifier. + /// IEnumerable<MediaStream>. + List GetMediaStreams(Guid itemId); + /// + /// Gets the media streams. + /// + /// The media source identifier. + /// IEnumerable<MediaStream>. + List GetMediaStreams(string mediaSourceId); + /// + /// Gets the media streams. + /// + /// The query. + /// IEnumerable<MediaStream>. + List GetMediaStreams(MediaStreamQuery query); + + /// + /// Gets the playack media sources. + /// + Task> GetPlayackMediaSources(BaseItem item, User user, bool allowMediaProbe, bool enablePathSubstitution, CancellationToken cancellationToken); + + /// + /// Gets the static media sources. + /// + List GetStaticMediaSources(BaseItem item, bool enablePathSubstitution, User user = null); + + /// + /// Gets the static media source. + /// + Task GetMediaSource(BaseItem item, string mediaSourceId, string liveStreamId, bool enablePathSubstitution, CancellationToken cancellationToken); + + /// + /// Opens the media source. + /// + /// The request. + /// The cancellation token. + /// Task<MediaSourceInfo>. + Task OpenLiveStream(LiveStreamRequest request, CancellationToken cancellationToken); + + Task> OpenLiveStreamInternal(LiveStreamRequest request, CancellationToken cancellationToken); + + /// + /// Gets the live stream. + /// + /// The identifier. + /// The cancellation token. + /// Task<MediaSourceInfo>. + Task GetLiveStream(string id, CancellationToken cancellationToken); + + Task> GetLiveStreamWithDirectStreamProvider(string id, CancellationToken cancellationToken); + + /// + /// Closes the media source. + /// + /// The live stream identifier. + /// Task. + Task CloseLiveStream(string id); + + Task GetLiveStreamMediaInfo(string id, CancellationToken cancellationToken); + + bool SupportsDirectStream(string path, MediaProtocol protocol); + + MediaProtocol GetPathProtocol(string path); + + void SetDefaultAudioAndSubtitleStreamIndexes(BaseItem item, MediaSourceInfo source, User user); + + Task AddMediaInfoWithProbe(MediaSourceInfo mediaSource, bool isAudio, string cacheKey, bool addProbeDelay, bool isLiveStream, CancellationToken cancellationToken); + + Task GetDirectStreamProviderByUniqueId(string uniqueId, CancellationToken cancellationToken); + } + + public interface IDirectStreamProvider + { + Task CopyToAsync(Stream stream, CancellationToken cancellationToken); + } +} -- cgit v1.2.3