diff options
Diffstat (limited to 'MediaBrowser.Controller')
| -rw-r--r-- | MediaBrowser.Controller/Channels/ChannelMediaInfo.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Dlna/IEventManager.cs | 11 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Video.cs | 16 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Library/IMediaSourceProvider.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Providers/DirectoryService.cs | 6 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Session/SessionInfo.cs | 14 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Sync/ISyncManager.cs | 2 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Sync/ISyncProvider.cs | 4 |
8 files changed, 44 insertions, 16 deletions
diff --git a/MediaBrowser.Controller/Channels/ChannelMediaInfo.cs b/MediaBrowser.Controller/Channels/ChannelMediaInfo.cs index ba20395d1..cf7b6ba6a 100644 --- a/MediaBrowser.Controller/Channels/ChannelMediaInfo.cs +++ b/MediaBrowser.Controller/Channels/ChannelMediaInfo.cs @@ -67,7 +67,7 @@ namespace MediaBrowser.Controller.Channels Name = id, Id = id, ReadAtNativeFramerate = ReadAtNativeFramerate, - SupportsDirectStream = false, + SupportsDirectStream = Protocol == MediaProtocol.Http && !string.IsNullOrWhiteSpace(Container) && !string.Equals(Container, "hls", StringComparison.OrdinalIgnoreCase), SupportsDirectPlay = SupportsDirectPlay, IsRemote = true }; diff --git a/MediaBrowser.Controller/Dlna/IEventManager.cs b/MediaBrowser.Controller/Dlna/IEventManager.cs index 54e2a02dd..8c91bd889 100644 --- a/MediaBrowser.Controller/Dlna/IEventManager.cs +++ b/MediaBrowser.Controller/Dlna/IEventManager.cs @@ -12,18 +12,11 @@ namespace MediaBrowser.Controller.Dlna /// <summary> /// Renews the event subscription. /// </summary> - /// <param name="subscriptionId">The subscription identifier.</param> - /// <param name="timeoutSeconds">The timeout seconds.</param> - /// <returns>EventSubscriptionResponse.</returns> - EventSubscriptionResponse RenewEventSubscription(string subscriptionId, int? timeoutSeconds); + EventSubscriptionResponse RenewEventSubscription(string subscriptionId, string requestedTimeoutString); /// <summary> /// Creates the event subscription. /// </summary> - /// <param name="notificationType">Type of the notification.</param> - /// <param name="timeoutSeconds">The timeout seconds.</param> - /// <param name="callbackUrl">The callback URL.</param> - /// <returns>EventSubscriptionResponse.</returns> - EventSubscriptionResponse CreateEventSubscription(string notificationType, int? timeoutSeconds, string callbackUrl); + EventSubscriptionResponse CreateEventSubscription(string notificationType, string requestedTimeoutString, string callbackUrl); } } diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs index 7978f4761..c5d9b9203 100644 --- a/MediaBrowser.Controller/Entities/Video.cs +++ b/MediaBrowser.Controller/Entities/Video.cs @@ -57,6 +57,22 @@ namespace MediaBrowser.Controller.Entities { get { + var extraType = ExtraType; + if (extraType.HasValue) + { + if (extraType.Value == Model.Entities.ExtraType.Sample) + { + return false; + } + if (extraType.Value == Model.Entities.ExtraType.ThemeVideo) + { + return false; + } + if (extraType.Value == Model.Entities.ExtraType.Trailer) + { + return false; + } + } return true; } } diff --git a/MediaBrowser.Controller/Library/IMediaSourceProvider.cs b/MediaBrowser.Controller/Library/IMediaSourceProvider.cs index b0881ba7c..4ec9adf4e 100644 --- a/MediaBrowser.Controller/Library/IMediaSourceProvider.cs +++ b/MediaBrowser.Controller/Library/IMediaSourceProvider.cs @@ -20,10 +20,7 @@ namespace MediaBrowser.Controller.Library /// <summary> /// Opens the media source. /// </summary> - /// <param name="openToken">The open token.</param> - /// <param name="cancellationToken">The cancellation token.</param> - /// <returns>Task<MediaSourceInfo>.</returns> - Task<Tuple<MediaSourceInfo,IDirectStreamProvider>> OpenMediaSource(string openToken, CancellationToken cancellationToken); + Task<Tuple<MediaSourceInfo,IDirectStreamProvider>> OpenMediaSource(string openToken, bool allowLiveStreamProbe, CancellationToken cancellationToken); /// <summary> /// Closes the media source. diff --git a/MediaBrowser.Controller/Providers/DirectoryService.cs b/MediaBrowser.Controller/Providers/DirectoryService.cs index 3d1af2afa..6d220f3a3 100644 --- a/MediaBrowser.Controller/Providers/DirectoryService.cs +++ b/MediaBrowser.Controller/Providers/DirectoryService.cs @@ -120,10 +120,14 @@ namespace MediaBrowser.Controller.Providers { file = _fileSystem.GetFileInfo(path); - if (file != null) + if (file != null && file.Exists) { _fileCache.TryAdd(path, file); } + else + { + return null; + } } return file; diff --git a/MediaBrowser.Controller/Session/SessionInfo.cs b/MediaBrowser.Controller/Session/SessionInfo.cs index f590d9aec..11a9ceac4 100644 --- a/MediaBrowser.Controller/Session/SessionInfo.cs +++ b/MediaBrowser.Controller/Session/SessionInfo.cs @@ -203,6 +203,11 @@ namespace MediaBrowser.Controller.Session public void StartAutomaticProgress(ITimerFactory timerFactory, PlaybackProgressInfo progressInfo) { + if (_disposed) + { + return; + } + lock (_progressLock) { _lastProgressInfo = progressInfo; @@ -223,6 +228,11 @@ namespace MediaBrowser.Controller.Session private async void OnProgressTimerCallback(object state) { + if (_disposed) + { + return; + } + var progressInfo = _lastProgressInfo; if (progressInfo == null) { @@ -274,8 +284,12 @@ namespace MediaBrowser.Controller.Session } } + private bool _disposed = false; + public void Dispose() { + _disposed = true; + StopAutomaticProgress(); _sessionManager = null; } diff --git a/MediaBrowser.Controller/Sync/ISyncManager.cs b/MediaBrowser.Controller/Sync/ISyncManager.cs index fbcb549ad..291632ea5 100644 --- a/MediaBrowser.Controller/Sync/ISyncManager.cs +++ b/MediaBrowser.Controller/Sync/ISyncManager.cs @@ -90,6 +90,8 @@ namespace MediaBrowser.Controller.Sync /// </summary> IEnumerable<SyncTarget> GetSyncTargets(string userId); + IEnumerable<SyncTarget> GetSyncTargets(string userId, bool? supportsRemoteSync); + /// <summary> /// Supportses the synchronize. /// </summary> diff --git a/MediaBrowser.Controller/Sync/ISyncProvider.cs b/MediaBrowser.Controller/Sync/ISyncProvider.cs index ef34bfe69..aa4b36427 100644 --- a/MediaBrowser.Controller/Sync/ISyncProvider.cs +++ b/MediaBrowser.Controller/Sync/ISyncProvider.cs @@ -11,6 +11,8 @@ namespace MediaBrowser.Controller.Sync /// <value>The name.</value> string Name { get; } + bool SupportsRemoteSync { get; } + /// <summary> /// Gets the synchronize targets. /// </summary> @@ -27,6 +29,6 @@ namespace MediaBrowser.Controller.Sync public interface IHasUniqueTargetIds { - + } } |
