aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Channels/ChannelMediaInfo.cs2
-rw-r--r--MediaBrowser.Controller/Dlna/IEventManager.cs11
-rw-r--r--MediaBrowser.Controller/Entities/Video.cs16
-rw-r--r--MediaBrowser.Controller/Library/IMediaSourceProvider.cs5
-rw-r--r--MediaBrowser.Controller/Providers/DirectoryService.cs6
-rw-r--r--MediaBrowser.Controller/Session/SessionInfo.cs14
-rw-r--r--MediaBrowser.Controller/Sync/ISyncManager.cs2
-rw-r--r--MediaBrowser.Controller/Sync/ISyncProvider.cs4
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&lt;MediaSourceInfo&gt;.</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
{
-
+
}
}