CodecProfile.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using MediaBrowser.Model.Extensions;
  2. using System.Collections.Generic;
  3. using System.Xml.Serialization;
  4. namespace MediaBrowser.Model.Dlna
  5. {
  6. public class CodecProfile
  7. {
  8. public CodecType Type { get; set; }
  9. public ProfileCondition[] Conditions { get; set; }
  10. public ProfileCondition[] ApplyConditions { get; set; }
  11. public string Codec { get; set; }
  12. public string Container { get; set; }
  13. public CodecProfile()
  14. {
  15. Conditions = new ProfileCondition[] {};
  16. ApplyConditions = new ProfileCondition[] { };
  17. }
  18. public List<string> GetCodecs()
  19. {
  20. List<string> list = new List<string>();
  21. foreach (string i in (Codec ?? string.Empty).Split(','))
  22. {
  23. if (!string.IsNullOrEmpty(i)) list.Add(i);
  24. }
  25. return list;
  26. }
  27. public List<string> GetContainers()
  28. {
  29. List<string> list = new List<string>();
  30. foreach (string i in (Container ?? string.Empty).Split(','))
  31. {
  32. if (!string.IsNullOrEmpty(i)) list.Add(i);
  33. }
  34. return list;
  35. }
  36. private bool ContainsContainer(string container)
  37. {
  38. List<string> containers = GetContainers();
  39. return containers.Count == 0 || ListHelper.ContainsIgnoreCase(containers, container ?? string.Empty);
  40. }
  41. public bool ContainsCodec(string codec, string container)
  42. {
  43. if (!ContainsContainer(container))
  44. {
  45. return false;
  46. }
  47. List<string> codecs = GetCodecs();
  48. return codecs.Count == 0 || ListHelper.ContainsIgnoreCase(codecs, codec);
  49. }
  50. }
  51. }