1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-23 22:25:14 -04:00
Files
Radarr/src/NzbDrone.Core/Parser/Augmenters/AugmentWithMediaInfo.cs
T

59 lines
2.0 KiB
C#

using System;
using NzbDrone.Core.MediaFiles.MediaInfo;
using NzbDrone.Core.Parser.Model;
using NzbDrone.Core.Qualities;
namespace NzbDrone.Core.Parser.Augmenters
{
public class AugmentWithMediaInfo : IAugmentParsedMovieInfo
{
public Type HelperType
{
get
{
return typeof(MediaInfoModel);
}
}
public ParsedMovieInfo AugmentMovieInfo(ParsedMovieInfo movieInfo, object helper)
{
if (helper is MediaInfoModel mediaInfo)
{
var quality = movieInfo.Quality;
if (!(quality.Quality.Modifier == Modifier.BRDISK || quality.Quality.Modifier == Modifier.REMUX) &&
(quality.Quality.Source == Source.BLURAY || quality.Quality.Source == Source.TV ||
quality.Quality.Source == Source.WEBDL) &&
!(quality.Quality.Resolution == (int)Resolution.R480p || quality.Quality.Resolution == (int)Resolution.R576p))
{
var width = mediaInfo.Width;
var existing = quality.Quality.Resolution;
if (width > 854)
{
quality.Quality.Resolution = (int)Resolution.R720p;
}
if (width > 1280)
{
quality.Quality.Resolution = (int)Resolution.R1080p;
}
if (width > 1920)
{
quality.Quality.Resolution = (int)Resolution.R2160p;
}
if (existing != quality.Quality.Resolution)
{
//_logger.Debug("Overwriting resolution info {0} with info from media info {1}", existing, quality.Resolution);
quality.ResolutionDetectionSource = QualityDetectionSource.MediaInfo;
movieInfo.Quality = quality;
}
}
}
return movieInfo;
}
}
}