diff --git a/src/NzbDrone.Core.Test/MediaFiles/MediaInfo/MediaInfoFormatterTests/FormatAudioChannelsFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaInfo/MediaInfoFormatterTests/FormatAudioChannelsFixture.cs index b3fc9f2cf..b9c81dc23 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; @@ -90,6 +92,22 @@ public void should_sum_AudioChannelPositions_including_decimal() MediaInfoFormatter.FormatAudioChannels(mediaInfoModel).Should().Be(5.1m); } + [Test] + public void should_ignore_culture_on_channel_summary() + { + Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR"); + + var mediaInfoModel = new MediaInfoModel + { + AudioChannels = 2, + AudioChannelPositions = "3/2/0.1", + AudioChannelPositionsText = 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 8fb28c4de..8689532dc 100644 --- a/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoFormatter.cs +++ b/src/NzbDrone.Core/MediaFiles/MediaInfo/MediaInfoFormatter.cs @@ -494,11 +494,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); } }