update MediaSourceManager

This commit is contained in:
Luke Pulverenti 2015-12-14 08:54:21 -05:00
parent 7d36543318
commit 1bd9ae8609

View file

@ -68,23 +68,12 @@ namespace MediaBrowser.Server.Implementations.Library
if (stream.IsTextSubtitleStream) if (stream.IsTextSubtitleStream)
{ {
return InternalTextStreamSupportsExternalStream(stream); return true;
} }
return false; return false;
} }
private bool InternalTextStreamSupportsExternalStream(MediaStream stream)
{
// These usually have styles and fonts that won't convert to text very well
if (string.Equals(stream.Codec, "ass", StringComparison.OrdinalIgnoreCase))
{
return false;
}
return true;
}
public IEnumerable<MediaStream> GetMediaStreams(string mediaSourceId) public IEnumerable<MediaStream> GetMediaStreams(string mediaSourceId)
{ {
var list = GetMediaStreams(new MediaStreamQuery var list = GetMediaStreams(new MediaStreamQuery
@ -105,11 +94,6 @@ namespace MediaBrowser.Server.Implementations.Library
return GetMediaStreamsForItem(list); return GetMediaStreamsForItem(list);
} }
private int GetMaxAllowedBitrateForExternalSubtitleStream()
{
return 30000000;
}
private IEnumerable<MediaStream> GetMediaStreamsForItem(IEnumerable<MediaStream> streams) private IEnumerable<MediaStream> GetMediaStreamsForItem(IEnumerable<MediaStream> streams)
{ {
var list = streams.ToList(); var list = streams.ToList();
@ -120,25 +104,9 @@ namespace MediaBrowser.Server.Implementations.Library
if (subtitleStreams.Count > 0) if (subtitleStreams.Count > 0)
{ {
var videoStream = list.FirstOrDefault(i => i.Type == MediaStreamType.Video);
int maxAllowedBitrateForExternalSubtitleStream = GetMaxAllowedBitrateForExternalSubtitleStream();
var videoBitrate = videoStream == null ? maxAllowedBitrateForExternalSubtitleStream : videoStream.BitRate ?? maxAllowedBitrateForExternalSubtitleStream;
foreach (var subStream in subtitleStreams) foreach (var subStream in subtitleStreams)
{ {
var supportsExternalStream = StreamSupportsExternalStream(subStream); subStream.SupportsExternalStream = StreamSupportsExternalStream(subStream);
if (!subStream.IsExternal)
{
if (supportsExternalStream && videoBitrate >= maxAllowedBitrateForExternalSubtitleStream)
{
supportsExternalStream = false;
}
}
subStream.SupportsExternalStream = supportsExternalStream;
} }
} }