From f593230e446b011a9ed3c7a937cc173b3a4c819f Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 27 Jul 2016 16:22:30 -0400 Subject: [PATCH 1/7] fix current image deletion in image saver --- MediaBrowser.Providers/Manager/ImageSaver.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/MediaBrowser.Providers/Manager/ImageSaver.cs b/MediaBrowser.Providers/Manager/ImageSaver.cs index 465677efb6..3de3305578 100644 --- a/MediaBrowser.Providers/Manager/ImageSaver.cs +++ b/MediaBrowser.Providers/Manager/ImageSaver.cs @@ -133,6 +133,9 @@ namespace MediaBrowser.Providers.Manager source = memoryStream; var currentImage = GetCurrentImage(item, type, index); + var currentImageIsLocalFile = currentImage != null && currentImage.IsLocalFile; + var currentImagePath = currentImage == null ? null : currentImage.Path; + var savedPaths = new List(); using (source) @@ -157,9 +160,9 @@ namespace MediaBrowser.Providers.Manager SetImagePath(item, type, imageIndex, savedPaths[0]); // Delete the current path - if (currentImage != null && currentImage.IsLocalFile && !savedPaths.Contains(currentImage.Path, StringComparer.OrdinalIgnoreCase)) + if (currentImageIsLocalFile && !savedPaths.Contains(currentImagePath, StringComparer.OrdinalIgnoreCase)) { - var currentPath = currentImage.Path; + var currentPath = currentImagePath; _logger.Debug("Deleting previous image {0}", currentPath); From 4ebe3a1f0dcb128557699cb0ecdc2279469700cc Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Wed, 27 Jul 2016 16:24:35 -0400 Subject: [PATCH 2/7] restore version --- SharedVersion.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SharedVersion.cs b/SharedVersion.cs index 3b18c027ea..8de20ebed3 100644 --- a/SharedVersion.cs +++ b/SharedVersion.cs @@ -1,4 +1,4 @@ using System.Reflection; -//[assembly: AssemblyVersion("3.1.*")] -[assembly: AssemblyVersion("3.1.80")] +[assembly: AssemblyVersion("3.1.*")] +//[assembly: AssemblyVersion("3.1.80")] From 2c861ca79388114a69a11107042f9ec4bb167eb9 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 28 Jul 2016 01:19:24 -0400 Subject: [PATCH 3/7] update notifications --- .../MediaBrowser.WebDashboard.csproj | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index 5c520afcf2..554bfc2d4b 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -1405,11 +1405,6 @@ PreserveNewest - - - PreserveNewest - - PreserveNewest @@ -1425,24 +1420,6 @@ PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - PreserveNewest - - - - - PreserveNewest - - PreserveNewest From 2fb082cbf356a1c09f1537a41e55f4e8e9c50353 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 28 Jul 2016 01:55:47 -0400 Subject: [PATCH 4/7] update notifications --- .../MediaBrowser.WebDashboard.csproj | 20 +++---------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index 554bfc2d4b..46178dd9a0 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -242,12 +242,6 @@ PreserveNewest - - PreserveNewest - - - PreserveNewest - PreserveNewest @@ -386,6 +380,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest @@ -785,9 +782,6 @@ PreserveNewest - - PreserveNewest - PreserveNewest @@ -1347,11 +1341,6 @@ PreserveNewest - - - PreserveNewest - - PreserveNewest @@ -1464,9 +1453,6 @@ PreserveNewest - - PreserveNewest - PreserveNewest From 9b98d8b2e1e970a8ae23851c8c5f3155f6ff4e88 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 28 Jul 2016 02:29:14 -0400 Subject: [PATCH 5/7] update stream management --- MediaBrowser.Api/ApiEntryPoint.cs | 5 ++-- .../BaseProgressiveStreamingService.cs | 7 +++--- MediaBrowser.Api/Playback/StreamState.cs | 2 +- .../Library/MediaSourceManager.cs | 25 ++++++++++++++++++- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/MediaBrowser.Api/ApiEntryPoint.cs b/MediaBrowser.Api/ApiEntryPoint.cs index dc811812ae..87fa3d46ca 100644 --- a/MediaBrowser.Api/ApiEntryPoint.cs +++ b/MediaBrowser.Api/ApiEntryPoint.cs @@ -126,9 +126,10 @@ namespace MediaBrowser.Api /// true to release both managed and unmanaged resources; false to release only unmanaged resources. protected virtual void Dispose(bool dispose) { - var jobCount = _activeTranscodingJobs.Count; + var list = _activeTranscodingJobs.ToList(); + var jobCount = list.Count; - Parallel.ForEach(_activeTranscodingJobs.ToList(), j => KillTranscodingJob(j, false, path => true)); + Parallel.ForEach(list, j => KillTranscodingJob(j, false, path => true)); // Try to allow for some time to kill the ffmpeg processes and delete the partial stream files if (jobCount > 0) diff --git a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs index d75b8947a8..449100fc42 100644 --- a/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs +++ b/MediaBrowser.Api/Playback/Progressive/BaseProgressiveStreamingService.cs @@ -175,7 +175,9 @@ namespace MediaBrowser.Api.Playback.Progressive ResponseHeaders = responseHeaders, ContentType = contentType, IsHeadRequest = isHeadRequest, - Path = outputPath + Path = outputPath, + FileShare = FileShare.ReadWrite + }).ConfigureAwait(false); } finally @@ -187,8 +189,7 @@ namespace MediaBrowser.Api.Playback.Progressive // Need to start ffmpeg try { - return await GetStreamResult(state, responseHeaders, isHeadRequest, cancellationTokenSource) - .ConfigureAwait(false); + return await GetStreamResult(state, responseHeaders, isHeadRequest, cancellationTokenSource).ConfigureAwait(false); } catch { diff --git a/MediaBrowser.Api/Playback/StreamState.cs b/MediaBrowser.Api/Playback/StreamState.cs index da6be97b61..d97169fa5b 100644 --- a/MediaBrowser.Api/Playback/StreamState.cs +++ b/MediaBrowser.Api/Playback/StreamState.cs @@ -208,7 +208,7 @@ namespace MediaBrowser.Api.Playback private async void DisposeLiveStream() { - if (MediaSource.RequiresClosing && string.IsNullOrWhiteSpace(Request.LiveStreamId)) + if (MediaSource.RequiresClosing && string.IsNullOrWhiteSpace(Request.LiveStreamId) && !string.IsNullOrWhiteSpace(MediaSource.LiveStreamId)) { try { diff --git a/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs b/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs index 4f3fe1bf3e..696bd0f4dc 100644 --- a/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs +++ b/MediaBrowser.Server.Implementations/Library/MediaSourceManager.cs @@ -446,8 +446,31 @@ namespace MediaBrowser.Server.Implementations.Library } } + private async Task CloseLiveStreamWithProvider(IMediaSourceProvider provider, string streamId, CancellationToken cancellationToken) + { + _logger.Info("Closing live stream {0} with provider {1}", streamId, provider.GetType().Name); + + try + { + await provider.CloseMediaSource(streamId, cancellationToken).ConfigureAwait(false); + } + catch (NotImplementedException) + { + + } + catch (Exception ex) + { + _logger.ErrorException("Error closing live stream {0}", ex, streamId); + } + } + public async Task CloseLiveStream(string id, CancellationToken cancellationToken) { + if (string.IsNullOrWhiteSpace(id)) + { + throw new ArgumentNullException("id"); + } + await _liveStreamSemaphore.WaitAsync(cancellationToken).ConfigureAwait(false); try @@ -459,7 +482,7 @@ namespace MediaBrowser.Server.Implementations.Library { var tuple = GetProvider(id); - await tuple.Item1.CloseMediaSource(tuple.Item2, cancellationToken).ConfigureAwait(false); + await CloseLiveStreamWithProvider(tuple.Item1, tuple.Item2, cancellationToken).ConfigureAwait(false); } } From 74f511b2ee0dee5c8c5245e4c3d77c17daf67eb8 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 28 Jul 2016 16:21:54 -0400 Subject: [PATCH 6/7] update components --- .../TV/EpisodeMetadataService.cs | 14 ++++++++++++++ MediaBrowser.Providers/TV/SeasonMetadataService.cs | 7 +++++++ 2 files changed, 21 insertions(+) diff --git a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs index b51b113805..90a185ce00 100644 --- a/MediaBrowser.Providers/TV/EpisodeMetadataService.cs +++ b/MediaBrowser.Providers/TV/EpisodeMetadataService.cs @@ -39,6 +39,20 @@ namespace MediaBrowser.Providers.TV updateType |= ItemUpdateType.MetadataImport; } } + if (updateType <= ItemUpdateType.None) + { + if (item.SeriesId != item.FindSeriesId()) + { + updateType |= ItemUpdateType.MetadataImport; + } + } + if (updateType <= ItemUpdateType.None) + { + if (item.SeasonId != item.FindSeasonId()) + { + updateType |= ItemUpdateType.MetadataImport; + } + } return updateType; } diff --git a/MediaBrowser.Providers/TV/SeasonMetadataService.cs b/MediaBrowser.Providers/TV/SeasonMetadataService.cs index f3e6f8e9c5..addab3918e 100644 --- a/MediaBrowser.Providers/TV/SeasonMetadataService.cs +++ b/MediaBrowser.Providers/TV/SeasonMetadataService.cs @@ -49,6 +49,13 @@ namespace MediaBrowser.Providers.TV updateType |= ItemUpdateType.MetadataImport; } } + if (updateType <= ItemUpdateType.None) + { + if (item.SeriesId != item.FindSeriesId()) + { + updateType |= ItemUpdateType.MetadataImport; + } + } return updateType; } From c944d0d7cc44660ce7f172d5590b8540863efd60 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 28 Jul 2016 16:24:28 -0400 Subject: [PATCH 7/7] 3.1.81 --- SharedVersion.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SharedVersion.cs b/SharedVersion.cs index 8de20ebed3..7f78e641ae 100644 --- a/SharedVersion.cs +++ b/SharedVersion.cs @@ -1,4 +1,4 @@ using System.Reflection; -[assembly: AssemblyVersion("3.1.*")] -//[assembly: AssemblyVersion("3.1.80")] +//[assembly: AssemblyVersion("3.1.*")] +[assembly: AssemblyVersion("3.1.81")]