66 lines
1.8 KiB
C#
66 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Xml.Serialization;
|
|
|
|
namespace MediaBrowser.Model.Dlna
|
|
{
|
|
public class DirectPlayProfile
|
|
{
|
|
[XmlAttribute("container")]
|
|
public string Container { get; set; }
|
|
|
|
[XmlAttribute("audioCodec")]
|
|
public string AudioCodec { get; set; }
|
|
|
|
[XmlAttribute("videoCodec")]
|
|
public string VideoCodec { get; set; }
|
|
|
|
[XmlAttribute("type")]
|
|
public DlnaProfileType Type { get; set; }
|
|
|
|
public List<string> GetContainers()
|
|
{
|
|
List<string> list = new List<string>();
|
|
foreach (string i in (Container ?? string.Empty).Split(','))
|
|
{
|
|
if (!string.IsNullOrEmpty(i)) list.Add(i);
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public bool SupportsContainer(string container)
|
|
{
|
|
var all = GetContainers();
|
|
|
|
// Only allow unknown container if the profile is all inclusive
|
|
if (string.IsNullOrWhiteSpace(container))
|
|
{
|
|
return all.Count == 0;
|
|
}
|
|
|
|
return all.Count == 0 || all.Contains(container, StringComparer.OrdinalIgnoreCase);
|
|
}
|
|
|
|
public List<string> GetAudioCodecs()
|
|
{
|
|
List<string> list = new List<string>();
|
|
foreach (string i in (AudioCodec ?? string.Empty).Split(','))
|
|
{
|
|
if (!string.IsNullOrEmpty(i)) list.Add(i);
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public List<string> GetVideoCodecs()
|
|
{
|
|
List<string> list = new List<string>();
|
|
foreach (string i in (VideoCodec ?? string.Empty).Split(','))
|
|
{
|
|
if (!string.IsNullOrEmpty(i)) list.Add(i);
|
|
}
|
|
return list;
|
|
}
|
|
}
|
|
}
|