jellyfin/Emby.Dlna/Profiles/DefaultProfile.cs

183 lines
5.3 KiB
C#
Raw Normal View History

#pragma warning disable CS1591
using System;
using System.Globalization;
using System.Linq;
2019-01-13 12:16:19 -07:00
using MediaBrowser.Model.Dlna;
2016-10-29 15:22:20 -07:00
2016-10-29 15:34:54 -07:00
namespace Emby.Dlna.Profiles
2016-10-29 15:22:20 -07:00
{
2018-09-12 10:26:21 -07:00
[System.Xml.Serialization.XmlRoot("Profile")]
2016-10-29 15:22:20 -07:00
public class DefaultProfile : DeviceProfile
{
public DefaultProfile()
{
Id = Guid.NewGuid().ToString("N", CultureInfo.InvariantCulture);
2016-10-29 15:22:20 -07:00
Name = "Generic Device";
ProtocolInfo = "http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/vnd.dlna.mpeg-tts:*,http-get:*:video/avi:*,http-get:*:video/x-matroska:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/wtv:*,http-get:*:audio/mpeg:*,http-get:*:audio/mp3:*,http-get:*:audio/mp4:*,http-get:*:audio/x-ms-wma:*,http-get:*:audio/wav:*,http-get:*:audio/L16:*,http-get:*:image/jpeg:*,http-get:*:image/png:*,http-get:*:image/gif:*,http-get:*:image/tiff:*";
2016-10-29 15:22:20 -07:00
2018-12-13 02:18:29 -07:00
Manufacturer = "Jellyfin";
2018-09-12 10:26:21 -07:00
ModelDescription = "UPnP/AV 1.0 Compliant Media Server";
2018-12-13 12:10:22 -07:00
ModelName = "Jellyfin Server";
2018-09-12 10:26:21 -07:00
ModelNumber = "01";
ModelUrl = "https://github.com/jellyfin/jellyfin";
ManufacturerUrl = "https://github.com/jellyfin/jellyfin";
2016-10-29 15:22:20 -07:00
AlbumArtPn = "JPEG_SM";
MaxAlbumArtHeight = 480;
MaxAlbumArtWidth = 480;
MaxIconWidth = 48;
MaxIconHeight = 48;
2018-09-12 10:26:21 -07:00
MaxStreamingBitrate = 140000000;
MaxStaticBitrate = 140000000;
2016-10-29 15:22:20 -07:00
MusicStreamingTranscodingBitrate = 192000;
EnableAlbumArtInDidl = false;
TranscodingProfiles = new[]
{
new TranscodingProfile
{
Container = "mp3",
AudioCodec = "mp3",
Type = DlnaProfileType.Audio
},
new TranscodingProfile
{
Container = "ts",
Type = DlnaProfileType.Video,
AudioCodec = "aac",
VideoCodec = "h264"
},
new TranscodingProfile
{
Container = "jpeg",
Type = DlnaProfileType.Photo
}
};
DirectPlayProfiles = new[]
{
new DirectPlayProfile
{
// play all
2020-08-20 08:01:04 -07:00
Container = string.Empty,
2016-10-29 15:22:20 -07:00
Type = DlnaProfileType.Video
},
new DirectPlayProfile
{
// play all
2020-08-20 08:01:04 -07:00
Container = string.Empty,
2016-10-29 15:22:20 -07:00
Type = DlnaProfileType.Audio
}
};
SubtitleProfiles = new[]
{
new SubtitleProfile
{
Format = "srt",
2017-05-12 11:09:42 -07:00
Method = SubtitleDeliveryMethod.External,
2017-03-07 11:27:56 -07:00
},
new SubtitleProfile
{
2017-05-12 11:09:42 -07:00
Format = "sub",
2017-03-07 11:27:56 -07:00
Method = SubtitleDeliveryMethod.External,
2017-05-12 11:09:42 -07:00
},
new SubtitleProfile
{
Format = "srt",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "ass",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "ssa",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "smi",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "dvdsub",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "pgs",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "pgssub",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "sub",
Method = SubtitleDeliveryMethod.Embed
2017-05-31 12:21:32 -07:00
},
new SubtitleProfile
{
Format = "subrip",
Method = SubtitleDeliveryMethod.Embed
},
new SubtitleProfile
{
Format = "vtt",
Method = SubtitleDeliveryMethod.Embed
2016-10-29 15:22:20 -07:00
}
};
ResponseProfiles = new[]
{
new ResponseProfile
{
Container = "m4v",
Type = DlnaProfileType.Video,
MimeType = "video/mp4"
}
};
}
public void AddXmlRootAttribute(string name, string value)
{
2020-07-04 08:54:25 -07:00
var atts = XmlRootAttributes ?? System.Array.Empty<XmlAttribute>();
2017-08-09 14:08:01 -07:00
var list = atts.ToList();
2016-10-29 15:22:20 -07:00
list.Add(new XmlAttribute
{
Name = name,
Value = value
});
2018-12-28 08:48:26 -07:00
XmlRootAttributes = list.ToArray();
2016-10-29 15:22:20 -07:00
}
}
}