From af060d73cc1ec595cc98d3e266bb64e573cfe581 Mon Sep 17 00:00:00 2001 From: Taloth Saldono Date: Mon, 11 May 2015 23:22:04 +0200 Subject: [PATCH] Updated MediaInfo code for syno/linux. --- .../MediaInfo/VideoFileInfoReaderFixture.cs | 30 +++++++++++++++++++ .../MediaInfo/VideoFileInfoReader.cs | 2 ++ 2 files changed, 32 insertions(+) diff --git a/src/NzbDrone.Core.Test/MediaFiles/MediaInfo/VideoFileInfoReaderFixture.cs b/src/NzbDrone.Core.Test/MediaFiles/MediaInfo/VideoFileInfoReaderFixture.cs index 157d3a0dd..40a552503 100644 --- a/src/NzbDrone.Core.Test/MediaFiles/MediaInfo/VideoFileInfoReaderFixture.cs +++ b/src/NzbDrone.Core.Test/MediaFiles/MediaInfo/VideoFileInfoReaderFixture.cs @@ -39,6 +39,36 @@ namespace NzbDrone.Core.Test.MediaFiles.MediaInfo var info = Subject.GetMediaInfo(path); + info.AudioBitrate.Should().Be(128000); + info.AudioChannels.Should().Be(2); + info.AudioFormat.Should().Be("AAC"); + info.AudioLanguages.Should().Be("English"); + info.AudioProfile.Should().Be("LC"); + info.Height.Should().Be(320); + info.RunTime.Seconds.Should().Be(10); + info.ScanType.Should().Be("Progressive"); + info.Subtitles.Should().Be(""); + info.VideoBitrate.Should().Be(193329); + info.VideoCodec.Should().Be("AVC"); + info.VideoFps.Should().Be(24); + info.Width.Should().Be(480); + + } + + [Test] + public void get_info_unicode() + { + var srcPath = Path.Combine(Directory.GetCurrentDirectory(), "Files", "Media", "H264_sample.mp4"); + + var tempPath = GetTempFilePath(); + Directory.CreateDirectory(tempPath); + + var path = Path.Combine(tempPath, "H264_Pokémon.mkv"); + + File.Copy(srcPath, path); + + var info = Subject.GetMediaInfo(path); + info.AudioBitrate.Should().Be(128000); info.AudioChannels.Should().Be(2); info.AudioFormat.Should().Be("AAC"); diff --git a/src/NzbDrone.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs b/src/NzbDrone.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs index 1b8b625ee..85666bde3 100644 --- a/src/NzbDrone.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs +++ b/src/NzbDrone.Core/MediaFiles/MediaInfo/VideoFileInfoReader.cs @@ -49,6 +49,8 @@ namespace NzbDrone.Core.MediaFiles.MediaInfo } else { + mediaInfo.Option("CharSet", "UTF-8"); + // On non-Windows the wrapper uses the ansi library methods, which libmediainfo converts internally to unicode from multibyte (utf8). // To avoid building MediaInfoDotNet ourselves we simply trick the wrapper to send utf8 strings instead of ansi. var utf8filename = Encoding.Default.GetString(Encoding.UTF8.GetBytes(filename));