diff options
| -rw-r--r-- | Emby.Server.Implementations/Serialization/MyXmlSerializer.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Providers/MediaInfo/AudioFileProber.cs | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/Emby.Server.Implementations/Serialization/MyXmlSerializer.cs b/Emby.Server.Implementations/Serialization/MyXmlSerializer.cs index 1bac2600c..aa5fbbdf7 100644 --- a/Emby.Server.Implementations/Serialization/MyXmlSerializer.cs +++ b/Emby.Server.Implementations/Serialization/MyXmlSerializer.cs @@ -15,10 +15,9 @@ namespace Emby.Server.Implementations.Serialization { // Need to cache these // http://dotnetcodebox.blogspot.com/2013/01/xmlserializer-class-may-result-in.html - private static readonly ConcurrentDictionary<string, XmlSerializer> _serializers = - new ConcurrentDictionary<string, XmlSerializer>(); + private readonly ConcurrentDictionary<string, XmlSerializer> _serializers = new(); - private static XmlSerializer GetSerializer(Type type) + private XmlSerializer GetSerializer(Type type) => _serializers.GetOrAdd( type.FullName ?? throw new ArgumentException($"Invalid type {type}."), static (_, t) => new XmlSerializer(t), diff --git a/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs b/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs index 67b84681d..bbc9af227 100644 --- a/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs +++ b/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs @@ -338,6 +338,12 @@ namespace MediaBrowser.Providers.MediaInfo audio.Artists = performers; } + if (albumArtists.Length == 0) + { + // Album artists not provided, fall back to performers (artists). + albumArtists = performers; + } + if (options.ReplaceAllMetadata && albumArtists.Length != 0) { audio.AlbumArtists = albumArtists; |
