/// <summary> /// Encodes a frame. /// </summary> /// <param name="frame">The frame.</param> /// <returns></returns> public override byte[] Encode(AudioBuffer frame) { if (_Encoder == null) { _Encoder = new Encoder(ClockRate, Channels, PacketTime); _Encoder.Quality = 1.0; _Encoder.Bitrate = 125; } byte[] data; int index; int length; var echoCanceller = EchoCanceller; if (echoCanceller == null) { data = frame.Data; index = frame.Index; length = frame.Length; } else { data = echoCanceller.capture(frame); index = 0; length = data.Length; } return _Encoder.Encode(data, index, length); }
/// <summary> /// Destroys the codec. /// </summary> public override void Destroy() { if (_Encoder != null) { _Encoder.Destroy(); _Encoder = null; } if (_Decoder != null) { _Decoder.Destroy(); _Decoder = null; } }