aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Dlna/TranscodingProfile.cs
diff options
context:
space:
mode:
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;
}