12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace MediaBrowser.Controller.Dlna
- {
- public class CodecProfile
- {
- public CodecType Type { get; set; }
- public ProfileCondition[] Conditions { get; set; }
- public string Codec { get; set; }
- public CodecProfile()
- {
- Conditions = new ProfileCondition[] {};
- }
- public List<string> GetCodecs()
- {
- return (Codec ?? string.Empty).Split(',').Where(i => !string.IsNullOrWhiteSpace(i)).ToList();
- }
- public bool ContainsCodec(string codec)
- {
- var codecs = GetCodecs();
- return codecs.Count == 0 || codecs.Contains(codec, StringComparer.OrdinalIgnoreCase);
- }
- }
- public enum CodecType
- {
- VideoCodec = 0,
- VideoAudioCodec = 1,
- AudioCodec = 2
- }
- public class ProfileCondition
- {
- public ProfileConditionType Condition { get; set; }
- public ProfileConditionValue Property { get; set; }
- public string Value { get; set; }
- public bool IsRequired { get; set; }
- public ProfileCondition()
- {
- IsRequired = true;
- }
- }
- public enum ProfileConditionType
- {
- Equals = 0,
- NotEquals = 1,
- LessThanEqual = 2,
- GreaterThanEqual = 3
- }
- public enum ProfileConditionValue
- {
- AudioChannels,
- AudioBitrate,
- AudioProfile,
- Filesize,
- Width,
- Height,
- Has64BitOffsets,
- VideoBitDepth,
- VideoBitrate,
- VideoFramerate,
- VideoLevel,
- VideoPacketLength,
- VideoProfile,
- VideoTimestamp
- }
- }
|