aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke <luke.pulverenti@gmail.com>2015-04-29 13:48:06 -0400
committerLuke <luke.pulverenti@gmail.com>2015-04-29 13:48:06 -0400
commit36b2c5fa15ab6fb1259f5223d67c82e841208be7 (patch)
tree68fff1cb85031690a7d5695dce65a173ef65b34c
parent87e93f5a5779fe79bb098c53116b659ad21d05ee (diff)
parenta75ce4197d89e90f97155fef81bbb65f954ae6a4 (diff)
Merge pull request #1091 from MediaBrowser/dev
3.0.5597.1
-rw-r--r--Emby.Drawing/ImageProcessor.cs15
-rw-r--r--MediaBrowser.Controller/Entities/Movies/Movie.cs14
-rw-r--r--MediaBrowser.Controller/Entities/TV/Series.cs18
-rw-r--r--MediaBrowser.Server.Startup.Common/ApplicationHost.cs14
-rw-r--r--SharedVersion.cs2
5 files changed, 50 insertions, 13 deletions
diff --git a/Emby.Drawing/ImageProcessor.cs b/Emby.Drawing/ImageProcessor.cs
index 9ad72d73f..59c2e95c7 100644
--- a/Emby.Drawing/ImageProcessor.cs
+++ b/Emby.Drawing/ImageProcessor.cs
@@ -53,11 +53,12 @@ namespace Emby.Drawing
private readonly IImageEncoder _imageEncoder;
private readonly SemaphoreSlim _imageProcessingSemaphore;
- public ImageProcessor(ILogger logger,
- IServerApplicationPaths appPaths,
- IFileSystem fileSystem,
- IJsonSerializer jsonSerializer,
- IImageEncoder imageEncoder)
+ public ImageProcessor(ILogger logger,
+ IServerApplicationPaths appPaths,
+ IFileSystem fileSystem,
+ IJsonSerializer jsonSerializer,
+ IImageEncoder imageEncoder,
+ int maxConcurrentImageProcesses)
{
_logger = logger;
_fileSystem = fileSystem;
@@ -93,8 +94,8 @@ namespace Emby.Drawing
}
_cachedImagedSizes = new ConcurrentDictionary<Guid, ImageSize>(sizeDictionary);
- var count = Environment.ProcessorCount;
- _imageProcessingSemaphore = new SemaphoreSlim(count, count);
+ _logger.Info("ImageProcessor started with {0} max concurrent image processes", maxConcurrentImageProcesses);
+ _imageProcessingSemaphore = new SemaphoreSlim(maxConcurrentImageProcesses, maxConcurrentImageProcesses);
}
public string[] SupportedInputFormats
diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs
index 429832088..fc07f6778 100644
--- a/MediaBrowser.Controller/Entities/Movies/Movie.cs
+++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs
@@ -100,7 +100,19 @@ namespace MediaBrowser.Controller.Entities.Movies
/// <returns>System.String.</returns>
protected override string CreateUserDataKey()
{
- return this.GetProviderId(MetadataProviders.Tmdb) ?? this.GetProviderId(MetadataProviders.Imdb) ?? base.CreateUserDataKey();
+ var key = this.GetProviderId(MetadataProviders.Tmdb);
+
+ if (string.IsNullOrWhiteSpace(key))
+ {
+ key = this.GetProviderId(MetadataProviders.Imdb);
+ }
+
+ if (string.IsNullOrWhiteSpace(key))
+ {
+ key = base.CreateUserDataKey();
+ }
+
+ return key;
}
protected override async Task<bool> RefreshedOwnedItems(MetadataRefreshOptions options, List<FileSystemInfo> fileSystemChildren, CancellationToken cancellationToken)
diff --git a/MediaBrowser.Controller/Entities/TV/Series.cs b/MediaBrowser.Controller/Entities/TV/Series.cs
index e7a5c69ba..4696afeb6 100644
--- a/MediaBrowser.Controller/Entities/TV/Series.cs
+++ b/MediaBrowser.Controller/Entities/TV/Series.cs
@@ -61,7 +61,7 @@ namespace MediaBrowser.Controller.Entities.TV
/// airdate, dvd or absolute
/// </summary>
public string DisplayOrder { get; set; }
-
+
/// <summary>
/// Gets or sets the status.
/// </summary>
@@ -113,7 +113,19 @@ namespace MediaBrowser.Controller.Entities.TV
/// <returns>System.String.</returns>
protected override string CreateUserDataKey()
{
- return this.GetProviderId(MetadataProviders.Tvdb) ?? this.GetProviderId(MetadataProviders.Tvcom) ?? base.CreateUserDataKey();
+ var key = this.GetProviderId(MetadataProviders.Tvdb);
+
+ if (string.IsNullOrWhiteSpace(key))
+ {
+ key = this.GetProviderId(MetadataProviders.Imdb);
+ }
+
+ if (string.IsNullOrWhiteSpace(key))
+ {
+ key = base.CreateUserDataKey();
+ }
+
+ return key;
}
/// <summary>
@@ -188,7 +200,7 @@ namespace MediaBrowser.Controller.Entities.TV
public IEnumerable<Episode> GetEpisodes(User user)
{
var config = user.Configuration;
-
+
return GetEpisodes(user, config.DisplayMissingEpisodes, config.DisplayUnairedEpisodes);
}
diff --git a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
index 1a20f7431..050b7aabe 100644
--- a/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
+++ b/MediaBrowser.Server.Startup.Common/ApplicationHost.cs
@@ -439,7 +439,7 @@ namespace MediaBrowser.Server.Startup.Common
var innerProgress = new ActionableProgress<double>();
innerProgress.RegisterAction(p => progress.Report((.75 * p) + 15));
- ImageProcessor = new ImageProcessor(LogManager.GetLogger("ImageProcessor"), ServerConfigurationManager.ApplicationPaths, FileSystemManager, JsonSerializer, GetImageEncoder());
+ ImageProcessor = GetImageProcessor();
RegisterSingleInstance(ImageProcessor);
TVSeriesManager = new TVSeriesManager(UserManager, UserDataManager, LibraryManager);
@@ -543,6 +543,18 @@ namespace MediaBrowser.Server.Startup.Common
await ((UserManager)UserManager).Initialize().ConfigureAwait(false);
}
+ private IImageProcessor GetImageProcessor()
+ {
+ var maxConcurrentImageProcesses = Math.Max(Environment.ProcessorCount, 4);
+
+ if (_startupOptions.ContainsOption("-imagethreads"))
+ {
+ int.TryParse(_startupOptions.GetOption("-imagethreads"), NumberStyles.Any, CultureInfo.InvariantCulture, out maxConcurrentImageProcesses);
+ }
+
+ return new ImageProcessor(LogManager.GetLogger("ImageProcessor"), ServerConfigurationManager.ApplicationPaths, FileSystemManager, JsonSerializer, GetImageEncoder(), maxConcurrentImageProcesses);
+ }
+
private IImageEncoder GetImageEncoder()
{
if (!_startupOptions.ContainsOption("-enablegdi"))
diff --git a/SharedVersion.cs b/SharedVersion.cs
index 0175399e7..11940767e 100644
--- a/SharedVersion.cs
+++ b/SharedVersion.cs
@@ -1,4 +1,4 @@
using System.Reflection;
//[assembly: AssemblyVersion("3.0.*")]
-[assembly: AssemblyVersion("3.0.5597.0")]
+[assembly: AssemblyVersion("3.0.5597.1")]