diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-19 22:03:37 -0400 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2013-09-19 22:03:37 -0400 |
| commit | 21e9a7950e1047310dc62e26198c7bac91446baa (patch) | |
| tree | fffaa7ea0a38d0483faf5ba55e7b4508f03a4d9f | |
| parent | 6cab9dc2275785274200fa7fc70703d111ed701f (diff) | |
subtitle fixes
| -rw-r--r-- | MediaBrowser.Api/Playback/BaseStreamingService.cs | 5 | ||||
| -rw-r--r-- | MediaBrowser.Controller/Entities/Folder.cs | 61 | ||||
| -rw-r--r-- | MediaBrowser.Providers/MediaInfo/FFProbeVideoInfoProvider.cs | 2 | ||||
| -rw-r--r-- | Nuget/MediaBrowser.Common.Internal.nuspec | 4 | ||||
| -rw-r--r-- | Nuget/MediaBrowser.Common.nuspec | 2 | ||||
| -rw-r--r-- | Nuget/MediaBrowser.Server.Core.nuspec | 4 |
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> |
