mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-27 20:44:00 +02:00
New: MediaInfo VideoBitDepth and AudioChannels
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
@@ -444,60 +445,60 @@ namespace NzbDrone.Core.Organizer
|
||||
{
|
||||
if (episodeFile.MediaInfo == null) return;
|
||||
|
||||
string mediaInfoVideo;
|
||||
string videoCodec;
|
||||
switch (episodeFile.MediaInfo.VideoCodec)
|
||||
{
|
||||
case "AVC":
|
||||
if (episodeFile.SceneName.IsNotNullOrWhiteSpace() && Path.GetFileNameWithoutExtension(episodeFile.SceneName).Contains("h264"))
|
||||
{
|
||||
mediaInfoVideo = "h264";
|
||||
videoCodec = "h264";
|
||||
}
|
||||
else
|
||||
{
|
||||
mediaInfoVideo = "x264";
|
||||
videoCodec = "x264";
|
||||
}
|
||||
break;
|
||||
|
||||
case "V_MPEGH/ISO/HEVC":
|
||||
if (episodeFile.SceneName.IsNotNullOrWhiteSpace() && Path.GetFileNameWithoutExtension(episodeFile.SceneName).Contains("h265"))
|
||||
{
|
||||
mediaInfoVideo = "h265";
|
||||
videoCodec = "h265";
|
||||
}
|
||||
else
|
||||
{
|
||||
mediaInfoVideo = "x265";
|
||||
videoCodec = "x265";
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
mediaInfoVideo = episodeFile.MediaInfo.VideoCodec;
|
||||
videoCodec = episodeFile.MediaInfo.VideoCodec;
|
||||
break;
|
||||
}
|
||||
|
||||
string mediaInfoAudio;
|
||||
string audioCodec;
|
||||
switch (episodeFile.MediaInfo.AudioFormat)
|
||||
{
|
||||
case "AC-3":
|
||||
mediaInfoAudio = "AC3";
|
||||
audioCodec = "AC3";
|
||||
break;
|
||||
|
||||
case "MPEG Audio":
|
||||
if (episodeFile.MediaInfo.AudioProfile == "Layer 3")
|
||||
{
|
||||
mediaInfoAudio = "MP3";
|
||||
audioCodec = "MP3";
|
||||
}
|
||||
else
|
||||
{
|
||||
mediaInfoAudio = episodeFile.MediaInfo.AudioFormat;
|
||||
audioCodec = episodeFile.MediaInfo.AudioFormat;
|
||||
}
|
||||
break;
|
||||
|
||||
case "DTS":
|
||||
mediaInfoAudio = episodeFile.MediaInfo.AudioFormat;
|
||||
audioCodec = episodeFile.MediaInfo.AudioFormat;
|
||||
break;
|
||||
|
||||
default:
|
||||
mediaInfoAudio = episodeFile.MediaInfo.AudioFormat;
|
||||
audioCodec = episodeFile.MediaInfo.AudioFormat;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -518,12 +519,22 @@ namespace NzbDrone.Core.Organizer
|
||||
mediaInfoSubtitleLanguages = string.Format("[{0}]", mediaInfoSubtitleLanguages);
|
||||
}
|
||||
|
||||
tokenHandlers["{MediaInfo Video}"] = m => mediaInfoVideo;
|
||||
tokenHandlers["{MediaInfo Audio}"] = m => mediaInfoAudio;
|
||||
var videoBitDepth = episodeFile.MediaInfo.VideoBitDepth > 0 ? episodeFile.MediaInfo.VideoBitDepth.ToString() : string.Empty;
|
||||
var audioChannels = episodeFile.MediaInfo.FormattedAudioChannels > 0 ?
|
||||
episodeFile.MediaInfo.FormattedAudioChannels.ToString(CultureInfo.InvariantCulture) :
|
||||
string.Empty;
|
||||
|
||||
tokenHandlers["{MediaInfo Simple}"] = m => string.Format("{0} {1}", mediaInfoVideo, mediaInfoAudio);
|
||||
tokenHandlers["{MediaInfo Video}"] = m => videoCodec;
|
||||
tokenHandlers["{MediaInfo VideoCodec}"] = m => videoCodec;
|
||||
tokenHandlers["{MediaInfo VideoBitDepth}"] = m => videoBitDepth;
|
||||
|
||||
tokenHandlers["{MediaInfo Full}"] = m => string.Format("{0} {1}{2} {3}", mediaInfoVideo, mediaInfoAudio, mediaInfoAudioLanguages, mediaInfoSubtitleLanguages);
|
||||
tokenHandlers["{MediaInfo Audio}"] = m => audioCodec;
|
||||
tokenHandlers["{MediaInfo AudioCodec}"] = m => audioCodec;
|
||||
tokenHandlers["{MediaInfo AudioChannels}"] = m => audioChannels;
|
||||
|
||||
tokenHandlers["{MediaInfo Simple}"] = m => string.Format("{0} {1}", videoCodec, audioCodec);
|
||||
|
||||
tokenHandlers["{MediaInfo Full}"] = m => string.Format("{0} {1}{2} {3}", videoCodec, audioCodec, mediaInfoAudioLanguages, mediaInfoSubtitleLanguages);
|
||||
}
|
||||
|
||||
private string GetLanguagesToken(string mediaInfoLanguages)
|
||||
|
Reference in New Issue
Block a user