aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-19 22:03:37 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-09-19 22:03:37 -0400
commit21e9a7950e1047310dc62e26198c7bac91446baa (patch)
treefffaa7ea0a38d0483faf5ba55e7b4508f03a4d9f
parent6cab9dc2275785274200fa7fc70703d111ed701f (diff)
subtitle fixes
-rw-r--r--MediaBrowser.Api/Playback/BaseStreamingService.cs5
-rw-r--r--MediaBrowser.Controller/Entities/Folder.cs61
-rw-r--r--MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs2
-rw-r--r--Nuget/MediaBrowser.Common.Internal.nuspec4
-rw-r--r--Nuget/MediaBrowser.Common.nuspec2
-rw-r--r--Nuget/MediaBrowser.Server.Core.nuspec4
6 files changed, 49 insertions, 29 deletions
diff --git a/MediaBrowser.Api/Playback/BaseStreamingService.cs b/MediaBrowser.Api/Playback/BaseStreamingService.cs
index 73518afe16..e31a112d5a 100644
--- a/MediaBrowser.Api/Playback/BaseStreamingService.cs
+++ b/MediaBrowser.Api/Playback/BaseStreamingService.cs
@@ -256,7 +256,10 @@ namespace MediaBrowser.Api.Playback
if (state.SubtitleStream != null)
{
- if (state.SubtitleStream.Codec.IndexOf("srt", StringComparison.OrdinalIgnoreCase) != -1 || state.SubtitleStream.Codec.IndexOf("subrip", StringComparison.OrdinalIgnoreCase) != -1)
+ if (state.SubtitleStream.Codec.IndexOf("srt", StringComparison.OrdinalIgnoreCase) != -1 ||
+ state.SubtitleStream.Codec.IndexOf("subrip", StringComparison.OrdinalIgnoreCase) != -1 ||
+ string.Equals(state.SubtitleStream.Codec, "ass", StringComparison.OrdinalIgnoreCase) ||
+ string.Equals(state.SubtitleStream.Codec, "ssa", StringComparison.OrdinalIgnoreCase))
{
assSubtitleParam = GetTextSubtitleParam((Video)state.Item, state.SubtitleStream, request.StartTimeTicks, performTextSubtitleConversion);
}
diff --git a/MediaBrowser.Controller/Entities/Folder.cs b/MediaBrowser.Controller/Entities/Folder.cs
index 855bbb2058..77cdfa0855 100644
--- a/MediaBrowser.Controller/Entities/Folder.cs
+++ b/MediaBrowser.Controller/Entities/Folder.cs
@@ -951,15 +951,39 @@ namespace MediaBrowser.Controller.Entities
return result;
}
- var children = Children;
+ return GetChildrenList(user, includeLinkedChildren);
+ }
+
+ /// <summary>
+ /// Gets the children list.
+ /// </summary>
+ /// <param name="user">The user.</param>
+ /// <param name="includeLinkedChildren">if set to <c>true</c> [include linked children].</param>
+ /// <returns>List{BaseItem}.</returns>
+ private List<BaseItem> GetChildrenList(User user, bool includeLinkedChildren)
+ {
+ var list = new List<BaseItem>();
+
+ foreach (var child in Children)
+ {
+ if (child.IsVisible(user))
+ {
+ list.Add(child);
+ }
+ }
if (includeLinkedChildren)
{
- children = children.Concat(GetLinkedChildren());
+ foreach (var child in GetLinkedChildren())
+ {
+ if (child.IsVisible(user))
+ {
+ list.Add(child);
+ }
+ }
}
- // If indexed is false or the indexing function is null
- return children.AsParallel().Where(c => c.IsVisible(user)).AsEnumerable();
+ return list;
}
/// <summary>
@@ -976,42 +1000,35 @@ namespace MediaBrowser.Controller.Entities
throw new ArgumentNullException();
}
- var children = GetRecursiveChildrenInternal(user, includeLinkedChildren);
+ var list = new List<BaseItem>(10000);
+
+ AddRecursiveChildrenInternal(user, includeLinkedChildren, list);
if (includeLinkedChildren)
{
- children = children.Distinct();
+ list = list.Distinct().ToList();
}
- return children;
+ return list;
}
/// <summary>
- /// Gets allowed recursive children of an item
+ /// Adds the recursive children internal.
/// </summary>
/// <param name="user">The user.</param>
/// <param name="includeLinkedChildren">if set to <c>true</c> [include linked children].</param>
- /// <returns>IEnumerable{BaseItem}.</returns>
- /// <exception cref="System.ArgumentNullException"></exception>
- private IEnumerable<BaseItem> GetRecursiveChildrenInternal(User user, bool includeLinkedChildren)
+ /// <param name="list">The list.</param>
+ private void AddRecursiveChildrenInternal(User user, bool includeLinkedChildren, List<BaseItem> list)
{
- if (user == null)
+ foreach (var item in GetChildrenList(user, includeLinkedChildren))
{
- throw new ArgumentNullException();
- }
-
- foreach (var item in GetChildren(user, includeLinkedChildren))
- {
- yield return item;
+ list.Add(item);
var subFolder = item as Folder;
if (subFolder != null)
{
- foreach (var subitem in subFolder.GetRecursiveChildrenInternal(user, includeLinkedChildren))
- {
- yield return subitem;
- }
+ subFolder.AddRecursiveChildrenInternal(user, includeLinkedChildren, list);
}
}
}
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs
index f39f6bec58..59c3d75e52 100644
--- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs
+++ b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs
@@ -482,7 +482,7 @@ namespace MediaBrowser.Providers.MediaInfo
Type = MediaStreamType.Subtitle,
IsExternal = true,
Path = fullName,
- Codec = "srt",
+ Codec = Path.GetExtension(fullName).ToLower().TrimStart('.'),
Language = language
});
}
diff --git a/Nuget/MediaBrowser.Common.Internal.nuspec b/Nuget/MediaBrowser.Common.Internal.nuspec
index 00c31ba5e2..daa03d1cd1 100644
--- a/Nuget/MediaBrowser.Common.Internal.nuspec
+++ b/Nuget/MediaBrowser.Common.Internal.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common.Internal</id>
- <version>3.0.203</version>
+ <version>3.0.204</version>
<title>MediaBrowser.Common.Internal</title>
<authors>Luke</authors>
<owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
<description>Contains common components shared by Media Browser Theater and Media Browser Server. Not intended for plugin developer consumption.</description>
<copyright>Copyright © Media Browser 2013</copyright>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.203" />
+ <dependency id="MediaBrowser.Common" version="3.0.204" />
<dependency id="NLog" version="2.0.1.2" />
<dependency id="ServiceStack.Text" version="3.9.58" />
<dependency id="SimpleInjector" version="2.3.2" />
diff --git a/Nuget/MediaBrowser.Common.nuspec b/Nuget/MediaBrowser.Common.nuspec
index 94d3b61312..500f5c84f2 100644
--- a/Nuget/MediaBrowser.Common.nuspec
+++ b/Nuget/MediaBrowser.Common.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>MediaBrowser.Common</id>
- <version>3.0.203</version>
+ <version>3.0.204</version>
<title>MediaBrowser.Common</title>
<authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners>
diff --git a/Nuget/MediaBrowser.Server.Core.nuspec b/Nuget/MediaBrowser.Server.Core.nuspec
index 72aa871bfb..44f8acd09b 100644
--- a/Nuget/MediaBrowser.Server.Core.nuspec
+++ b/Nuget/MediaBrowser.Server.Core.nuspec
@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>MediaBrowser.Server.Core</id>
- <version>3.0.203</version>
+ <version>3.0.204</version>
<title>Media Browser.Server.Core</title>
<authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners>
@@ -12,7 +12,7 @@
<description>Contains core components required to build plugins for Media Browser Server.</description>
<copyright>Copyright © Media Browser 2013</copyright>
<dependencies>
- <dependency id="MediaBrowser.Common" version="3.0.203" />
+ <dependency id="MediaBrowser.Common" version="3.0.204" />
</dependencies>
</metadata>
<files>