123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- using System.Collections.Generic;
- using System.Xml.Serialization;
- namespace MediaBrowser.Model.Dlna.Profiles
- {
- [XmlRoot("Profile")]
- public class AndroidProfile : DefaultProfile
- {
- public AndroidProfile()
- : this(true, true, new[] { "baseline", "constrained baseline" })
- {
- }
- public AndroidProfile(bool supportsHls,
- bool supportsMpegDash,
- string[] supportedH264Profiles)
- {
- Name = "Android";
- List<TranscodingProfile> transcodingProfiles = new List<TranscodingProfile>();
- transcodingProfiles.Add(new TranscodingProfile
- {
- Container = "mp3",
- AudioCodec = "mp3",
- Type = DlnaProfileType.Audio
- });
- if (supportsMpegDash)
- {
- }
- if (supportsHls)
- {
- transcodingProfiles.Add(new TranscodingProfile
- {
- Protocol = "hls",
- Container = "ts",
- VideoCodec = "h264",
- AudioCodec = "aac",
- Type = DlnaProfileType.Video,
- VideoProfile = "baseline",
- Context = EncodingContext.Streaming
- });
- }
- transcodingProfiles.Add(new TranscodingProfile
- {
- Container = "mp4",
- VideoCodec = "h264",
- AudioCodec = "aac",
- Type = DlnaProfileType.Video,
- VideoProfile = "baseline",
- Context = EncodingContext.Static
- });
- TranscodingProfiles = transcodingProfiles.ToArray();
- DirectPlayProfiles = new[]
- {
- new DirectPlayProfile
- {
- Container = "mp4",
- VideoCodec = "h264,mpeg4",
- AudioCodec = "aac",
- Type = DlnaProfileType.Video
- },
- new DirectPlayProfile
- {
- Container = "mp4,aac",
- AudioCodec = "aac",
- Type = DlnaProfileType.Audio
- },
- new DirectPlayProfile
- {
- Container = "mp3",
- AudioCodec = "mp3",
- Type = DlnaProfileType.Audio
- },
- new DirectPlayProfile
- {
- Container = "flac",
- AudioCodec = "flac",
- Type = DlnaProfileType.Audio
- },
- new DirectPlayProfile
- {
- Container = "ogg",
- AudioCodec = "vorbis",
- Type = DlnaProfileType.Audio
- },
- new DirectPlayProfile
- {
- Container = "jpeg,png,gif,bmp",
- Type = DlnaProfileType.Photo
- }
- };
- CodecProfiles = new[]
- {
- new CodecProfile
- {
- Type = CodecType.Video,
- Codec= "h264",
- Conditions = new []
- {
- new ProfileCondition(ProfileConditionType.EqualsAny, ProfileConditionValue.VideoProfile, string.Join("|", supportedH264Profiles)),
- new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.Width, "1920"),
- new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.Height, "1080"),
- new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.VideoBitDepth, "8"),
- new ProfileCondition(ProfileConditionType.NotEquals, ProfileConditionValue.IsAnamorphic, "true"),
- new ProfileCondition(ProfileConditionType.Equals, ProfileConditionValue.IsCabac, "true")
- }
- },
- new CodecProfile
- {
- Type = CodecType.Video,
- Conditions = new []
- {
- new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.Width, "1920"),
- new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.Height, "1080"),
- new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.VideoBitDepth, "8"),
- new ProfileCondition(ProfileConditionType.NotEquals, ProfileConditionValue.IsAnamorphic, "true")
- }
- },
- new CodecProfile
- {
- Type = CodecType.VideoAudio,
- Codec = "aac",
- Conditions = new []
- {
- new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.AudioChannels, "2")
- }
- },
- new CodecProfile
- {
- Type = CodecType.Audio,
- Codec = "aac",
- Conditions = new []
- {
- new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.AudioChannels, "2")
- }
- },
- new CodecProfile
- {
- Type = CodecType.Audio,
- Codec = "mp3",
- Conditions = new []
- {
- new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.AudioChannels, "2"),
- new ProfileCondition(ProfileConditionType.LessThanEqual, ProfileConditionValue.AudioBitrate, "320000")
- }
- }
- };
- }
- }
- }
|