aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Dlna
diff options
context:
space:
mode:
authorDmitry Lyzo <ashephard0@gmail.com>2023-01-22 14:05:37 -0500
committerJoshua M. Boniface <joshua@boniface.me>2023-01-22 14:05:37 -0500
commit28b98cacc8e96455a600153388bfdddc940b9992 (patch)
treed764244c65ec94f299462d1d24658393cb10bf79 /MediaBrowser.Model/Dlna
parentd6f44818e43df5a454a4277b2aee76c22371fa4a (diff)
Backport pull request #9051 from jellyfin/release-10.8.z
Fix transcode reasons Original-merge: 1dea309ae4a1eb00f7f5a7d4c91a235963fd069e Merged-by: Joshua M. Boniface <joshua@boniface.me> Backported-by: Joshua M. Boniface <joshua@boniface.me>
Diffstat (limited to 'MediaBrowser.Model/Dlna')
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs14
1 files changed, 11 insertions, 3 deletions
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs
index bb41c99795..62d67c0257 100644
--- a/MediaBrowser.Model/Dlna/StreamBuilder.cs
+++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs
@@ -1174,7 +1174,6 @@ namespace MediaBrowser.Model.Dlna
var reason = a & flag;
if (reason != 0)
{
- a = reason;
return index;
}
@@ -1184,6 +1183,8 @@ namespace MediaBrowser.Model.Dlna
return index;
};
+ var containerSupported = false;
+
// Check DirectPlay profiles to see if it can be direct played
var analyzedProfiles = profile.DirectPlayProfiles
.Where(directPlayProfile => directPlayProfile.Type == DlnaProfileType.Video)
@@ -1197,6 +1198,10 @@ namespace MediaBrowser.Model.Dlna
{
directPlayProfileReasons |= TranscodeReason.ContainerNotSupported;
}
+ else
+ {
+ containerSupported = true;
+ }
// Check video codec
string videoCodec = videoStream?.Codec;
@@ -1239,7 +1244,7 @@ namespace MediaBrowser.Model.Dlna
{
playMethod = PlayMethod.DirectPlay;
}
- else if (directStreamFailureReasons == 0 && isEligibleForDirectStream && mediaSource.SupportsDirectStream && directPlayProfile is not null)
+ else if (directStreamFailureReasons == 0 && isEligibleForDirectStream && mediaSource.SupportsDirectStream)
{
playMethod = PlayMethod.DirectStream;
}
@@ -1261,7 +1266,10 @@ namespace MediaBrowser.Model.Dlna
return profileMatch;
}
- var failureReasons = analyzedProfiles[false].Select(analysis => analysis.Result).FirstOrDefault().TranscodeReason;
+ var failureReasons = analyzedProfiles[false]
+ .Select(analysis => analysis.Result)
+ .Where(result => !containerSupported || (result.TranscodeReason & TranscodeReason.ContainerNotSupported) == 0)
+ .FirstOrDefault().TranscodeReason;
if (failureReasons == 0)
{
failureReasons = TranscodeReason.DirectPlayError;