Преглед изворни кода

Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser

Techywarrior пре 12 година
родитељ
комит
4cdfff0b7e

+ 2 - 2
MediaBrowser.Api/UserLibrary/ItemsService.cs

@@ -198,6 +198,8 @@ namespace MediaBrowser.Api.UserLibrary
 
             items = items.AsParallel();
 
+            items = ApplyAdditionalFilters(request, items);
+
             // Apply filters
             // Run them starting with the ones that are likely to reduce the list the most
             foreach (var filter in GetFilters(request).OrderByDescending(f => (int)f))
@@ -205,8 +207,6 @@ namespace MediaBrowser.Api.UserLibrary
                 items = ApplyFilter(items, filter, user);
             }
 
-            items = ApplyAdditionalFilters(request, items);
-
             items = items.AsEnumerable();
 
             items = ApplySearchTerm(request, items);

+ 1 - 1
MediaBrowser.Controller/MediaInfo/FFMpegManager.cs

@@ -176,7 +176,7 @@ namespace MediaBrowser.Controller.MediaInfo
                     if (extractImages)
                     {
                         // Disable for now on folder rips
-                        if (video.VideoType != VideoType.VideoFile)
+                        if (video.VideoType != VideoType.VideoFile && video.VideoType != VideoType.Dvd)
                         {
                             continue;
                         }

+ 15 - 0
MediaBrowser.Controller/Providers/MediaInfo/FFMpegAudioImageProvider.cs

@@ -51,6 +51,21 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
             return _locks.GetOrAdd(filename, key => new SemaphoreSlim(1, 1));
         }
 
+        /// <summary>
+        /// Needses the refresh internal.
+        /// </summary>
+        /// <param name="item">The item.</param>
+        /// <param name="providerInfo">The provider info.</param>
+        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
+        protected override bool NeedsRefreshInternal(BaseItem item, BaseProviderInfo providerInfo)
+        {
+            if (!string.IsNullOrEmpty(item.PrimaryImagePath))
+            {
+                return false;
+            }
+            return base.NeedsRefreshInternal(item, providerInfo);
+        }
+
         /// <summary>
         /// Fetches metadata and returns true or false indicating if any work that requires persistence was done
         /// </summary>

+ 15 - 0
MediaBrowser.Controller/Providers/MediaInfo/FFMpegVideoImageProvider.cs

@@ -70,6 +70,21 @@ namespace MediaBrowser.Controller.Providers.MediaInfo
             return false;
         }
 
+        /// <summary>
+        /// Needses the refresh internal.
+        /// </summary>
+        /// <param name="item">The item.</param>
+        /// <param name="providerInfo">The provider info.</param>
+        /// <returns><c>true</c> if XXXX, <c>false</c> otherwise</returns>
+        protected override bool NeedsRefreshInternal(BaseItem item, BaseProviderInfo providerInfo)
+        {
+            if (!string.IsNullOrEmpty(item.PrimaryImagePath))
+            {
+                return false;
+            }
+            return base.NeedsRefreshInternal(item, providerInfo);
+        }
+
         /// <summary>
         /// The true task result
         /// </summary>

+ 5 - 3
MediaBrowser.Server.Implementations/MediaEncoder/MediaEncoder.cs

@@ -698,13 +698,14 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder
         {
             var resourcePool = type == InputType.AudioFile ? _audioImageResourcePool : _videoImageResourcePool;
 
-            return ExtractImageInternal(GetInputArgument(inputFiles, type), offset, outputPath, resourcePool, cancellationToken);
+            return ExtractImageInternal(GetInputArgument(inputFiles, type), type, offset, outputPath, resourcePool, cancellationToken);
         }
 
         /// <summary>
         /// Extracts the image.
         /// </summary>
         /// <param name="inputPath">The input path.</param>
+        /// <param name="type">The type.</param>
         /// <param name="offset">The offset.</param>
         /// <param name="outputPath">The output path.</param>
         /// <param name="resourcePool">The resource pool.</param>
@@ -714,7 +715,7 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder
         /// or
         /// outputPath</exception>
         /// <exception cref="System.ApplicationException"></exception>
-        private async Task ExtractImageInternal(string inputPath, TimeSpan? offset, string outputPath, SemaphoreSlim resourcePool, CancellationToken cancellationToken)
+        private async Task ExtractImageInternal(string inputPath, InputType type, TimeSpan? offset, string outputPath, SemaphoreSlim resourcePool, CancellationToken cancellationToken)
         {
             if (string.IsNullOrEmpty(inputPath))
             {
@@ -727,7 +728,8 @@ namespace MediaBrowser.Server.Implementations.MediaEncoder
             }
 
 
-            var args = string.Format("-i {0} -threads 0 -v quiet -vframes 1 -filter:v select=\\'eq(pict_type\\,I)\\' -f image2 \"{1}\"", inputPath, outputPath);
+            var args = type != InputType.Dvd ? string.Format("-i {0} -threads 0 -v quiet -vframes 1 -filter:v select=\\'eq(pict_type\\,I)\\' -f image2 \"{1}\"", inputPath, outputPath) :
+                string.Format("-i {0} -threads 0 -v quiet -vframes 1 -f image2 \"{1}\"", inputPath, outputPath);
 
             if (offset.HasValue)
             {

+ 1 - 1
MediaBrowser.Server.Implementations/Updates/InstallationManager.cs

@@ -288,7 +288,7 @@ namespace MediaBrowser.Server.Implementations.Updates
 
                 return latestPluginInfo != null && latestPluginInfo.version > p.Version ? latestPluginInfo : null;
 
-            }).Where(p => !CompletedInstallations.Any(i => i.Name.Equals(p.name, StringComparison.OrdinalIgnoreCase)))
+            }).Where(p => !CompletedInstallations.Any(i => string.Equals(i.Name, p.name, StringComparison.OrdinalIgnoreCase)))
             .Where(p => p != null && !string.IsNullOrWhiteSpace(p.sourceUrl));
         }