|
@@ -152,16 +152,7 @@ namespace MediaBrowser.Controller.Entities
|
|
{
|
|
{
|
|
get
|
|
get
|
|
{
|
|
{
|
|
- if (!string.IsNullOrEmpty(PrimaryVersionId))
|
|
|
|
- {
|
|
|
|
- var item = LibraryManager.GetItemById(PrimaryVersionId);
|
|
|
|
- if (item is Video video)
|
|
|
|
- {
|
|
|
|
- return video.MediaSourceCount;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1;
|
|
|
|
|
|
+ return GetMediaSourceCount(new HashSet<Guid>());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -550,5 +541,25 @@ namespace MediaBrowser.Controller.Entities
|
|
|
|
|
|
return list;
|
|
return list;
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ private int GetMediaSourceCount(HashSet<Guid> callstack)
|
|
|
|
+ {
|
|
|
|
+ if (!string.IsNullOrEmpty(PrimaryVersionId))
|
|
|
|
+ {
|
|
|
|
+ var item = LibraryManager.GetItemById(PrimaryVersionId);
|
|
|
|
+ if (item is Video video)
|
|
|
|
+ {
|
|
|
|
+ if (callstack.Contains(video.Id))
|
|
|
|
+ {
|
|
|
|
+ return video.LinkedAlternateVersions.Length + video.LocalAlternateVersions.Length + 1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ callstack.Add(video.Id);
|
|
|
|
+ return video.GetMediaSourceCount(callstack);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|