aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCody Robibero <cody@robibe.ro>2022-05-24 14:01:40 -0600
committercrobibero <cody@robibe.ro>2022-05-26 13:36:46 -0400
commit97b3166ead0a71d5badf6fa3d4f4ffb33edebf98 (patch)
tree6ddcc34f3e9f5f4f966142a4af8c6fd2120df2aa
parent0f6bd264ae1352355e73ecc2a5b0386a25a3b956 (diff)
Merge pull request #7784 from crobibero/support-transcoding
(cherry picked from commit d471be8d929c8021d85d0b9cc97ac2e420a11d65) Signed-off-by: crobibero <cody@robibe.ro>
-rw-r--r--Jellyfin.Api/Helpers/MediaInfoHelper.cs14
1 files changed, 11 insertions, 3 deletions
diff --git a/Jellyfin.Api/Helpers/MediaInfoHelper.cs b/Jellyfin.Api/Helpers/MediaInfoHelper.cs
index 31b979836..5c05c57a6 100644
--- a/Jellyfin.Api/Helpers/MediaInfoHelper.cs
+++ b/Jellyfin.Api/Helpers/MediaInfoHelper.cs
@@ -256,9 +256,17 @@ namespace Jellyfin.Api.Helpers
streamInfo.StartPositionTicks = startTimeTicks;
mediaSource.SupportsDirectPlay = streamInfo.PlayMethod == PlayMethod.DirectPlay;
+
// Players do not handle this being set according to PlayMethod
- mediaSource.SupportsDirectStream = options.EnableDirectStream ? streamInfo.PlayMethod == PlayMethod.DirectPlay || streamInfo.PlayMethod == PlayMethod.DirectStream : streamInfo.PlayMethod == PlayMethod.DirectPlay;
- mediaSource.SupportsTranscoding = streamInfo.PlayMethod == PlayMethod.DirectStream || mediaSource.TranscodingContainer != null;
+ mediaSource.SupportsDirectStream =
+ options.EnableDirectStream
+ ? streamInfo.PlayMethod == PlayMethod.DirectPlay || streamInfo.PlayMethod == PlayMethod.DirectStream
+ : streamInfo.PlayMethod == PlayMethod.DirectPlay;
+
+ mediaSource.SupportsTranscoding =
+ streamInfo.PlayMethod == PlayMethod.DirectStream
+ || mediaSource.TranscodingContainer != null
+ || profile.TranscodingProfiles.Any(i => i.Type == streamInfo.MediaType && i.Context == options.Context);
if (item is Audio)
{
@@ -290,7 +298,7 @@ namespace Jellyfin.Api.Helpers
}
else
{
- if (mediaSource.SupportsTranscoding || mediaSource.SupportsDirectStream)
+ if (!mediaSource.SupportsDirectPlay && (mediaSource.SupportsTranscoding || mediaSource.SupportsDirectStream))
{
streamInfo.PlayMethod = PlayMethod.Transcode;
mediaSource.TranscodingUrl = streamInfo.ToUrl("-", auth.Token).TrimStart('-');