aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model
diff options
context:
space:
mode:
authorCody Robibero <cody@robibe.ro>2026-09-06 07:34:30 -0400
committerGitHub <noreply@github.com>2026-09-06 07:34:30 -0400
commitedb6cd11da0c3772ff897757a8364b309e6f7e1a (patch)
tree939047416b59c5f69722c0190c098b8b1ee70017 /MediaBrowser.Model
parent63553803b19446ea9b5cb9b335015ab8727a3799 (diff)
parenta0a42c630ef724fa92b61b261eab8132cb3116d7 (diff)
Merge branch 'master' into fix-code-migration
Diffstat (limited to 'MediaBrowser.Model')
-rw-r--r--MediaBrowser.Model/Dlna/StreamBuilder.cs10
1 files changed, 10 insertions, 0 deletions
diff --git a/MediaBrowser.Model/Dlna/StreamBuilder.cs b/MediaBrowser.Model/Dlna/StreamBuilder.cs
index ab8d5dd5b2..4799ed5410 100644
--- a/MediaBrowser.Model/Dlna/StreamBuilder.cs
+++ b/MediaBrowser.Model/Dlna/StreamBuilder.cs
@@ -26,6 +26,8 @@ namespace MediaBrowser.Model.Dlna
internal const TranscodeReason VideoReasons = TranscodeReason.VideoCodecNotSupported | VideoCodecReasons;
internal const TranscodeReason DirectStreamReasons = AudioReasons | TranscodeReason.ContainerNotSupported | TranscodeReason.VideoCodecTagNotSupported;
+ private const string ManifestContainers = "hls,applehttp,dash";
+
private readonly ILogger _logger;
private readonly ITranscoderSupport _transcoderSupport;
private static readonly string[] _supportedHlsVideoCodecs = ["h264", "hevc", "vp9", "av1"];
@@ -718,6 +720,14 @@ namespace MediaBrowser.Model.Dlna
isEligibleForDirectPlay = false;
}
+ // A manifest is not a byte stream, so it cannot be handed to the client as one. The variant
+ // and segment URIs inside it are relative to the origin and do not resolve against the
+ // Jellyfin url the client would fetch it from.
+ if (ContainerHelper.ContainsContainer(ManifestContainers, item.Container))
+ {
+ isEligibleForDirectPlay = false;
+ }
+
if (bitrateLimitExceeded)
{
transcodeReasons = TranscodeReason.ContainerBitrateExceedsLimit;