浏览代码

Add subtitle format(codec) to stream display title (#5853)

Co-authored-by: Michał Kurek <michal.kurek@mail.com>
Mike 3 年之前
父节点
当前提交
cf9c678406
共有 2 个文件被更改,包括 85 次插入0 次删除
  1. 5 0
      MediaBrowser.Model/Entities/MediaStream.cs
  2. 80 0
      tests/Jellyfin.Model.Tests/Entities/MediaStreamTests.cs

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

@@ -255,6 +255,11 @@ namespace MediaBrowser.Model.Entities
                             attributes.Add(string.IsNullOrEmpty(LocalizedForced) ? "Forced" : LocalizedForced);
                         }
 
+                        if (!string.IsNullOrEmpty(Codec))
+                        {
+                            attributes.Add(Codec.ToUpperInvariant());
+                        }
+
                         if (!string.IsNullOrEmpty(Title))
                         {
                             var result = new StringBuilder(Title);

+ 80 - 0
tests/Jellyfin.Model.Tests/Entities/MediaStreamTests.cs

@@ -1,3 +1,4 @@
+using System.Collections.Generic;
 using MediaBrowser.Model.Entities;
 using Xunit;
 
@@ -5,6 +6,85 @@ namespace Jellyfin.Model.Tests.Entities
 {
     public class MediaStreamTests
     {
+        public static IEnumerable<object[]> Get_DisplayTitle_TestData()
+        {
+            return new List<object[]>
+            {
+                new object[]
+                {
+                    new MediaStream
+                    {
+                        Type = MediaStreamType.Subtitle,
+                        Title = "English",
+                        Language = string.Empty,
+                        IsForced = false,
+                        IsDefault = false,
+                        Codec = "ASS"
+                    },
+                    "English - Und - ASS"
+                },
+                new object[]
+                {
+                    new MediaStream
+                    {
+                        Type = MediaStreamType.Subtitle,
+                        Title = "English",
+                        Language = string.Empty,
+                        IsForced = false,
+                        IsDefault = false,
+                        Codec = string.Empty
+                    },
+                    "English - Und"
+                },
+                new object[]
+                {
+                    new MediaStream
+                    {
+                        Type = MediaStreamType.Subtitle,
+                        Title = "English",
+                        Language = "EN",
+                        IsForced = false,
+                        IsDefault = false,
+                        Codec = string.Empty
+                    },
+                    "English"
+                },
+                new object[]
+                {
+                    new MediaStream
+                    {
+                        Type = MediaStreamType.Subtitle,
+                        Title = "English",
+                        Language = "EN",
+                        IsForced = true,
+                        IsDefault = true,
+                        Codec = "SRT"
+                    },
+                    "English - Default - Forced - SRT"
+                },
+                new object[]
+                {
+                    new MediaStream
+                    {
+                        Type = MediaStreamType.Subtitle,
+                        Title = null,
+                        Language = null,
+                        IsForced = false,
+                        IsDefault = false,
+                        Codec = null
+                    },
+                    "Und"
+                }
+            };
+        }
+
+        [Theory]
+        [MemberData(nameof(Get_DisplayTitle_TestData))]
+        public void Get_DisplayTitle_should_return_valid_title(MediaStream mediaStream, string expected)
+        {
+            Assert.Equal(expected, mediaStream.DisplayTitle);
+        }
+
         [Theory]
         [InlineData(null, null, false, null)]
         [InlineData(null, 0, false, null)]