diff options
Diffstat (limited to 'MediaBrowser.Model/Dlna/ConditionProcessor.cs')
| -rw-r--r-- | MediaBrowser.Model/Dlna/ConditionProcessor.cs | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/MediaBrowser.Model/Dlna/ConditionProcessor.cs b/MediaBrowser.Model/Dlna/ConditionProcessor.cs index af0787990..1b61bfe15 100644 --- a/MediaBrowser.Model/Dlna/ConditionProcessor.cs +++ b/MediaBrowser.Model/Dlna/ConditionProcessor.cs @@ -25,9 +25,10 @@ namespace MediaBrowser.Model.Dlna /// <param name="videoFramerate">The framerate.</param> /// <param name="packetLength">The packet length.</param> /// <param name="timestamp">The <see cref="TransportStreamTimestamp"/>.</param> - /// <param name="isAnamorphic">A value indicating whether tthe video is anamorphic.</param> - /// <param name="isInterlaced">A value indicating whether tthe video is interlaced.</param> + /// <param name="isAnamorphic">A value indicating whether the video is anamorphic.</param> + /// <param name="isInterlaced">A value indicating whether the video is interlaced.</param> /// <param name="refFrames">The reference frames.</param> + /// <param name="numStreams">The number of streams.</param> /// <param name="numVideoStreams">The number of video streams.</param> /// <param name="numAudioStreams">The number of audio streams.</param> /// <param name="videoCodecTag">The video codec tag.</param> @@ -48,6 +49,7 @@ namespace MediaBrowser.Model.Dlna bool? isAnamorphic, bool? isInterlaced, int? refFrames, + int numStreams, int? numVideoStreams, int? numAudioStreams, string? videoCodecTag, @@ -83,6 +85,8 @@ namespace MediaBrowser.Model.Dlna return IsConditionSatisfied(condition, width); case ProfileConditionValue.RefFrames: return IsConditionSatisfied(condition, refFrames); + case ProfileConditionValue.NumStreams: + return IsConditionSatisfied(condition, numStreams); case ProfileConditionValue.NumAudioStreams: return IsConditionSatisfied(condition, numAudioStreams); case ProfileConditionValue.NumVideoStreams: @@ -341,6 +345,15 @@ namespace MediaBrowser.Model.Dlna return !condition.IsRequired; } + // Special case: HDR10 also satisfies if the video is HDR10Plus + if (currentValue.Value == VideoRangeType.HDR10Plus) + { + if (IsConditionSatisfied(condition, VideoRangeType.HDR10)) + { + return true; + } + } + var conditionType = condition.Condition; if (conditionType == ProfileConditionType.EqualsAny) { |
