Use embedded title for other track types

This commit is contained in:
Pika 2020-04-06 13:49:35 -04:00
parent 0cd7cd611e
commit 1cf31229d8

View file

@ -77,19 +77,17 @@ namespace MediaBrowser.Model.Entities
{ {
get get
{ {
if (Type == MediaStreamType.Audio) switch (Type)
{
case MediaStreamType.Audio:
{ {
//if (!string.IsNullOrEmpty(Title))
//{
// return AddLanguageIfNeeded(Title);
//}
var attributes = new List<string>(); var attributes = new List<string>();
if (!string.IsNullOrEmpty(Language)) if (!string.IsNullOrEmpty(Language))
{ {
attributes.Add(StringHelper.FirstToUpper(Language)); attributes.Add(StringHelper.FirstToUpper(Language));
} }
if (!string.IsNullOrEmpty(Codec) && !string.Equals(Codec, "dca", StringComparison.OrdinalIgnoreCase)) if (!string.IsNullOrEmpty(Codec) && !string.Equals(Codec, "dca", StringComparison.OrdinalIgnoreCase))
{ {
attributes.Add(AudioCodec.GetFriendlyName(Codec)); attributes.Add(AudioCodec.GetFriendlyName(Codec));
@ -107,15 +105,26 @@ namespace MediaBrowser.Model.Entities
{ {
attributes.Add(Channels.Value.ToString(CultureInfo.InvariantCulture) + " ch"); attributes.Add(Channels.Value.ToString(CultureInfo.InvariantCulture) + " ch");
} }
if (IsDefault) if (IsDefault)
{ {
attributes.Add("Default"); attributes.Add(string.IsNullOrEmpty(localizedDefault) ? "Default" : localizedDefault);
}
if (!string.IsNullOrEmpty(Title))
{
return attributes.AsEnumerable()
// keep Tags that are not already in Title
.Where(tag => Title.IndexOf(tag, StringComparison.OrdinalIgnoreCase) == -1)
// attributes concatenation, starting with Title
.Aggregate(new StringBuilder(Title), (builder, attr) => builder.Append(" - ").Append(attr))
.ToString();
} }
return string.Join(" ", attributes); return string.Join(" ", attributes);
} }
if (Type == MediaStreamType.Video) case MediaStreamType.Video:
{ {
var attributes = new List<string>(); var attributes = new List<string>();
@ -131,12 +140,21 @@ namespace MediaBrowser.Model.Entities
attributes.Add(Codec.ToUpperInvariant()); attributes.Add(Codec.ToUpperInvariant());
} }
if (!string.IsNullOrEmpty(Title))
{
return attributes.AsEnumerable()
// keep Tags that are not already in Title
.Where(tag => Title.IndexOf(tag, StringComparison.OrdinalIgnoreCase) == -1)
// attributes concatenation, starting with Title
.Aggregate(new StringBuilder(Title), (builder, attr) => builder.Append(" - ").Append(attr))
.ToString();
}
return string.Join(" ", attributes); return string.Join(" ", attributes);
} }
if (Type == MediaStreamType.Subtitle) case MediaStreamType.Subtitle:
{ {
var attributes = new List<string>(); var attributes = new List<string>();
if (!string.IsNullOrEmpty(Language)) if (!string.IsNullOrEmpty(Language))
@ -171,14 +189,11 @@ namespace MediaBrowser.Model.Entities
return string.Join(" - ", attributes.ToArray()); return string.Join(" - ", attributes.ToArray());
} }
if (Type == MediaStreamType.Video) default:
{
}
return null; return null;
} }
} }
}
private string GetResolutionText() private string GetResolutionText()
{ {