1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-22 22:15:17 -04:00

Fixed: Backend Updates from Sonarr

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>
Co-Authored-By: taloth <taloth@users.noreply.github.com>
This commit is contained in:
Qstick
2019-06-30 21:50:01 -04:00
parent d178dce0d3
commit 91ab518dfb
131 changed files with 2422 additions and 988 deletions
@@ -9,7 +9,7 @@ namespace NzbDrone.Core.MediaFiles.MediaInfo
public interface IVideoFileInfoReader
{
MediaInfoModel GetMediaInfo(string filename);
TimeSpan GetRunTime(string filename);
TimeSpan? GetRunTime(string filename);
}
public class VideoFileInfoReader : IVideoFileInfoReader
@@ -17,7 +17,7 @@ namespace NzbDrone.Core.MediaFiles.MediaInfo
private readonly IDiskProvider _diskProvider;
private readonly Logger _logger;
public const int MINIMUM_MEDIA_INFO_SCHEMA_REVISION = 4;
public const int MINIMUM_MEDIA_INFO_SCHEMA_REVISION = 3;
public const int CURRENT_MEDIA_INFO_SCHEMA_REVISION = 5;
public VideoFileInfoReader(IDiskProvider diskProvider, Logger logger)
@@ -36,6 +36,8 @@ namespace NzbDrone.Core.MediaFiles.MediaInfo
MediaInfo mediaInfo = null;
// TODO: Cache media info by path, mtime and length so we don't need to read files multiple times
try
{
mediaInfo = new MediaInfo();
@@ -117,6 +119,7 @@ namespace NzbDrone.Core.MediaFiles.MediaInfo
int.TryParse(aBitRate, out audioBitRate);
int.TryParse(mediaInfo.Get(StreamKind.Audio, 0, "StreamCount"), out streamCount);
string audioChannelsStr = mediaInfo.Get(StreamKind.Audio, 0, "Channel(s)").Split(new string[] { " /" }, StringSplitOptions.None)[0].Trim();
var audioChannelPositions = mediaInfo.Get(StreamKind.Audio, 0, "ChannelPositions/String2");
@@ -177,25 +180,17 @@ namespace NzbDrone.Core.MediaFiles.MediaInfo
}
finally
{
if (mediaInfo != null)
{
mediaInfo.Close();
}
mediaInfo?.Close();
}
return null;
}
public TimeSpan GetRunTime(string filename)
public TimeSpan? GetRunTime(string filename)
{
var info = GetMediaInfo(filename);
if (info == null)
{
return new TimeSpan();
}
return info.RunTime;
return info?.RunTime;
}
private TimeSpan GetBestRuntime(int audio, int video, int general)