aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs
diff options
context:
space:
mode:
authorNick <20588554+nicknsy@users.noreply.github.com>2023-10-18 19:27:05 -0700
committerNick <20588554+nicknsy@users.noreply.github.com>2023-10-18 19:27:05 -0700
commitcd662506a1f63f9b20e7f5caa9b671eb3d71ea5a (patch)
treeb58f7158e21e7ed21d77b0f0abfce23d796b3fe3 /MediaBrowser.Providers/MediaInfo/AudioFileProber.cs
parentc7feea27fde8af60984c8fe41444dc245dbde395 (diff)
parentde08d38a6f2a6e773fa1000574e08322605b56d3 (diff)
Merge branch 'master' into trickplay
Diffstat (limited to 'MediaBrowser.Providers/MediaInfo/AudioFileProber.cs')
-rw-r--r--MediaBrowser.Providers/MediaInfo/AudioFileProber.cs44
1 files changed, 28 insertions, 16 deletions
diff --git a/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs b/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs
index e1dcbc9939..d817042274 100644
--- a/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs
+++ b/MediaBrowser.Providers/MediaInfo/AudioFileProber.cs
@@ -25,7 +25,7 @@ namespace MediaBrowser.Providers.MediaInfo
/// <summary>
/// Probes audio files for metadata.
/// </summary>
- public class AudioFileProber
+ public partial class AudioFileProber
{
// Default LUFS value for use with the web interface, at -18db gain will be 1(no db gain).
private const float DefaultLUFSValue = -18;
@@ -58,6 +58,9 @@ namespace MediaBrowser.Providers.MediaInfo
_mediaSourceManager = mediaSourceManager;
}
+ [GeneratedRegex(@"I:\s+(.*?)\s+LUFS")]
+ private static partial Regex LUFSRegex();
+
/// <summary>
/// Probes the specified item for metadata.
/// </summary>
@@ -104,7 +107,6 @@ namespace MediaBrowser.Providers.MediaInfo
if (libraryOptions.EnableLUFSScan)
{
- string output;
using (var process = new Process()
{
StartInfo = new ProcessStartInfo
@@ -127,9 +129,10 @@ namespace MediaBrowser.Providers.MediaInfo
throw;
}
- output = await process.StandardError.ReadToEndAsync(cancellationToken).ConfigureAwait(false);
+ using var reader = process.StandardError;
+ var output = await reader.ReadToEndAsync(cancellationToken).ConfigureAwait(false);
cancellationToken.ThrowIfCancellationRequested();
- MatchCollection split = Regex.Matches(output, @"I:\s+(.*?)\s+LUFS");
+ MatchCollection split = LUFSRegex().Matches(output);
if (split.Count != 0)
{
@@ -220,30 +223,39 @@ namespace MediaBrowser.Providers.MediaInfo
var albumArtists = tags.AlbumArtists;
foreach (var albumArtist in albumArtists)
{
- PeopleHelper.AddPerson(people, new PersonInfo
+ if (!string.IsNullOrEmpty(albumArtist))
{
- Name = albumArtist,
- Type = PersonKind.AlbumArtist
- });
+ PeopleHelper.AddPerson(people, new PersonInfo
+ {
+ Name = albumArtist,
+ Type = PersonKind.AlbumArtist
+ });
+ }
}
var performers = tags.Performers;
foreach (var performer in performers)
{
- PeopleHelper.AddPerson(people, new PersonInfo
+ if (!string.IsNullOrEmpty(performer))
{
- Name = performer,
- Type = PersonKind.Artist
- });
+ PeopleHelper.AddPerson(people, new PersonInfo
+ {
+ Name = performer,
+ Type = PersonKind.Artist
+ });
+ }
}
foreach (var composer in tags.Composers)
{
- PeopleHelper.AddPerson(people, new PersonInfo
+ if (!string.IsNullOrEmpty(composer))
{
- Name = composer,
- Type = PersonKind.Composer
- });
+ PeopleHelper.AddPerson(people, new PersonInfo
+ {
+ Name = composer,
+ Type = PersonKind.Composer
+ });
+ }
}
_libraryManager.UpdatePeople(audio, people);