aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Session
diff options
context:
space:
mode:
authorIsaac Gordezky <eye.zak@gmail.com>2022-01-23 23:49:14 +0000
committerCody Robibero <cody@robibe.ro>2022-03-06 18:13:54 -0700
commit5e779f20ee88de93b75d06b255c93d0196c1255b (patch)
treed21cb48357634c9de3f1bf25fbb0f6f6b2d40bac /MediaBrowser.Model/Session
parentd871dded9fc7b704f778764a73830ae6a481f3ff (diff)
Series: issue-6450
Issue: https://github.com/jellyfin/jellyfin/issues/6450 Enable DirectPlay responses Rewrite DirectPlay and DirectStream resolution Prefer copy transcode video codec options Enhance condition processor Support DirectStream and Transcode with parity Rework audio stream selection and add tests for ExternalAudio Update MediaInfoHelper to only call StreamBuilder once
Diffstat (limited to 'MediaBrowser.Model/Session')
-rw-r--r--MediaBrowser.Model/Session/TranscodeReason.cs19
-rw-r--r--MediaBrowser.Model/Session/TranscodeReasonExtensions.cs24
-rw-r--r--MediaBrowser.Model/Session/TranscodingInfo.cs2
3 files changed, 26 insertions, 19 deletions
diff --git a/MediaBrowser.Model/Session/TranscodeReason.cs b/MediaBrowser.Model/Session/TranscodeReason.cs
index c3570840f..c99136384 100644
--- a/MediaBrowser.Model/Session/TranscodeReason.cs
+++ b/MediaBrowser.Model/Session/TranscodeReason.cs
@@ -31,21 +31,16 @@ namespace MediaBrowser.Model.Session
AudioChannelsNotSupported = 1 << 14,
AudioProfileNotSupported = 1 << 15,
AudioSampleRateNotSupported = 1 << 16,
- AudioBitDepthNotSupported = 1 << 20,
+ AudioBitDepthNotSupported = 1 << 17,
// Bitrate Constraints
- ContainerBitrateExceedsLimit = 1 << 17,
- VideoBitrateNotSupported = 1 << 18,
- AudioBitrateNotSupported = 1 << 19,
+ ContainerBitrateExceedsLimit = 1 << 18,
+ VideoBitrateNotSupported = 1 << 19,
+ AudioBitrateNotSupported = 1 << 20,
// Errors
- UnknownVideoStreamInfo = 1 << 20,
- UnknownAudioStreamInfo = 1 << 21,
- DirectPlayError = 1 << 22,
-
- // Aliases
- ContainerReasons = ContainerNotSupported | ContainerBitrateExceedsLimit,
- AudioReasons = AudioCodecNotSupported | AudioBitrateNotSupported | AudioChannelsNotSupported | AudioProfileNotSupported | AudioSampleRateNotSupported | SecondaryAudioNotSupported | AudioBitDepthNotSupported | AudioIsExternal,
- VideoReasons = VideoCodecNotSupported | VideoResolutionNotSupported | AnamorphicVideoNotSupported | InterlacedVideoNotSupported | VideoBitDepthNotSupported | VideoBitrateNotSupported | VideoFramerateNotSupported | VideoLevelNotSupported | RefFramesNotSupported,
+ UnknownVideoStreamInfo = 1 << 21,
+ UnknownAudioStreamInfo = 1 << 22,
+ DirectPlayError = 1 << 23,
}
}
diff --git a/MediaBrowser.Model/Session/TranscodeReasonExtensions.cs b/MediaBrowser.Model/Session/TranscodeReasonExtensions.cs
index c7a5095f7..213257b20 100644
--- a/MediaBrowser.Model/Session/TranscodeReasonExtensions.cs
+++ b/MediaBrowser.Model/Session/TranscodeReasonExtensions.cs
@@ -1,22 +1,34 @@
-#pragma warning disable CS1591
-
using System;
using System.Linq;
namespace MediaBrowser.Model.Session
{
+ /// <summary>
+ /// Extension methods for serializing TranscodeReason.
+ /// </summary>
public static class TranscodeReasonExtensions
{
- private static TranscodeReason[] values = Enum.GetValues<TranscodeReason>();
+ private static readonly TranscodeReason[] _values = Enum.GetValues<TranscodeReason>();
- public static string Serialize(this MediaBrowser.Model.Session.TranscodeReason reasons, string sep = ",")
+ /// <summary>
+ /// Serializes a TranscodeReason into a delimiter-separated string.
+ /// </summary>
+ /// <param name="reasons">The <see cref="TranscodeReason"/> enumeration.</param>
+ /// <param name="sep">The string separator to use. defualt <c>,</c>.</param>
+ /// <returns>string of transcode reasons delimited.</returns>
+ public static string Serialize(this TranscodeReason reasons, string sep = ",")
{
return string.Join(sep, reasons.ToArray());
}
- public static TranscodeReason[] ToArray(this MediaBrowser.Model.Session.TranscodeReason reasons)
+ /// <summary>
+ /// Serializes a TranscodeReason into an array of individual TranscodeReason bits.
+ /// </summary>
+ /// <param name="reasons">The <see cref="TranscodeReason"/> enumeration.</param>
+ /// <returns>Array of <c>TranscodeReason</c>.</returns>
+ public static TranscodeReason[] ToArray(this TranscodeReason reasons)
{
- return values.Where(r => r != 0 && reasons.HasFlag(r)).ToArray();
+ return _values.Where(r => r != 0 && reasons.HasFlag(r)).ToArray();
}
}
}
diff --git a/MediaBrowser.Model/Session/TranscodingInfo.cs b/MediaBrowser.Model/Session/TranscodingInfo.cs
index 78e5baad7..8834856b0 100644
--- a/MediaBrowser.Model/Session/TranscodingInfo.cs
+++ b/MediaBrowser.Model/Session/TranscodingInfo.cs
@@ -31,7 +31,7 @@ namespace MediaBrowser.Model.Session
public HardwareEncodingType? HardwareAccelerationType { get; set; }
- public TranscodeReason[] TranscodeReasons { get => TranscodeReason.ToArray(); }
+ public TranscodeReason[] TranscodeReasons => TranscodeReason.ToArray();
[JsonIgnore]
public TranscodeReason TranscodeReason { get; set; }