diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index d52e133249..f70b713dec 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -217,3 +217,4 @@
- [olsh](https://github.com/olsh)
- [lbenini](https://github.com/lbenini)
- [gnuyent](https://github.com/gnuyent)
+ - [Matthew Jones](https://github.com/matthew-jones-uk)
diff --git a/MediaBrowser.Model/Configuration/EmbeddedSubtitleOptions.cs b/MediaBrowser.Model/Configuration/EmbeddedSubtitleOptions.cs
new file mode 100644
index 0000000000..42f07dbff5
--- /dev/null
+++ b/MediaBrowser.Model/Configuration/EmbeddedSubtitleOptions.cs
@@ -0,0 +1,30 @@
+namespace MediaBrowser.Model.Configuration
+{
+ ///
+ /// An enum representing the options to disable embedded subs.
+ ///
+ public enum EmbeddedSubtitleOptions
+ {
+
+ ///
+ /// Allow all embedded subs.
+ ///
+ AllowAll = 0,
+
+ ///
+ /// Allow only embedded subs that are text based.
+ ///
+ AllowText = 1,
+
+ ///
+ /// Allow only embedded subs that are image based.
+ ///
+ AllowImage = 2,
+
+ ///
+ /// Disable all embedded subs.
+ ///
+ AllowNone = 3,
+ }
+
+}
diff --git a/MediaBrowser.Model/Configuration/LibraryOptions.cs b/MediaBrowser.Model/Configuration/LibraryOptions.cs
index d3ce6aa7fb..ad3bce86ea 100644
--- a/MediaBrowser.Model/Configuration/LibraryOptions.cs
+++ b/MediaBrowser.Model/Configuration/LibraryOptions.cs
@@ -15,6 +15,7 @@ namespace MediaBrowser.Model.Configuration
SkipSubtitlesIfAudioTrackMatches = true;
RequirePerfectSubtitleMatch = true;
+ AllowEmbeddedSubtitles = EmbeddedSubtitleOptions.AllowAll;
AutomaticallyAddToCollection = true;
EnablePhotos = true;
@@ -84,6 +85,8 @@ namespace MediaBrowser.Model.Configuration
public bool AutomaticallyAddToCollection { get; set; }
+ public EmbeddedSubtitleOptions AllowEmbeddedSubtitles { get; set; }
+
public TypeOptions[] TypeOptions { get; set; }
public TypeOptions? GetTypeOptions(string type)
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs
index a2fb2a3c91..d67e83ab4e 100644
--- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs
+++ b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs
@@ -229,6 +229,18 @@ namespace MediaBrowser.Providers.MediaInfo
video.Video3DFormat ??= mediaInfo.Video3DFormat;
}
+ if (libraryOptions.AllowEmbeddedSubtitles == EmbeddedSubtitleOptions.AllowText || libraryOptions.AllowEmbeddedSubtitles == EmbeddedSubtitleOptions.AllowNone)
+ {
+ _logger.LogDebug("Disabling embedded image subtitles for {Path} due to DisableEmbeddedImageSubtitles setting", video.Path);
+ mediaStreams.RemoveAll(i => i.Type == MediaStreamType.Subtitle && !i.IsExternal && !i.IsTextSubtitleStream);
+ }
+
+ if (libraryOptions.AllowEmbeddedSubtitles == EmbeddedSubtitleOptions.AllowImage || libraryOptions.AllowEmbeddedSubtitles == EmbeddedSubtitleOptions.AllowNone)
+ {
+ _logger.LogDebug("Disabling embedded text subtitles for {Path} due to DisableEmbeddedTextSubtitles setting", video.Path);
+ mediaStreams.RemoveAll(i => i.Type == MediaStreamType.Subtitle && !i.IsExternal && i.IsTextSubtitleStream);
+ }
+
var videoStream = mediaStreams.FirstOrDefault(i => i.Type == MediaStreamType.Video);
video.Height = videoStream?.Height ?? 0;