diff options
| author | Ulrich Wagner <ulrich.wagner@viaregio-services.de> | 2020-02-17 14:56:31 +0100 |
|---|---|---|
| committer | Ulrich Wagner <ulrich.wagner@viaregio-services.de> | 2020-02-17 14:57:07 +0100 |
| commit | d7f199bb1c43b56cafe8876f620d7757da17d8cd (patch) | |
| tree | 3632c3d54de7b528e5f65229f69c96f5acc35b6f /Emby.Server.Implementations/Library/LibraryManager.cs | |
| parent | 3bc0ce070dc8c57ed450e03ac32eeb44d3c60cd4 (diff) | |
#2407: Prefer MP4-Metadata for episodes
Diffstat (limited to 'Emby.Server.Implementations/Library/LibraryManager.cs')
| -rw-r--r-- | Emby.Server.Implementations/Library/LibraryManager.cs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/Library/LibraryManager.cs b/Emby.Server.Implementations/Library/LibraryManager.cs index d983c1dc6..c390d2b82 100644 --- a/Emby.Server.Implementations/Library/LibraryManager.cs +++ b/Emby.Server.Implementations/Library/LibraryManager.cs @@ -29,11 +29,13 @@ using MediaBrowser.Controller.Entities.TV; using MediaBrowser.Controller.IO; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.LiveTv; +using MediaBrowser.Controller.MediaEncoding; using MediaBrowser.Controller.Persistence; using MediaBrowser.Controller.Providers; using MediaBrowser.Controller.Resolvers; using MediaBrowser.Controller.Sorting; using MediaBrowser.Model.Configuration; +using MediaBrowser.Model.Dlna; using MediaBrowser.Model.Dto; using MediaBrowser.Model.Entities; using MediaBrowser.Model.IO; @@ -2387,6 +2389,7 @@ namespace Emby.Server.Implementations.Library public bool FillMissingEpisodeNumbersFromPath(Episode episode, bool forceRefresh) { + var libraryOptions = GetLibraryOptions(episode); var series = episode.Series; bool? isAbsoluteNaming = series == null ? false : string.Equals(series.DisplayOrder, "absolute", StringComparison.OrdinalIgnoreCase); if (!isAbsoluteNaming.Value) @@ -2408,6 +2411,28 @@ namespace Emby.Server.Implementations.Library episodeInfo = new Naming.TV.EpisodeInfo(); } + if (libraryOptions.EnableEmbeddedEpisodeInfos && episodeInfo.Container.ToLowerInvariant() == "mp4") { + // Read from metadata + IMediaEncoder mediaEncoder = _appHost.Resolve<IMediaEncoder>(); + var task = mediaEncoder.GetMediaInfo(new MediaInfoRequest + { + MediaSource = episode.GetMediaSources(false).First(), + MediaType = DlnaProfileType.Video, + ExtractChapters = false + + }, CancellationToken.None); + task.Wait(); + if (task.Result.ParentIndexNumber > 0) { + episodeInfo.SeasonNumber = task.Result.ParentIndexNumber; + } + if (task.Result.IndexNumber > 0) { + episodeInfo.EpisodeNumber = task.Result.IndexNumber; + } + if (!string.IsNullOrEmpty(task.Result.ShowName)) { + episodeInfo.SeriesName = task.Result.ShowName; + } + } + var changed = false; if (episodeInfo.IsByDate) |
