mirror of
https://github.com/lidarr/lidarr.git
synced 2025-08-23 14:55:20 -07:00
Fix error with weirdly formatted audioChannelPositions on MediaInfo.
This commit is contained in:
parent
0083e95019
commit
0668f12e62
2 changed files with 42 additions and 18 deletions
|
@ -100,5 +100,23 @@ namespace NzbDrone.Core.Test.MediaFiles.MediaInfo
|
||||||
|
|
||||||
stream.Close();
|
stream.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
[TestCase("/ Front: L R", 2.0)]
|
||||||
|
public void should_correctly_read_audio_channels(string ChannelPositions, decimal formattedChannels)
|
||||||
|
{
|
||||||
|
var info = new MediaInfoModel()
|
||||||
|
{
|
||||||
|
VideoCodec = "AVC",
|
||||||
|
AudioFormat = "DTS",
|
||||||
|
AudioLanguages = "English",
|
||||||
|
Subtitles = "English",
|
||||||
|
AudioChannels = 2,
|
||||||
|
AudioChannelPositions = ChannelPositions,
|
||||||
|
SchemaRevision = 3,
|
||||||
|
};
|
||||||
|
|
||||||
|
info.FormattedAudioChannels.Should().Be(formattedChannels);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -34,8 +34,18 @@ namespace NzbDrone.Core.MediaFiles.MediaInfo
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (AudioChannelPositions.IsNullOrWhiteSpace())
|
try
|
||||||
{
|
{
|
||||||
|
return
|
||||||
|
AudioChannelPositions.Replace("Object Based /", "").Replace(" / ", "$")
|
||||||
|
.Split('$')
|
||||||
|
.First()
|
||||||
|
.Split('/')
|
||||||
|
.Sum(s => decimal.Parse(s, CultureInfo.InvariantCulture));
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
|
||||||
if (AudioChannelPositionsText.IsNullOrWhiteSpace())
|
if (AudioChannelPositionsText.IsNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
if (SchemaRevision >= 3)
|
if (SchemaRevision >= 3)
|
||||||
|
@ -47,14 +57,10 @@ namespace NzbDrone.Core.MediaFiles.MediaInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
return AudioChannelPositionsText.ContainsIgnoreCase("LFE") ? AudioChannels - 1 + 0.1m : AudioChannels;
|
return AudioChannelPositionsText.ContainsIgnoreCase("LFE") ? AudioChannels - 1 + 0.1m : AudioChannels;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
|
||||||
AudioChannelPositions.Replace("Object Based /", "").Replace(" / ", "$")
|
|
||||||
.Split('$')
|
|
||||||
.First()
|
|
||||||
.Split('/')
|
|
||||||
.Sum(s => decimal.Parse(s, CultureInfo.InvariantCulture));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue