mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-09-07 03:48:06 +02:00
update MediaSourceManager
This commit is contained in:
parent
7d36543318
commit
1bd9ae8609
1 changed files with 2 additions and 34 deletions
|
@ -68,23 +68,12 @@ namespace MediaBrowser.Server.Implementations.Library
|
||||||
|
|
||||||
if (stream.IsTextSubtitleStream)
|
if (stream.IsTextSubtitleStream)
|
||||||
{
|
{
|
||||||
return InternalTextStreamSupportsExternalStream(stream);
|
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue