Merge pull request #7441 from 1337joe/add-external-stream-indicator
Add label for external audio/sub tracks
This commit is contained in:
commit
28223704f3
|
@ -1,5 +1,6 @@
|
|||
# Jellyfin Contributors
|
||||
|
||||
- [1337joe](https://github.com/1337joe)
|
||||
- [97carmine](https://github.com/97carmine)
|
||||
- [Abbe98](https://github.com/Abbe98)
|
||||
- [agrenott](https://github.com/agrenott)
|
||||
|
|
|
@ -5970,6 +5970,7 @@ AND Type = @InternalPersonType)");
|
|||
item.LocalizedUndefined = _localization.GetLocalizedString("Undefined");
|
||||
item.LocalizedDefault = _localization.GetLocalizedString("Default");
|
||||
item.LocalizedForced = _localization.GetLocalizedString("Forced");
|
||||
item.LocalizedExternal = _localization.GetLocalizedString("External");
|
||||
}
|
||||
|
||||
return item;
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
"Default": "Default",
|
||||
"DeviceOfflineWithName": "{0} has disconnected",
|
||||
"DeviceOnlineWithName": "{0} is connected",
|
||||
"External": "External",
|
||||
"FailedLoginAttemptWithUserName": "Failed login try from {0}",
|
||||
"Favorites": "Favorites",
|
||||
"Folders": "Folders",
|
||||
|
|
|
@ -717,6 +717,7 @@ namespace MediaBrowser.MediaEncoding.Probing
|
|||
stream.LocalizedUndefined = _localization.GetLocalizedString("Undefined");
|
||||
stream.LocalizedDefault = _localization.GetLocalizedString("Default");
|
||||
stream.LocalizedForced = _localization.GetLocalizedString("Forced");
|
||||
stream.LocalizedExternal = _localization.GetLocalizedString("External");
|
||||
|
||||
if (string.IsNullOrEmpty(stream.Title))
|
||||
{
|
||||
|
|
|
@ -140,6 +140,8 @@ namespace MediaBrowser.Model.Entities
|
|||
|
||||
public string LocalizedForced { get; set; }
|
||||
|
||||
public string LocalizedExternal { get; set; }
|
||||
|
||||
public string DisplayTitle
|
||||
{
|
||||
get
|
||||
|
@ -184,6 +186,11 @@ namespace MediaBrowser.Model.Entities
|
|||
attributes.Add(string.IsNullOrEmpty(LocalizedDefault) ? "Default" : LocalizedDefault);
|
||||
}
|
||||
|
||||
if (IsExternal)
|
||||
{
|
||||
attributes.Add(string.IsNullOrEmpty(LocalizedExternal) ? "External" : LocalizedExternal);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(Title))
|
||||
{
|
||||
var result = new StringBuilder(Title);
|
||||
|
@ -274,6 +281,11 @@ namespace MediaBrowser.Model.Entities
|
|||
attributes.Add(Codec.ToUpperInvariant());
|
||||
}
|
||||
|
||||
if (IsExternal)
|
||||
{
|
||||
attributes.Add(string.IsNullOrEmpty(LocalizedExternal) ? "External" : LocalizedExternal);
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(Title))
|
||||
{
|
||||
var result = new StringBuilder(Title);
|
||||
|
|
|
@ -5,23 +5,24 @@ namespace Jellyfin.Model.Tests.Entities
|
|||
{
|
||||
public class MediaStreamTests
|
||||
{
|
||||
public static TheoryData<MediaStream, string> Get_DisplayTitle_TestData()
|
||||
public static TheoryData<string, MediaStream> Get_DisplayTitle_TestData()
|
||||
{
|
||||
var data = new TheoryData<MediaStream, string>();
|
||||
var data = new TheoryData<string, MediaStream>();
|
||||
|
||||
data.Add(
|
||||
new MediaStream
|
||||
{
|
||||
Type = MediaStreamType.Subtitle,
|
||||
Title = "English",
|
||||
Language = string.Empty,
|
||||
IsForced = false,
|
||||
IsDefault = false,
|
||||
Codec = "ASS"
|
||||
},
|
||||
"English - Und - ASS");
|
||||
"English - Und - ASS",
|
||||
new MediaStream
|
||||
{
|
||||
Type = MediaStreamType.Subtitle,
|
||||
Title = "English",
|
||||
Language = string.Empty,
|
||||
IsForced = false,
|
||||
IsDefault = false,
|
||||
Codec = "ASS"
|
||||
});
|
||||
|
||||
data.Add(
|
||||
"English - Und",
|
||||
new MediaStream
|
||||
{
|
||||
Type = MediaStreamType.Subtitle,
|
||||
|
@ -30,10 +31,10 @@ namespace Jellyfin.Model.Tests.Entities
|
|||
IsForced = false,
|
||||
IsDefault = false,
|
||||
Codec = string.Empty
|
||||
},
|
||||
"English - Und");
|
||||
});
|
||||
|
||||
data.Add(
|
||||
"English",
|
||||
new MediaStream
|
||||
{
|
||||
Type = MediaStreamType.Subtitle,
|
||||
|
@ -42,10 +43,10 @@ namespace Jellyfin.Model.Tests.Entities
|
|||
IsForced = false,
|
||||
IsDefault = false,
|
||||
Codec = string.Empty
|
||||
},
|
||||
"English");
|
||||
});
|
||||
|
||||
data.Add(
|
||||
"English - Default - Forced - SRT",
|
||||
new MediaStream
|
||||
{
|
||||
Type = MediaStreamType.Subtitle,
|
||||
|
@ -54,10 +55,23 @@ namespace Jellyfin.Model.Tests.Entities
|
|||
IsForced = true,
|
||||
IsDefault = true,
|
||||
Codec = "SRT"
|
||||
},
|
||||
"English - Default - Forced - SRT");
|
||||
});
|
||||
|
||||
data.Add(
|
||||
"Title - EN - Default - Forced - SRT - External",
|
||||
new MediaStream
|
||||
{
|
||||
Type = MediaStreamType.Subtitle,
|
||||
Title = "Title",
|
||||
Language = "EN",
|
||||
IsForced = true,
|
||||
IsDefault = true,
|
||||
Codec = "SRT",
|
||||
IsExternal = true
|
||||
});
|
||||
|
||||
data.Add(
|
||||
"Und",
|
||||
new MediaStream
|
||||
{
|
||||
Type = MediaStreamType.Subtitle,
|
||||
|
@ -66,15 +80,27 @@ namespace Jellyfin.Model.Tests.Entities
|
|||
IsForced = false,
|
||||
IsDefault = false,
|
||||
Codec = null
|
||||
},
|
||||
"Und");
|
||||
});
|
||||
|
||||
data.Add(
|
||||
"Title - AAC - Default - External",
|
||||
new MediaStream
|
||||
{
|
||||
Type = MediaStreamType.Audio,
|
||||
Title = "Title",
|
||||
Language = null,
|
||||
IsForced = false,
|
||||
IsDefault = true,
|
||||
Codec = "AAC",
|
||||
IsExternal = true
|
||||
});
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(Get_DisplayTitle_TestData))]
|
||||
public void Get_DisplayTitle_should_return_valid_title(MediaStream mediaStream, string expected)
|
||||
public void Get_DisplayTitle_should_return_valid_title(string expected, MediaStream mediaStream)
|
||||
{
|
||||
Assert.Equal(expected, mediaStream.DisplayTitle);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user