diff --git a/src/NzbDrone.Core.Test/MediaFiles/MediaInfo/MediaInfoFormatterTests/FormatAudioChannelsFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaInfo/MediaInfoFormatterTests/FormatAudioChannelsFixture.cs index 93388a96b..d3f39519b 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/MediaInfo/MediaInfoFormatterTests/FormatAudioChannelsFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/MediaInfo/MediaInfoFormatterTests/FormatAudioChannelsFixture.cs @@ -1,3 +1,5 @@ +using System.Globalization; +using System.Threading; using FluentAssertions; using NUnit.Framework; using NzbDrone.Core.MediaFiles.MediaInfo; @@ -126,6 +128,22 @@ public void should_format_8_channel_blank_as_71_if_dtsx() MediaInfoFormatter.FormatAudioChannels(mediaInfoModel).Should().Be(7.1m); } + [Test] + public void should_ignore_culture_on_channel_summary() + { + Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR"); + + var mediaInfoModel = new MediaInfoModel + { + AudioChannelsContainer = 2, + AudioChannelPositions = "3/2/0.1", + AudioChannelPositionsTextContainer = null, + SchemaRevision = 3 + }; + + MediaInfoFormatter.FormatAudioChannels(mediaInfoModel).Should().Be(5.1m); + } + [Test] public void should_handle_AudioChannelPositions_three_digits() { diff --git a/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoFormatter.cs b/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoFormatter.cs index 4469e51cc..14027c573 100644 --- a/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoFormatter.cs +++ b/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoFormatter.cs @@ -480,11 +480,11 @@ public static string FormatVideoCodecLegacy(MediaInfoModel mediaInfo, string sce if (channelSplit.Count() == 3) { - positions += decimal.Parse(string.Format("{0}.{1}", channelSplit[1], channelSplit[2])); + positions += decimal.Parse(string.Format("{0}.{1}", channelSplit[1], channelSplit[2]), CultureInfo.InvariantCulture); } else { - positions += decimal.Parse(channel); + positions += decimal.Parse(channel, CultureInfo.InvariantCulture); } }