diff --git a/Emby.Server.Implementations/Dto/DtoService.cs b/Emby.Server.Implementations/Dto/DtoService.cs
index f8cf00cb3b..67ecdb4ea7 100644
--- a/Emby.Server.Implementations/Dto/DtoService.cs
+++ b/Emby.Server.Implementations/Dto/DtoService.cs
@@ -1057,7 +1057,7 @@ namespace Emby.Server.Implementations.Dto
if (options.ContainsField(ItemFields.SpecialFeatureCount))
{
allExtras = item.GetExtras().ToArray();
- dto.SpecialFeatureCount = allExtras.Count(i => BaseItem.DisplayExtraTypes.Contains(i.ExtraType));
+ dto.SpecialFeatureCount = allExtras.Count(i => i.ExtraType.HasValue && BaseItem.DisplayExtraTypes.Contains(i.ExtraType.Value));
}
if (options.ContainsField(ItemFields.LocalTrailerCount))
diff --git a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
index 21d2fc9923..4cd201c3b0 100644
--- a/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
+++ b/MediaBrowser.Api/UserLibrary/UserLibraryService.cs
@@ -381,7 +381,7 @@ namespace MediaBrowser.Api.UserLibrary
var dtoOptions = GetDtoOptions(_authContext, request);
- var dtosExtras = item.GetExtras(new ExtraType?[] { ExtraType.Trailer })
+ var dtosExtras = item.GetExtras(new ExtraType[] { ExtraType.Trailer })
.Select(i => _dtoService.GetBaseItemDto(i, dtoOptions, user, item))
.ToArray();
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 2424293fe1..cfc80ac095 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -1329,7 +1329,7 @@ namespace MediaBrowser.Controller.Entities
// Use some hackery to get the extra type based on foldername
item.ExtraType = Enum.TryParse(extraFolderName.Replace(" ", ""), true, out ExtraType extraType)
? extraType
- : (ExtraType?)null;
+ : Model.Entities.ExtraType.Unknown;
return item;
@@ -2896,12 +2896,12 @@ namespace MediaBrowser.Controller.Entities
///
/// The types of extras to retrieve.
/// An enumerable containing the extras.
- public IEnumerable GetExtras(IReadOnlyCollection extraTypes)
+ public IEnumerable GetExtras(IReadOnlyCollection extraTypes)
{
return ExtraIds
.Select(LibraryManager.GetItemById)
.Where(i => i != null)
- .Where(i => extraTypes.Contains(i.ExtraType));
+ .Where(i => i.ExtraType.HasValue && extraTypes.Contains(i.ExtraType.Value));
}
public IEnumerable GetTrailers()
@@ -2932,10 +2932,9 @@ namespace MediaBrowser.Controller.Entities
///
/// Extra types that should be counted and displayed as "Special Features" in the UI.
///
- public static readonly IReadOnlyCollection DisplayExtraTypes = new HashSet
+ public static readonly IReadOnlyCollection DisplayExtraTypes = new HashSet
{
- null,
- 0,
+ Model.Entities.ExtraType.Unknown,
Model.Entities.ExtraType.BehindTheScenes,
Model.Entities.ExtraType.Clip,
Model.Entities.ExtraType.DeletedScene,
diff --git a/MediaBrowser.Model/Entities/ExtraType.cs b/MediaBrowser.Model/Entities/ExtraType.cs
index 857e92adbe..aca4bd2829 100644
--- a/MediaBrowser.Model/Entities/ExtraType.cs
+++ b/MediaBrowser.Model/Entities/ExtraType.cs
@@ -4,6 +4,7 @@ namespace MediaBrowser.Model.Entities
{
public enum ExtraType
{
+ Unknown = 0,
Clip = 1,
Trailer = 2,
BehindTheScenes = 3,