2020-01-22 13:00:07 -07:00
|
|
|
#pragma warning disable CS1591
|
|
|
|
|
2021-03-07 07:17:32 -07:00
|
|
|
using System;
|
|
|
|
using System.Globalization;
|
2019-01-13 12:54:44 -07:00
|
|
|
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()
|
|
|
|
{
|
2021-03-07 07:17:32 -07:00
|
|
|
Id = Guid.NewGuid().ToString("N", CultureInfo.InvariantCulture);
|
2016-10-29 15:22:20 -07:00
|
|
|
Name = "Generic Device";
|
|
|
|
|
2020-04-20 05:52:50 -07:00
|
|
|
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";
|
2018-12-10 23:28:44 -07:00
|
|
|
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
|
|
|
|
{
|
2017-11-05 14:51:23 -07:00
|
|
|
// 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
|
|
|
|
{
|
2017-11-05 14:51:23 -07:00
|
|
|
// 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
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|