diff options
| author | Cody Robibero <cody@robibe.ro> | 2021-11-20 08:50:39 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-11-20 08:50:39 -0700 |
| commit | b2b4bd82d73be08fa0e1b15b3313b1a0e03d9839 (patch) | |
| tree | 8b910f5c5fcd84e9b30d3177566f65cec6c31140 /MediaBrowser.Providers/MediaInfo/EmbeddedImageProvider.cs | |
| parent | 03c7bcf9c68333431a617e3bfd2c26a4bdc48cd2 (diff) | |
| parent | 88baff5693c6ad749950bbf96eff9f391bcfd194 (diff) | |
Merge pull request #6862 from 1337joe/query-instead-of-filtering
Diffstat (limited to 'MediaBrowser.Providers/MediaInfo/EmbeddedImageProvider.cs')
| -rw-r--r-- | MediaBrowser.Providers/MediaInfo/EmbeddedImageProvider.cs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/MediaBrowser.Providers/MediaInfo/EmbeddedImageProvider.cs b/MediaBrowser.Providers/MediaInfo/EmbeddedImageProvider.cs index 186e55f1d..96d7d139a 100644 --- a/MediaBrowser.Providers/MediaInfo/EmbeddedImageProvider.cs +++ b/MediaBrowser.Providers/MediaInfo/EmbeddedImageProvider.cs @@ -8,7 +8,9 @@ using System.Threading; using System.Threading.Tasks; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.TV; +using MediaBrowser.Controller.Library; using MediaBrowser.Controller.MediaEncoding; +using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Drawing; using MediaBrowser.Model.Dto; @@ -45,16 +47,19 @@ namespace MediaBrowser.Providers.MediaInfo "logo", }; + private readonly IMediaSourceManager _mediaSourceManager; private readonly IMediaEncoder _mediaEncoder; private readonly ILogger<EmbeddedImageProvider> _logger; /// <summary> /// Initializes a new instance of the <see cref="EmbeddedImageProvider"/> class. /// </summary> + /// <param name="mediaSourceManager">The media source manager for fetching item streams and attachments.</param> /// <param name="mediaEncoder">The media encoder for extracting attached/embedded images.</param> /// <param name="logger">The logger.</param> - public EmbeddedImageProvider(IMediaEncoder mediaEncoder, ILogger<EmbeddedImageProvider> logger) + public EmbeddedImageProvider(IMediaSourceManager mediaSourceManager, IMediaEncoder mediaEncoder, ILogger<EmbeddedImageProvider> logger) { + _mediaSourceManager = mediaSourceManager; _mediaEncoder = mediaEncoder; _logger = logger; } @@ -128,8 +133,7 @@ namespace MediaBrowser.Providers.MediaInfo } // Try attachments first - var attachmentStream = item.GetMediaSources(false) - .SelectMany(source => source.MediaAttachments) + var attachmentStream = _mediaSourceManager.GetMediaAttachments(item.Id) .FirstOrDefault(attachment => !string.IsNullOrEmpty(attachment.FileName) && imageFileNames.Any(name => attachment.FileName.Contains(name, StringComparison.OrdinalIgnoreCase))); @@ -139,7 +143,11 @@ namespace MediaBrowser.Providers.MediaInfo } // Fall back to EmbeddedImage streams - var imageStreams = item.GetMediaStreams().FindAll(i => i.Type == MediaStreamType.EmbeddedImage); + var imageStreams = _mediaSourceManager.GetMediaStreams(new MediaStreamQuery + { + ItemId = item.Id, + Type = MediaStreamType.EmbeddedImage + }); if (imageStreams.Count == 0) { |
