aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Dlna/TranscodingProfile.cs
diff options
context:
space:
mode:
authorJPVenson <github@jpb.email>2024-10-08 09:34:34 +0000
committerJPVenson <github@jpb.email>2024-10-08 09:34:34 +0000
commitd3a3d9fce3b891eb0be274a0cdc45a989e557652 (patch)
treebd232ef477c259f1fafa204016f6efd4dcb8691f /MediaBrowser.Model/Dlna/TranscodingProfile.cs
parentee1bdf4e222125ed7382165fd7e09599ca4bd4aa (diff)
parentaaf20592bb0bbdf4f0f0d99fed091758e68ae850 (diff)
Merge remote-tracking branch 'jellyfinorigin/master' into feature/EFUserData
Diffstat (limited to 'MediaBrowser.Model/Dlna/TranscodingProfile.cs')
-rw-r--r--MediaBrowser.Model/Dlna/TranscodingProfile.cs196
1 files changed, 122 insertions, 74 deletions
diff --git a/MediaBrowser.Model/Dlna/TranscodingProfile.cs b/MediaBrowser.Model/Dlna/TranscodingProfile.cs
index a556799de..5a9fa22ae 100644
--- a/MediaBrowser.Model/Dlna/TranscodingProfile.cs
+++ b/MediaBrowser.Model/Dlna/TranscodingProfile.cs
@@ -1,82 +1,130 @@
-#pragma warning disable CS1591
-
-using System;
using System.ComponentModel;
using System.Xml.Serialization;
using Jellyfin.Data.Enums;
-namespace MediaBrowser.Model.Dlna
+namespace MediaBrowser.Model.Dlna;
+
+/// <summary>
+/// A class for transcoding profile information.
+/// </summary>
+public class TranscodingProfile
{
- public class TranscodingProfile
+ /// <summary>
+ /// Initializes a new instance of the <see cref="TranscodingProfile" /> class.
+ /// </summary>
+ public TranscodingProfile()
{
- public TranscodingProfile()
- {
- Conditions = Array.Empty<ProfileCondition>();
- }
-
- [XmlAttribute("container")]
- public string Container { get; set; } = string.Empty;
-
- [XmlAttribute("type")]
- public DlnaProfileType Type { get; set; }
-
- [XmlAttribute("videoCodec")]
- public string VideoCodec { get; set; } = string.Empty;
-
- [XmlAttribute("audioCodec")]
- public string AudioCodec { get; set; } = string.Empty;
-
- [XmlAttribute("protocol")]
- public MediaStreamProtocol Protocol { get; set; } = MediaStreamProtocol.http;
-
- [DefaultValue(false)]
- [XmlAttribute("estimateContentLength")]
- public bool EstimateContentLength { get; set; }
-
- [DefaultValue(false)]
- [XmlAttribute("enableMpegtsM2TsMode")]
- public bool EnableMpegtsM2TsMode { get; set; }
-
- [DefaultValue(TranscodeSeekInfo.Auto)]
- [XmlAttribute("transcodeSeekInfo")]
- public TranscodeSeekInfo TranscodeSeekInfo { get; set; }
-
- [DefaultValue(false)]
- [XmlAttribute("copyTimestamps")]
- public bool CopyTimestamps { get; set; }
-
- [DefaultValue(EncodingContext.Streaming)]
- [XmlAttribute("context")]
- public EncodingContext Context { get; set; }
-
- [DefaultValue(false)]
- [XmlAttribute("enableSubtitlesInManifest")]
- public bool EnableSubtitlesInManifest { get; set; }
-
- [XmlAttribute("maxAudioChannels")]
- public string? MaxAudioChannels { get; set; }
-
- [DefaultValue(0)]
- [XmlAttribute("minSegments")]
- public int MinSegments { get; set; }
-
- [DefaultValue(0)]
- [XmlAttribute("segmentLength")]
- public int SegmentLength { get; set; }
-
- [DefaultValue(false)]
- [XmlAttribute("breakOnNonKeyFrames")]
- public bool BreakOnNonKeyFrames { get; set; }
-
- public ProfileCondition[] Conditions { get; set; }
-
- [DefaultValue(true)]
- [XmlAttribute("enableAudioVbrEncoding")]
- public bool EnableAudioVbrEncoding { get; set; } = true;
-
- public string[] GetAudioCodecs()
- {
- return ContainerProfile.SplitValue(AudioCodec);
- }
+ Conditions = [];
}
+
+ /// <summary>
+ /// Gets or sets the container.
+ /// </summary>
+ [XmlAttribute("container")]
+ public string Container { get; set; } = string.Empty;
+
+ /// <summary>
+ /// Gets or sets the DLNA profile type.
+ /// </summary>
+ [XmlAttribute("type")]
+ public DlnaProfileType Type { get; set; }
+
+ /// <summary>
+ /// Gets or sets the video codec.
+ /// </summary>
+ [XmlAttribute("videoCodec")]
+ public string VideoCodec { get; set; } = string.Empty;
+
+ /// <summary>
+ /// Gets or sets the audio codec.
+ /// </summary>
+ [XmlAttribute("audioCodec")]
+ public string AudioCodec { get; set; } = string.Empty;
+
+ /// <summary>
+ /// Gets or sets the protocol.
+ /// </summary>
+ [XmlAttribute("protocol")]
+ public MediaStreamProtocol Protocol { get; set; } = MediaStreamProtocol.http;
+
+ /// <summary>
+ /// Gets or sets a value indicating whether the content length should be estimated.
+ /// </summary>
+ [DefaultValue(false)]
+ [XmlAttribute("estimateContentLength")]
+ public bool EstimateContentLength { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether M2TS mode is enabled.
+ /// </summary>
+ [DefaultValue(false)]
+ [XmlAttribute("enableMpegtsM2TsMode")]
+ public bool EnableMpegtsM2TsMode { get; set; }
+
+ /// <summary>
+ /// Gets or sets the transcoding seek info mode.
+ /// </summary>
+ [DefaultValue(TranscodeSeekInfo.Auto)]
+ [XmlAttribute("transcodeSeekInfo")]
+ public TranscodeSeekInfo TranscodeSeekInfo { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether timestamps should be copied.
+ /// </summary>
+ [DefaultValue(false)]
+ [XmlAttribute("copyTimestamps")]
+ public bool CopyTimestamps { get; set; }
+
+ /// <summary>
+ /// Gets or sets the encoding context.
+ /// </summary>
+ [DefaultValue(EncodingContext.Streaming)]
+ [XmlAttribute("context")]
+ public EncodingContext Context { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether subtitles are allowed in the manifest.
+ /// </summary>
+ [DefaultValue(false)]
+ [XmlAttribute("enableSubtitlesInManifest")]
+ public bool EnableSubtitlesInManifest { get; set; }
+
+ /// <summary>
+ /// Gets or sets the maximum audio channels.
+ /// </summary>
+ [XmlAttribute("maxAudioChannels")]
+ public string? MaxAudioChannels { get; set; }
+
+ /// <summary>
+ /// Gets or sets the minimum amount of segments.
+ /// </summary>
+ [DefaultValue(0)]
+ [XmlAttribute("minSegments")]
+ public int MinSegments { get; set; }
+
+ /// <summary>
+ /// Gets or sets the segment length.
+ /// </summary>
+ [DefaultValue(0)]
+ [XmlAttribute("segmentLength")]
+ public int SegmentLength { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether breaking the video stream on non-keyframes is supported.
+ /// </summary>
+ [DefaultValue(false)]
+ [XmlAttribute("breakOnNonKeyFrames")]
+ public bool BreakOnNonKeyFrames { get; set; }
+
+ /// <summary>
+ /// Gets or sets the profile conditions.
+ /// </summary>
+ public ProfileCondition[] Conditions { get; set; }
+
+ /// <summary>
+ /// Gets or sets a value indicating whether variable bitrate encoding is supported.
+ /// </summary>
+ [DefaultValue(true)]
+ [XmlAttribute("enableAudioVbrEncoding")]
+ public bool EnableAudioVbrEncoding { get; set; } = true;
}