diff options
| author | cvium <clausvium@gmail.com> | 2021-12-21 14:35:58 +0100 |
|---|---|---|
| committer | cvium <clausvium@gmail.com> | 2021-12-21 14:35:58 +0100 |
| commit | a7a7173cd5440bb1ef930ae631fd91f684de0d5f (patch) | |
| tree | 1437a5c35c9074406dcf2d23271963956903bdb6 | |
| parent | cb41dda5b3473714950a6540c4dec18e0c31c6ed (diff) | |
Force a remux/transcode with external audio files
| -rw-r--r-- | MediaBrowser.Model/Dlna/StreamBuilder.cs | 16 | ||||
| -rw-r--r-- | MediaBrowser.Model/Session/TranscodeReason.cs | 3 |
2 files changed, 15 insertions, 4 deletions
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs index 322cc367b..e0ca885cc 100644 --- a/MediaBrowser.Model/Dlna/StreamBuilder.cs +++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs @@ -677,8 +677,8 @@ namespace MediaBrowser.Model.Dlna var videoStream = item.VideoStream; // TODO: This doesn't account for situations where the device is able to handle the media's bitrate, but the connection isn't fast enough - var directPlayEligibilityResult = IsEligibleForDirectPlay(item, GetBitrateForDirectPlayCheck(item, options, true) ?? 0, subtitleStream, options, PlayMethod.DirectPlay); - var directStreamEligibilityResult = IsEligibleForDirectPlay(item, options.GetMaxBitrate(false) ?? 0, subtitleStream, options, PlayMethod.DirectStream); + var directPlayEligibilityResult = IsEligibleForDirectPlay(item, GetBitrateForDirectPlayCheck(item, options, true) ?? 0, subtitleStream, audioStream, options, PlayMethod.DirectPlay); + var directStreamEligibilityResult = IsEligibleForDirectPlay(item, options.GetMaxBitrate(false) ?? 0, subtitleStream, audioStream, options, PlayMethod.DirectStream); bool isEligibleForDirectPlay = options.EnableDirectPlay && (options.ForceDirectPlay || directPlayEligibilityResult.Item1); bool isEligibleForDirectStream = options.EnableDirectStream && (options.ForceDirectStream || directStreamEligibilityResult.Item1); @@ -1213,6 +1213,7 @@ namespace MediaBrowser.Model.Dlna MediaSourceInfo item, long maxBitrate, MediaStream subtitleStream, + MediaStream audioStream, VideoOptions options, PlayMethod playMethod) { @@ -1228,8 +1229,17 @@ namespace MediaBrowser.Model.Dlna } bool result = IsAudioEligibleForDirectPlay(item, maxBitrate, playMethod); + if (!result) + { + return (false, TranscodeReason.ContainerBitrateExceedsLimit); + } + + if (audioStream.IsExternal) + { + return (false, TranscodeReason.AudioIsExternal); + } - return (result, result ? null : TranscodeReason.ContainerBitrateExceedsLimit); + return (true, null); } public static SubtitleProfile GetSubtitleProfile( diff --git a/MediaBrowser.Model/Session/TranscodeReason.cs b/MediaBrowser.Model/Session/TranscodeReason.cs index e93b5d288..3c95df66d 100644 --- a/MediaBrowser.Model/Session/TranscodeReason.cs +++ b/MediaBrowser.Model/Session/TranscodeReason.cs @@ -26,6 +26,7 @@ namespace MediaBrowser.Model.Session VideoProfileNotSupported = 19, AudioBitDepthNotSupported = 20, SubtitleCodecNotSupported = 21, - DirectPlayError = 22 + DirectPlayError = 22, + AudioIsExternal = 23 } } |
