private static PacketComparer CreateComparer(PacketQueueComparison comparison) { switch (comparison) { case PacketQueueComparison.FirstDtsThenPts: return(PacketComparer.FirstDtsThenPts); case PacketQueueComparison.FirstPtsThenDts: return(PacketComparer.FirstPtsThenDts); default: throw new ArgumentOutOfRangeException(nameof(comparison), comparison, null); } }
/// <summary> /// Creates a new <see cref="PacketQueue"/> instance using the specified comparing method and initial capacity. /// </summary> /// <param name="comparison">Comparing method.</param> /// <param name="capacity">Initial capacity.</param> internal PacketQueue(PacketQueueComparison comparison, int capacity) { Comparison = comparison; _list = new List <AVPacket>(capacity); }
/// <summary> /// Creates a new <see cref="PacketQueue"/> instance using specified comparing method and default initial capacity. /// </summary> /// <param name="comparison">Comparing method.</param> internal PacketQueue(PacketQueueComparison comparison) { Comparison = comparison; _list = new List <AVPacket>(); }
/// <summary> /// Creates a new <see cref="PacketQueue"/> instance using the specified comparing method and initial capacity. /// </summary> /// <param name="comparison">Comparing method.</param> /// <param name="capacity">Initial capacity. Not used.</param> internal PacketQueue(PacketQueueComparison comparison, int capacity) { Comparison = comparison; _list = new LinkedList <Packet>(); _comparer = CreateComparer(comparison); }