diff --git a/ConfusedPolarBear.Plugin.IntroSkipper/Analyzers/BlackFrameAnalyzer.cs b/ConfusedPolarBear.Plugin.IntroSkipper/Analyzers/BlackFrameAnalyzer.cs index 89a4018..cd95c49 100644 --- a/ConfusedPolarBear.Plugin.IntroSkipper/Analyzers/BlackFrameAnalyzer.cs +++ b/ConfusedPolarBear.Plugin.IntroSkipper/Analyzers/BlackFrameAnalyzer.cs @@ -79,7 +79,7 @@ public class BlackFrameAnalyzer : IMediaFileAnalyzer var config = Plugin.Instance?.Configuration ?? new Configuration.PluginConfiguration(); // Start by analyzing the last N minutes of the file. - var start = TimeSpan.FromSeconds(config.MaximumEpisodeCreditsDuration); + var start = TimeSpan.FromSeconds(config.MaximumCreditsDuration); var end = TimeSpan.FromSeconds(config.MinimumCreditsDuration); var firstFrameTime = 0.0; diff --git a/ConfusedPolarBear.Plugin.IntroSkipper/Analyzers/ChapterAnalyzer.cs b/ConfusedPolarBear.Plugin.IntroSkipper/Analyzers/ChapterAnalyzer.cs index dd2b2cf..d5d09bc 100644 --- a/ConfusedPolarBear.Plugin.IntroSkipper/Analyzers/ChapterAnalyzer.cs +++ b/ConfusedPolarBear.Plugin.IntroSkipper/Analyzers/ChapterAnalyzer.cs @@ -94,7 +94,7 @@ public class ChapterAnalyzer : IMediaFileAnalyzer var minDuration = config.MinimumIntroDuration; int maxDuration = mode == AnalysisMode.Introduction ? config.MaximumIntroDuration : - config.MaximumEpisodeCreditsDuration; + config.MaximumCreditsDuration; if (chapters.Count == 0) { diff --git a/ConfusedPolarBear.Plugin.IntroSkipper/Configuration/PluginConfiguration.cs b/ConfusedPolarBear.Plugin.IntroSkipper/Configuration/PluginConfiguration.cs index 257f7e4..ae18155 100644 --- a/ConfusedPolarBear.Plugin.IntroSkipper/Configuration/PluginConfiguration.cs +++ b/ConfusedPolarBear.Plugin.IntroSkipper/Configuration/PluginConfiguration.cs @@ -96,7 +96,7 @@ public class PluginConfiguration : BasePluginConfiguration /// /// Gets or sets the upper limit (in seconds) on the length of each episode's audio track that will be analyzed when searching for ending credits. /// - public int MaximumEpisodeCreditsDuration { get; set; } = 600; + public int MaximumCreditsDuration { get; set; } = 300; /// /// Gets or sets the minimum percentage of a frame that must consist of black pixels before it is considered a black frame. diff --git a/ConfusedPolarBear.Plugin.IntroSkipper/Configuration/configPage.html b/ConfusedPolarBear.Plugin.IntroSkipper/Configuration/configPage.html index ccbb6b8..f287c2a 100644 --- a/ConfusedPolarBear.Plugin.IntroSkipper/Configuration/configPage.html +++ b/ConfusedPolarBear.Plugin.IntroSkipper/Configuration/configPage.html @@ -48,7 +48,7 @@ If enabled, credits will be automatically analyzed for new media
- Note: Selecting neither Intro nor Credit Detection will disable automatic scans. To configure the scheduled task, see scheduled tasks. + Note: Not selecting at least one automatic detection type will disable automatic scans. To configure the scheduled task, see scheduled tasks.
@@ -136,6 +136,26 @@ +
+ + +
+ Similar sounding audio which is shorter than this duration will not be considered credits. +
+
+ +
+ + +
+ Similar sounding audio which is longer than this duration will not be considered credits. +
+
+

The amount of each episode's audio that will be analyzed is determined using both the percentage of audio and maximum runtime of audio to analyze. The minimum of @@ -619,6 +639,8 @@ "AnalysisLengthLimit", "MinimumIntroDuration", "MaximumIntroDuration", + "MinimumCreditsDuration", + "MaximumCreditsDuration", "EdlAction", "ProcessPriority", "ProcessThreads", diff --git a/ConfusedPolarBear.Plugin.IntroSkipper/QueueManager.cs b/ConfusedPolarBear.Plugin.IntroSkipper/QueueManager.cs index e57093e..7677982 100644 --- a/ConfusedPolarBear.Plugin.IntroSkipper/QueueManager.cs +++ b/ConfusedPolarBear.Plugin.IntroSkipper/QueueManager.cs @@ -198,7 +198,7 @@ public class QueueManager _queuedEpisodes.TryAdd(episode.SeasonId, new List()); // Queue the episode for analysis - var maxCreditsDuration = Plugin.Instance!.Configuration.MaximumEpisodeCreditsDuration; + var maxCreditsDuration = Plugin.Instance!.Configuration.MaximumCreditsDuration; _queuedEpisodes[episode.SeasonId].Add(new QueuedEpisode() { SeriesName = episode.SeriesName,