update StreamBuilder

This commit is contained in:
Luke Pulverenti 2015-09-20 11:48:44 -04:00
parent 9db6f610c6
commit b604683583

View File

@ -157,7 +157,7 @@ namespace MediaBrowser.Model.Dlna
if (all) if (all)
{ {
if (item.Protocol == MediaProtocol.File && if (item.Protocol == MediaProtocol.File &&
directPlayMethods.Contains(PlayMethod.DirectPlay) && directPlayMethods.Contains(PlayMethod.DirectPlay) &&
_localPlayer.CanAccessFile(item.Path)) _localPlayer.CanAccessFile(item.Path))
{ {
playlistItem.PlayMethod = PlayMethod.DirectPlay; playlistItem.PlayMethod = PlayMethod.DirectPlay;
@ -288,7 +288,7 @@ namespace MediaBrowser.Model.Dlna
{ {
_logger.Debug("Profile: {0}, No direct play profiles found for Path: {1}", _logger.Debug("Profile: {0}, No direct play profiles found for Path: {1}",
options.Profile.Name ?? "Unknown Profile", options.Profile.Name ?? "Unknown Profile",
item.Path ?? "Unknown path"); item.Path ?? "Unknown path");
} }
return playMethods; return playMethods;
@ -306,7 +306,7 @@ namespace MediaBrowser.Model.Dlna
{ {
highestScore = stream.Score.Value; highestScore = stream.Score.Value;
} }
} }
} }
List<MediaStream> topStreams = new List<MediaStream>(); List<MediaStream> topStreams = new List<MediaStream>();
@ -540,8 +540,8 @@ namespace MediaBrowser.Model.Dlna
{ {
_logger.Debug("Profile: {0}, No direct play profiles found for Path: {1}", _logger.Debug("Profile: {0}, No direct play profiles found for Path: {1}",
profile.Name ?? "Unknown Profile", profile.Name ?? "Unknown Profile",
mediaSource.Path ?? "Unknown path"); mediaSource.Path ?? "Unknown path");
return null; return null;
} }
@ -658,7 +658,7 @@ namespace MediaBrowser.Model.Dlna
if (!conditionProcessor.IsVideoAudioConditionSatisfied(i, audioChannels, audioBitrate, audioProfile, isSecondaryAudio)) if (!conditionProcessor.IsVideoAudioConditionSatisfied(i, audioChannels, audioBitrate, audioProfile, isSecondaryAudio))
{ {
LogConditionFailure(profile, "VideoAudioCodecProfile", i, mediaSource); LogConditionFailure(profile, "VideoAudioCodecProfile", i, mediaSource);
return null; return null;
} }
} }
@ -725,7 +725,7 @@ namespace MediaBrowser.Model.Dlna
public static SubtitleProfile GetSubtitleProfile(MediaStream subtitleStream, SubtitleProfile[] subtitleProfiles, EncodingContext context, PlayMethod playMethod) public static SubtitleProfile GetSubtitleProfile(MediaStream subtitleStream, SubtitleProfile[] subtitleProfiles, EncodingContext context, PlayMethod playMethod)
{ {
if (playMethod != PlayMethod.Transcode) if (playMethod != PlayMethod.Transcode && !subtitleStream.IsExternal)
{ {
// Look for supported embedded subs // Look for supported embedded subs
foreach (SubtitleProfile profile in subtitleProfiles) foreach (SubtitleProfile profile in subtitleProfiles)
@ -750,23 +750,26 @@ namespace MediaBrowser.Model.Dlna
// Look for an external profile that matches the stream type (text/graphical) // Look for an external profile that matches the stream type (text/graphical)
foreach (SubtitleProfile profile in subtitleProfiles) foreach (SubtitleProfile profile in subtitleProfiles)
{ {
bool requiresConversion = !StringHelper.EqualsIgnoreCase(subtitleStream.Codec, profile.Format); if (profile.Method != SubtitleDeliveryMethod.External)
{
continue;
}
if (!profile.SupportsLanguage(subtitleStream.Language)) if (!profile.SupportsLanguage(subtitleStream.Language))
{ {
continue; continue;
} }
if (profile.Method == SubtitleDeliveryMethod.External && subtitleStream.IsTextSubtitleStream == MediaStream.IsTextFormat(profile.Format)) if (subtitleStream.IsTextSubtitleStream == MediaStream.IsTextFormat(profile.Format))
{ {
if (!requiresConversion) bool requiresConversion = !StringHelper.EqualsIgnoreCase(subtitleStream.Codec, profile.Format);
{
return profile;
}
if (subtitleStream.SupportsExternalStream) if (subtitleStream.IsTextSubtitleStream || !requiresConversion)
{ {
return profile; if (subtitleStream.SupportsExternalStream)
{
return profile;
}
} }
// For sync we can handle the longer extraction times // For sync we can handle the longer extraction times