subtitle fixes

This commit is contained in:
Luke Pulverenti 2013-09-19 22:03:37 -04:00
parent 6cab9dc227
commit 21e9a7950e
6 changed files with 49 additions and 29 deletions

View file

@ -256,7 +256,10 @@ namespace MediaBrowser.Api.Playback
if (state.SubtitleStream != null) 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); assSubtitleParam = GetTextSubtitleParam((Video)state.Item, state.SubtitleStream, request.StartTimeTicks, performTextSubtitleConversion);
} }

View file

@ -951,15 +951,39 @@ namespace MediaBrowser.Controller.Entities
return result; 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) 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 list;
return children.AsParallel().Where(c => c.IsVisible(user)).AsEnumerable();
} }
/// <summary> /// <summary>
@ -976,42 +1000,35 @@ namespace MediaBrowser.Controller.Entities
throw new ArgumentNullException(); throw new ArgumentNullException();
} }
var children = GetRecursiveChildrenInternal(user, includeLinkedChildren); var list = new List<BaseItem>(10000);
AddRecursiveChildrenInternal(user, includeLinkedChildren, list);
if (includeLinkedChildren) if (includeLinkedChildren)
{ {
children = children.Distinct(); list = list.Distinct().ToList();
} }
return children; return list;
} }
/// <summary> /// <summary>
/// Gets allowed recursive children of an item /// Adds the recursive children internal.
/// </summary> /// </summary>
/// <param name="user">The user.</param> /// <param name="user">The user.</param>
/// <param name="includeLinkedChildren">if set to <c>true</c> [include linked children].</param> /// <param name="includeLinkedChildren">if set to <c>true</c> [include linked children].</param>
/// <returns>IEnumerable{BaseItem}.</returns> /// <param name="list">The list.</param>
/// <exception cref="System.ArgumentNullException"></exception> private void AddRecursiveChildrenInternal(User user, bool includeLinkedChildren, List<BaseItem> list)
private IEnumerable<BaseItem> GetRecursiveChildrenInternal(User user, bool includeLinkedChildren)
{ {
if (user == null) foreach (var item in GetChildrenList(user, includeLinkedChildren))
{ {
throw new ArgumentNullException(); list.Add(item);
}
foreach (var item in GetChildren(user, includeLinkedChildren))
{
yield return item;
var subFolder = item as Folder; var subFolder = item as Folder;
if (subFolder != null) if (subFolder != null)
{ {
foreach (var subitem in subFolder.GetRecursiveChildrenInternal(user, includeLinkedChildren)) subFolder.AddRecursiveChildrenInternal(user, includeLinkedChildren, list);
{
yield return subitem;
}
} }
} }
} }

View file

@ -482,7 +482,7 @@ namespace MediaBrowser.Providers.MediaInfo
Type = MediaStreamType.Subtitle, Type = MediaStreamType.Subtitle,
IsExternal = true, IsExternal = true,
Path = fullName, Path = fullName,
Codec = "srt", Codec = Path.GetExtension(fullName).ToLower().TrimStart('.'),
Language = language Language = language
}); });
} }

View file

@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata> <metadata>
<id>MediaBrowser.Common.Internal</id> <id>MediaBrowser.Common.Internal</id>
<version>3.0.203</version> <version>3.0.204</version>
<title>MediaBrowser.Common.Internal</title> <title>MediaBrowser.Common.Internal</title>
<authors>Luke</authors> <authors>Luke</authors>
<owners>ebr,Luke,scottisafool</owners> <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> <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> <copyright>Copyright © Media Browser 2013</copyright>
<dependencies> <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="NLog" version="2.0.1.2" />
<dependency id="ServiceStack.Text" version="3.9.58" /> <dependency id="ServiceStack.Text" version="3.9.58" />
<dependency id="SimpleInjector" version="2.3.2" /> <dependency id="SimpleInjector" version="2.3.2" />

View file

@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"> <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata> <metadata>
<id>MediaBrowser.Common</id> <id>MediaBrowser.Common</id>
<version>3.0.203</version> <version>3.0.204</version>
<title>MediaBrowser.Common</title> <title>MediaBrowser.Common</title>
<authors>Media Browser Team</authors> <authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners> <owners>ebr,Luke,scottisafool</owners>

View file

@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata> <metadata>
<id>MediaBrowser.Server.Core</id> <id>MediaBrowser.Server.Core</id>
<version>3.0.203</version> <version>3.0.204</version>
<title>Media Browser.Server.Core</title> <title>Media Browser.Server.Core</title>
<authors>Media Browser Team</authors> <authors>Media Browser Team</authors>
<owners>ebr,Luke,scottisafool</owners> <owners>ebr,Luke,scottisafool</owners>
@ -12,7 +12,7 @@
<description>Contains core components required to build plugins for Media Browser Server.</description> <description>Contains core components required to build plugins for Media Browser Server.</description>
<copyright>Copyright © Media Browser 2013</copyright> <copyright>Copyright © Media Browser 2013</copyright>
<dependencies> <dependencies>
<dependency id="MediaBrowser.Common" version="3.0.203" /> <dependency id="MediaBrowser.Common" version="3.0.204" />
</dependencies> </dependencies>
</metadata> </metadata>
<files> <files>