Parcourir la source

Add support for .sup subtitle (#8808)

Fixes https://github.com/jellyfin/jellyfin/issues/8628
Cody Robibero il y a 2 ans
Parent
commit
9a740344be

+ 12 - 0
Emby.Dlna/Profiles/DefaultProfile.cs

@@ -92,6 +92,12 @@ namespace Emby.Dlna.Profiles
                     Method = SubtitleDeliveryMethod.External,
                 },
 
+                new SubtitleProfile
+                {
+                    Format = "sup",
+                    Method = SubtitleDeliveryMethod.External
+                },
+
                 new SubtitleProfile
                 {
                     Format = "srt",
@@ -140,6 +146,12 @@ namespace Emby.Dlna.Profiles
                     Method = SubtitleDeliveryMethod.Embed
                 },
 
+                new SubtitleProfile
+                {
+                    Format = "sup",
+                    Method = SubtitleDeliveryMethod.Embed
+                },
+
                 new SubtitleProfile
                 {
                     Format = "subrip",

+ 1 - 0
Emby.Naming/Common/NamingOptions.cs

@@ -169,6 +169,7 @@ namespace Emby.Naming.Common
                 ".srt",
                 ".ssa",
                 ".sub",
+                ".sup",
                 ".vtt",
             };
 

+ 1 - 0
MediaBrowser.Controller/Entities/BaseItem.cs

@@ -56,6 +56,7 @@ namespace MediaBrowser.Controller.Entities
             ".srt",
             ".vtt",
             ".sub",
+            ".sup",
             ".idx",
             ".txt",
             ".edl",

+ 3 - 1
MediaBrowser.Controller/MediaEncoding/EncodingHelper.cs

@@ -938,8 +938,10 @@ namespace MediaBrowser.Controller.MediaEncoding
                 && state.SubtitleStream.IsExternal)
             {
                 var subtitlePath = state.SubtitleStream.Path;
+                var subtitleExtension = Path.GetExtension(subtitlePath);
 
-                if (string.Equals(Path.GetExtension(subtitlePath), ".sub", StringComparison.OrdinalIgnoreCase))
+                if (string.Equals(subtitleExtension, ".sub", StringComparison.OrdinalIgnoreCase)
+                    || string.Equals(subtitleExtension, ".sup", StringComparison.OrdinalIgnoreCase))
                 {
                     var idxFile = Path.ChangeExtension(subtitlePath, ".idx");
                     if (File.Exists(idxFile))

+ 6 - 5
MediaBrowser.Model/Entities/MediaStream.cs

@@ -635,11 +635,12 @@ namespace MediaBrowser.Model.Entities
 
             // sub = external .sub file
 
-            return !codec.Contains("pgs", StringComparison.OrdinalIgnoreCase) &&
-                   !codec.Contains("dvd", StringComparison.OrdinalIgnoreCase) &&
-                   !codec.Contains("dvbsub", StringComparison.OrdinalIgnoreCase) &&
-                   !string.Equals(codec, "sub", StringComparison.OrdinalIgnoreCase) &&
-                   !string.Equals(codec, "dvb_subtitle", StringComparison.OrdinalIgnoreCase);
+            return !codec.Contains("pgs", StringComparison.OrdinalIgnoreCase)
+                   && !codec.Contains("dvd", StringComparison.OrdinalIgnoreCase)
+                   && !codec.Contains("dvbsub", StringComparison.OrdinalIgnoreCase)
+                   && !string.Equals(codec, "sub", StringComparison.OrdinalIgnoreCase)
+                   && !string.Equals(codec, "sup", StringComparison.OrdinalIgnoreCase)
+                   && !string.Equals(codec, "dvb_subtitle", StringComparison.OrdinalIgnoreCase);
         }
 
         public bool SupportsSubtitleConversionTo(string toCodec)